{
  "$schema": "https://ui.shadcn.com/schema/registry.json",
  "name": "youj",
  "homepage": "https://www.youj.dev",
  "items": [
    {
      "name": "youj-core",
      "type": "registry:lib",
      "title": "Youj core",
      "description": "Motion tokens, YoujProvider/useYouj, cn(), the sound options (`sound`, useSound, useSoundCue; @youj/sound's packs play the cues), the theme contract and derivation, the Basalt and Graphite themes, and the color/ease/duration token stylesheet. Locales (youj-locale-<id>), the other themes' stylesheets (youj-theme-<id>), the theme check (youj-theme-check) and useLabels (youj-labels) are items of their own.",
      "dependencies": [
        "motion@^14",
        "clsx@^2.1.1",
        "tailwind-merge@^3.7.0"
      ],
      "files": [
        {
          "path": "src/lib/youj/tokens.ts",
          "type": "registry:lib",
          "target": "lib/youj/tokens.ts"
        },
        {
          "path": "src/lib/youj/provider.tsx",
          "type": "registry:lib",
          "target": "lib/youj/provider.tsx"
        },
        {
          "path": "src/lib/youj/provider-context.tsx",
          "type": "registry:lib",
          "target": "lib/youj/provider-context.tsx"
        },
        {
          "path": "src/lib/youj/provider-hooks.ts",
          "type": "registry:lib",
          "target": "lib/youj/provider-hooks.ts"
        },
        {
          "path": "src/lib/youj/use-youj.ts",
          "type": "registry:lib",
          "target": "lib/youj/use-youj.ts"
        },
        {
          "path": "src/lib/youj/scope.ts",
          "type": "registry:lib",
          "target": "lib/youj/scope.ts"
        },
        {
          "path": "src/lib/youj/document.ts",
          "type": "registry:lib",
          "target": "lib/youj/document.ts"
        },
        {
          "path": "src/lib/youj/direction.ts",
          "type": "registry:lib",
          "target": "lib/youj/direction.ts"
        },
        {
          "path": "src/lib/youj/store.ts",
          "type": "registry:lib",
          "target": "lib/youj/store.ts"
        },
        {
          "path": "src/lib/youj/device.ts",
          "type": "registry:lib",
          "target": "lib/youj/device.ts"
        },
        {
          "path": "src/lib/youj/look.ts",
          "type": "registry:lib",
          "target": "lib/youj/look.ts"
        },
        {
          "path": "src/lib/youj/features.tsx",
          "type": "registry:lib",
          "target": "lib/youj/features.tsx"
        },
        {
          "path": "src/lib/youj/features-animation.ts",
          "type": "registry:lib",
          "target": "lib/youj/features-animation.ts"
        },
        {
          "path": "src/lib/youj/features-max.ts",
          "type": "registry:lib",
          "target": "lib/youj/features-max.ts"
        },
        {
          "path": "src/lib/youj/budget.ts",
          "type": "registry:lib",
          "target": "lib/youj/budget.ts"
        },
        {
          "path": "src/lib/youj/cn.ts",
          "type": "registry:lib",
          "target": "lib/youj/cn.ts"
        },
        {
          "path": "src/lib/youj/mode.tsx",
          "type": "registry:lib",
          "target": "lib/youj/mode.tsx"
        },
        {
          "path": "src/lib/youj/theme-mode.ts",
          "type": "registry:lib",
          "target": "lib/youj/theme-mode.ts"
        },
        {
          "path": "src/lib/youj/theme-script.ts",
          "type": "registry:lib",
          "target": "lib/youj/theme-script.ts"
        },
        {
          "path": "src/lib/youj/settings.ts",
          "type": "registry:lib",
          "target": "lib/youj/settings.ts"
        },
        {
          "path": "src/lib/youj/vocabulary.ts",
          "type": "registry:lib",
          "target": "lib/youj/vocabulary.ts"
        },
        {
          "path": "src/lib/youj/in-view.ts",
          "type": "registry:lib",
          "target": "lib/youj/in-view.ts"
        },
        {
          "path": "src/lib/youj/on-screen.ts",
          "type": "registry:lib",
          "target": "lib/youj/on-screen.ts"
        },
        {
          "path": "src/lib/youj/sound-cue.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound-cue.ts"
        },
        {
          "path": "src/lib/youj/sound-scope.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound-scope.ts"
        },
        {
          "path": "registry/generated/youj.css",
          "type": "registry:file",
          "target": "styles/youj.css"
        },
        {
          "path": "src/lib/youj/theme/color.ts",
          "type": "registry:lib",
          "target": "lib/youj/theme/color.ts"
        },
        {
          "path": "src/lib/youj/theme/contract.ts",
          "type": "registry:lib",
          "target": "lib/youj/theme/contract.ts"
        },
        {
          "path": "src/lib/youj/theme/derive.ts",
          "type": "registry:lib",
          "target": "lib/youj/theme/derive.ts"
        },
        {
          "path": "src/lib/youj/theme/layers.ts",
          "type": "registry:lib",
          "target": "lib/youj/theme/layers.ts"
        },
        {
          "path": "src/lib/youj/theme/styles.ts",
          "type": "registry:lib",
          "target": "lib/youj/theme/styles.ts"
        },
        {
          "path": "registry/stubs/theme-index.ts",
          "type": "registry:lib",
          "target": "lib/youj/theme/index.ts"
        },
        {
          "path": "src/lib/youj/theme/observe.ts",
          "type": "registry:lib",
          "target": "lib/youj/theme/observe.ts"
        },
        {
          "path": "src/lib/youj/theme/themes/basalt.css",
          "type": "registry:file",
          "target": "lib/youj/theme/themes/basalt.css"
        },
        {
          "path": "src/lib/youj/theme/themes/basalt.ts",
          "type": "registry:lib",
          "target": "lib/youj/theme/themes/basalt.ts"
        },
        {
          "path": "src/lib/youj/theme/themes/brutal.ts",
          "type": "registry:lib",
          "target": "lib/youj/theme/themes/brutal.ts"
        },
        {
          "path": "src/lib/youj/theme/themes/graphite.css",
          "type": "registry:file",
          "target": "lib/youj/theme/themes/graphite.css"
        },
        {
          "path": "src/lib/youj/theme/themes/graphite.ts",
          "type": "registry:lib",
          "target": "lib/youj/theme/themes/graphite.ts"
        },
        {
          "path": "src/lib/youj/theme/themes/youj.ts",
          "type": "registry:lib",
          "target": "lib/youj/theme/themes/youj.ts"
        },
        {
          "path": "src/lib/youj/theme/themes/meadow.ts",
          "type": "registry:lib",
          "target": "lib/youj/theme/themes/meadow.ts"
        },
        {
          "path": "src/lib/youj/theme/themes/sandstone.ts",
          "type": "registry:lib",
          "target": "lib/youj/theme/themes/sandstone.ts"
        },
        {
          "path": "src/lib/youj/theme/themes/cinnabar.ts",
          "type": "registry:lib",
          "target": "lib/youj/theme/themes/cinnabar.ts"
        },
        {
          "path": "src/lib/youj/theme/themes/umber.ts",
          "type": "registry:lib",
          "target": "lib/youj/theme/themes/umber.ts"
        },
        {
          "path": "src/lib/youj/theme/themes/seaglass.ts",
          "type": "registry:lib",
          "target": "lib/youj/theme/themes/seaglass.ts"
        },
        {
          "path": "src/lib/youj/theme/themes/heather.ts",
          "type": "registry:lib",
          "target": "lib/youj/theme/themes/heather.ts"
        },
        {
          "path": "src/lib/youj/theme/themes/index.ts",
          "type": "registry:lib",
          "target": "lib/youj/theme/themes/index.ts"
        },
        {
          "path": "src/lib/youj/theme/themes/terminal.ts",
          "type": "registry:lib",
          "target": "lib/youj/theme/themes/terminal.ts"
        },
        {
          "path": "registry/stubs/labels-types.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels-types.ts"
        },
        {
          "path": "registry/stubs/use-component-labels.ts",
          "type": "registry:lib",
          "target": "lib/youj/use-component-labels.ts"
        },
        {
          "path": "registry/stubs/theme-check.ts",
          "type": "registry:lib",
          "target": "lib/youj/theme/check.ts"
        }
      ]
    },
    {
      "name": "youj-labels-account-menu",
      "type": "registry:lib",
      "title": "accountMenu labels",
      "description": "The English strings of accountMenu (accountMenu, accountTheme, accountPreset, accountAppearance, colorModeLight, colorModeDark, colorModeSystem, signOut, workspaces), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/accountMenuLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/accountMenuLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-alert-dialog",
      "type": "registry:lib",
      "title": "alertDialog labels",
      "description": "The English strings of alertDialog (cancel, confirming, phraseMatches, typeToConfirm, copyPhrase, somethingWentWrong), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/alertDialogLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/alertDialogLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-alert",
      "type": "registry:lib",
      "title": "alert labels",
      "description": "The English strings of alert (dismiss), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/alertLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/alertLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-anchor-nav",
      "type": "registry:lib",
      "title": "anchorNav labels",
      "description": "The English strings of anchorNav (onThisPage), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/anchorNavLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/anchorNavLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-app-header",
      "type": "registry:lib",
      "title": "appHeader labels",
      "description": "The English strings of appHeader (search, searchPlaceholder, menu, openMenu, closeMenu, ctrlKey), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/appHeaderLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/appHeaderLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-avatar-stack",
      "type": "registry:lib",
      "title": "avatarStack labels",
      "description": "The English strings of avatarStack (avatarStackPeople, avatarStackNames, avatarStackShowAll, presenceOnline, presenceAway, presenceBusy, presenceOffline), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/avatarStackLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/avatarStackLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-avatar-upload",
      "type": "registry:lib",
      "title": "avatarUpload labels",
      "description": "The English strings of avatarUpload (cancel, saving, saved, saveFailed, fileTooLarge, fileTypeList, fileMaxSize, avatarUnsupported, avatarChangePhoto, avatarUploadPhoto, avatarPhotoOf, avatarProfilePhoto, avatarRemove, avatarCropTitle, avatarCropDescription, avatarCropArea, avatarCropLabel, avatarCropInstructions, avatarReadFailed, avatarZoom, avatarZoomIn, avatarZoomOut, avatarSavePhoto), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/avatarUploadLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/avatarUploadLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-banner",
      "type": "registry:lib",
      "title": "banner labels",
      "description": "The English strings of banner (announcement, dismissAnnouncement), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/bannerLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/bannerLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-bottom-tab-bar",
      "type": "registry:lib",
      "title": "bottomTabBar labels",
      "description": "The English strings of bottomTabBar (primaryNavigation, badgeNew, badgeNewCount), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/bottomTabBarLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/bottomTabBarLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-breadcrumb",
      "type": "registry:lib",
      "title": "breadcrumb labels",
      "description": "The English strings of breadcrumb (breadcrumb, showMoreCount), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/breadcrumbLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/breadcrumbLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-button-async",
      "type": "registry:lib",
      "title": "buttonAsync labels",
      "description": "The English strings of buttonAsync (working, done, failed, holdToConfirm), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/buttonAsyncLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/buttonAsyncLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-button",
      "type": "registry:lib",
      "title": "button labels",
      "description": "The English strings of button (loading), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/buttonLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/buttonLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-calendar",
      "type": "registry:lib",
      "title": "calendar labels",
      "description": "The English strings of calendar (nextMonth, previousMonth, calendarDay), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/calendarLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/calendarLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-carousel",
      "type": "registry:lib",
      "title": "carousel labels",
      "description": "The English strings of carousel (carousel, slide, slidePosition, slideOf, slideNumber, previousSlide, nextSlide, chooseSlide, slideThumbnails, pauseSlideRotation, startSlideRotation), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/carouselLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/carouselLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-chart",
      "type": "registry:lib",
      "title": "chart labels",
      "description": "The English strings of chart (viewData, hideData), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/chartLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/chartLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-color-picker",
      "type": "registry:lib",
      "title": "colorPicker labels",
      "description": "The English strings of colorPicker (colour, hue, swatches, accentSwatch, saturationBrightness, saturationBrightnessValue, pickColourFromScreen), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/colorPickerLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/colorPickerLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-combobox",
      "type": "registry:lib",
      "title": "combobox labels",
      "description": "The English strings of combobox (searchPlaceholder, selectPlaceholder, loadingEllipsis, clearSelection, noResults, createOption, selectionCleared, optionsShown), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/comboboxLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/comboboxLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-command-palette",
      "type": "registry:lib",
      "title": "commandPalette labels",
      "description": "The English strings of commandPalette (close, back, commandPalette, commandPalettePlaceholder, commandPalettePage, home, navigate, open, escKey), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/commandPaletteLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/commandPaletteLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-command",
      "type": "registry:lib",
      "title": "command labels",
      "description": "The English strings of command (search, loadingEllipsis, commandPalette, commandPaletteDescription), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/commandLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/commandLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-date-picker",
      "type": "registry:lib",
      "title": "datePicker labels",
      "description": "The English strings of datePicker (chooseDate), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/datePickerLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/datePickerLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-date-range-picker",
      "type": "registry:lib",
      "title": "dateRangePicker labels",
      "description": "The English strings of dateRangePicker (presets, chooseDates, startDate, endDate, pickStartDate, pickEndDate, dateRangeSummary, yesterday, lastMonth, yearToDate, today, last7Days, last30Days, thisMonth), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/dateRangePickerLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/dateRangePickerLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-dialog",
      "type": "registry:lib",
      "title": "dialog labels",
      "description": "The English strings of dialog (close, open), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/dialogLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/dialogLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-file-upload",
      "type": "registry:lib",
      "title": "fileUpload labels",
      "description": "The English strings of fileUpload (add, retry, remove, done, copy, fileUploaded, fileUploadedTile, fileUploadFailed, fileFailedToUpload, fileUnsupported, fileTooLarge, fileDuplicate, fileTooMany, filesAdded, filesRejected, fileRemoved, fileRetrying, fileTypeList, fileTypeGroup, fileMaxSize, fileMaxFiles, fileDropToUpload, fileDropPrompt, fileBrowse, fileListImages, fileListFiles, fileStatusUploaded, fileRetry, fileRetryError, fileCancelUpload, fileUploading), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/fileUploadLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/fileUploadLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-form",
      "type": "registry:lib",
      "title": "form labels",
      "description": "The English strings of form (failed, checkForm), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/formLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/formLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-input-otp",
      "type": "registry:lib",
      "title": "inputOtp labels",
      "description": "The English strings of inputOtp (verifyingCode, codeVerified, codeInvalid, resendCode, resendIn, sending, sent, sendFailed), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/inputOtpLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/inputOtpLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-multi-select",
      "type": "registry:lib",
      "title": "multiSelect labels",
      "description": "The English strings of multiSelect (searchPlaceholder, selectPlaceholder, remove, noResults, selectedItems, selectAll, selectedSummary, allSelected, allDeselected, countOfMaxSelected, optionsShown, limitReached, limitOfReached, removed), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/multiSelectLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/multiSelectLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-notification-center",
      "type": "registry:lib",
      "title": "notificationCenter labels",
      "description": "The English strings of notificationCenter (today, justNow, notifications, notificationsUnread, notificationNew, notificationsNew, notificationsMarkAllRead, notificationsMarkRead, notificationsAll, notificationsUnreadTab, notificationsMentions, notificationsEmptyTitle, notificationsEmptyDescription, notificationsCaughtUpTitle, notificationsCaughtUpDescription, notificationsNoMentionsTitle, notificationsNoMentionsDescription, notificationsRecent, notificationsEarlier, notificationUnreadPrefix), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/notificationCenterLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/notificationCenterLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-number-input",
      "type": "registry:lib",
      "title": "numberInput labels",
      "description": "The English strings of numberInput (increase, decrease), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/numberInputLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/numberInputLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-pagination",
      "type": "registry:lib",
      "title": "pagination labels",
      "description": "The English strings of pagination (pagination, previous, next, goToPreviousPage, goToNextPage), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/paginationLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/paginationLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-password-input",
      "type": "registry:lib",
      "title": "passwordInput labels",
      "description": "The English strings of passwordInput (showPassword, capsLockOn, passwordStrength, passwordStrengthIs, noPassword, passwordVeryWeak, passwordWeak, passwordFair, passwordGood, passwordStrong, passwordMinLength, passwordMixedCase, passwordNumber, passwordSymbol, requirementMet, requirementUnmet), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/passwordInputLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/passwordInputLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-phone-input",
      "type": "registry:lib",
      "title": "phoneInput labels",
      "description": "The English strings of phoneInput (phoneCountry), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/phoneInputLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/phoneInputLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-rating",
      "type": "registry:lib",
      "title": "rating labels",
      "description": "The English strings of rating (stars, noRating, notRated, ratingValue, ratedOutOf), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/ratingLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/ratingLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-sheet",
      "type": "registry:lib",
      "title": "sheet labels",
      "description": "The English strings of sheet (close), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/sheetLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/sheetLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-sidebar",
      "type": "registry:lib",
      "title": "sidebar labels",
      "description": "The English strings of sidebar (sidebar, toggleSidebar), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/sidebarLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/sidebarLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-sortable-list",
      "type": "registry:lib",
      "title": "sortableList labels",
      "description": "The English strings of sortableList (sortableInstructions, sortableRoleItem, sortableReorder, sortableReorderItem, sortablePosition, sortablePickedUp, sortablePickedUpKeyboard, sortableMoved, sortableDropped, sortableCancelled), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/sortableListLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/sortableListLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-spinner",
      "type": "registry:lib",
      "title": "spinner labels",
      "description": "The English strings of spinner (loading), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/spinnerLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/spinnerLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-stat-card",
      "type": "registry:lib",
      "title": "statCard labels",
      "description": "The English strings of statCard (trendUp, trendDown, trendFlat, loadingNamed), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/statCardLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/statCardLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-meter",
      "type": "registry:lib",
      "title": "meter labels",
      "description": "The English strings of meter (meterWarning, meterCritical), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/meterLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/meterLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-limit-meter",
      "type": "registry:lib",
      "title": "limitMeter labels",
      "description": "The English strings of limitMeter (meterWarning, meterCritical, allowanceRemaining, allowanceSpent, allowanceLimit, allowanceOverLimit, allowanceValueText, allowanceOverText, allowanceMarkerAt), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/limitMeterLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/limitMeterLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-dot-map",
      "type": "registry:lib",
      "title": "dotMap labels",
      "description": "The English strings of dotMap (dotMap, dotMapSummary), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/dotMapLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/dotMapLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-rollout-ruler",
      "type": "registry:lib",
      "title": "rolloutRuler labels",
      "description": "The English strings of rolloutRuler (rollout, rolloutOff, rolloutInternal, rolloutBeta, rolloutGeneral, rolloutStageAt), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/rolloutRulerLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/rolloutRulerLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-level-matrix",
      "type": "registry:lib",
      "title": "levelMatrix labels",
      "description": "The English strings of levelMatrix (permissions, permissionNone, permissionRead, permissionWrite, permissionAdmin, permissionSelectRow, permissionSelectColumn, permissionSelectAll, permissionSelected, permissionSetSelected, permissionBulkSet, permissionChanged, permissionWas, permissionLocked, permissionHint, clearSelection), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/levelMatrixLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/levelMatrixLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-stage-rail",
      "type": "registry:lib",
      "title": "stageRail labels",
      "description": "The English strings of stageRail (stageRail, stageQueued, stageRunning, stagePassed, stageFailed, stageSkipped, stageItem), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/stageRailLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/stageRailLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-severity-timeline",
      "type": "registry:lib",
      "title": "severityTimeline labels",
      "description": "The English strings of severityTimeline (severityTimeline, severity, milestoneAcknowledged, milestoneMitigated, milestoneResolved, sinceStart, ongoing, incidentNoEvents), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/severityTimelineLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/severityTimelineLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-lane-meter",
      "type": "registry:lib",
      "title": "laneMeter labels",
      "description": "The English strings of laneMeter (laneMeter, laneOf, laneItemAction, retry, showMoreCount), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/laneMeterLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/laneMeterLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-day-ring",
      "type": "registry:lib",
      "title": "dayRing labels",
      "description": "The English strings of dayRing (dayRing, nextRun, runsIn, scheduleRunAt, scheduleRuns, scheduleOverlaps, scheduleOverlapAt, now), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/dayRingLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/dayRingLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-stepper-nav",
      "type": "registry:lib",
      "title": "stepperNav labels",
      "description": "The English strings of stepperNav (progress, steps), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/stepperNavLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/stepperNavLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-stepper",
      "type": "registry:lib",
      "title": "stepper labels",
      "description": "The English strings of stepper (progress, optional, stepCompleted, stepCurrent, stepUpcoming, stepError, stepDetour), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/stepperLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/stepperLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-tag-input",
      "type": "registry:lib",
      "title": "tagInput labels",
      "description": "The English strings of tagInput (remove, limitOfReached, removed, tags, addTag, tagHint, upToTags, added, addedTags, alreadyAdded, movedTo), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/tagInputLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/tagInputLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-filter-chips",
      "type": "registry:lib",
      "title": "filterChips labels",
      "description": "The English strings of filterChips (activeFilters, removeFilter, queryPlaceholder, queryAddAnother, queryChipHint, added, removed, alreadyAdded), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/filterChipsLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/filterChipsLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-histogram-range",
      "type": "registry:lib",
      "title": "histogramRange labels",
      "description": "The English strings of histogramRange (rangeMin, rangeMax, minimumOf, maximumOf, valueRange), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/histogramRangeLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/histogramRangeLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-time-picker",
      "type": "registry:lib",
      "title": "timePicker labels",
      "description": "The English strings of timePicker (empty, hours, minutes, dayPeriod), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/timePickerLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/timePickerLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-timeline",
      "type": "registry:lib",
      "title": "timeline labels",
      "description": "The English strings of timeline (yesterday, today, justNow, timelineCommit, timelineComment, timelineDeploy, timelineAlert, timelineMerge, timelinePullRequest, timelineActivity, timelineEmptyTitle, timelineEmptyDescription, timelineLoadMore, timelineLoadingOlder, timelineEnd, timelineDetails, timelineHideDetails), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/timelineLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/timelineLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-toast",
      "type": "registry:lib",
      "title": "toast labels",
      "description": "The English strings of toast (dismiss, loading), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/toastLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/toastLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-wizard",
      "type": "registry:lib",
      "title": "wizard labels",
      "description": "The English strings of wizard (back, done, stepOf, skip, continue, finish, finishing, checking, checkStep), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/wizardLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/wizardLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-workspace-switcher",
      "type": "registry:lib",
      "title": "workspaceSwitcher labels",
      "description": "The English strings of workspaceSwitcher (workspaces, workspaceCreate, workspaceCreateNamed, workspaceSearch, workspaceSwitch, workspaceChoose, workspaceNoMatch), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/workspaceSwitcherLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/workspaceSwitcherLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-chat-citation",
      "type": "registry:lib",
      "title": "chatCitation labels",
      "description": "The English strings of chatCitation (chatSources), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/chatCitationLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/chatCitationLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-chat-copy-button",
      "type": "registry:lib",
      "title": "chatCopyButton labels",
      "description": "The English strings of chatCopyButton (copy, copied, copyFailed), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/chatCopyButtonLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/chatCopyButtonLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-chat-markdown",
      "type": "registry:lib",
      "title": "chatMarkdown labels",
      "description": "The English strings of chatMarkdown (chatTable, code, copyCode), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/chatMarkdownLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/chatMarkdownLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-chat-message-list",
      "type": "registry:lib",
      "title": "chatMessageList labels",
      "description": "The English strings of chatMessageList (chatConversation, chatJumpToLatest), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/chatMessageListLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/chatMessageListLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-chat-message",
      "type": "registry:lib",
      "title": "chatMessage labels",
      "description": "The English strings of chatMessage (cancel, edit, send, retry, copy, chatAssistant, chatYou, chatSystem, chatResponding, chatResponseFailed, chatRegenerate, chatGoodResponse, chatBadResponse, chatMessageActions, chatEditMessage), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/chatMessageLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/chatMessageLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-chat-prompt-input",
      "type": "registry:lib",
      "title": "chatPromptInput labels",
      "description": "The English strings of chatPromptInput (send, escKey, remove, chatPromptPlaceholder, chatPromptLabel, chatAttachFiles, chatAttachments, chatStopGenerating, chatSendMessage, chatStop, chatCharacters, chatOverLimit, chatLeft, chatUploading, chatUploadFailed, chatPastedImage), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/chatPromptInputLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/chatPromptInputLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-chat-suggestions",
      "type": "registry:lib",
      "title": "chatSuggestions labels",
      "description": "The English strings of chatSuggestions (chatSuggestions), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/chatSuggestionsLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/chatSuggestionsLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-chat-thinking",
      "type": "registry:lib",
      "title": "chatThinking labels",
      "description": "The English strings of chatThinking (done, chatThinking, chatReasoning, chatThoughtFor), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/chatThinkingLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/chatThinkingLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-chat-tool-call",
      "type": "registry:lib",
      "title": "chatToolCall labels",
      "description": "The English strings of chatToolCall (done, failed, chatToolQueued, chatToolRunning, chatToolDuration, chatToolFailed, chatToolArguments, chatToolResult, chatToolError), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/chatToolCallLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/chatToolCallLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-chat-tool-approval",
      "type": "registry:lib",
      "title": "chatToolApproval labels",
      "description": "The English strings of chatToolApproval (done, failed, chatToolRunning, chatToolDuration, chatToolFailed, chatToolArguments, cancel, save, edit, toolApproval, toolApprovalRiskLow, toolApprovalRiskMedium, toolApprovalRiskHigh, toolApprovalReason, toolApprovalAllowOnce, toolApprovalAlwaysAllow, toolApprovalDeny, toolApprovalEdited, toolApprovalShowMore, toolApprovalShowLess, toolApprovalShowValue, toolApprovalHideValue, toolApprovalHidden, toolApprovalPending, toolApprovalApproved, toolApprovalDenied, toolApprovalExpired, toolApprovalApprovedBy, toolApprovalDeniedBy, toolApprovalNotRun, toolApprovalDeniedReason, toolApprovalRequired, toolApprovalNotNumber, toolApprovalNotJson, toolApprovalNotBoolean, toolApprovalAnnounce), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/chatToolApprovalLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/chatToolApprovalLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-code-block",
      "type": "registry:lib",
      "title": "codeBlock labels",
      "description": "The English strings of codeBlock (copied, copyFailed, code, codeBlock, copyCode), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/codeBlockLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/codeBlockLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-diff-viewer",
      "type": "registry:lib",
      "title": "diffViewer labels",
      "description": "The English strings of diffViewer (diffViewer, diffSummary, diffView, diffUnified, diffSplit, diffWrap, diffAddedLine, diffRemovedLine, diffUnchanged, diffChange, diffChanges, diffNextChange, diffPreviousChange, diffNoChanges, diffNoNewline, diffBefore, diffAfter, diffHint, copied, copyFailed, copyCode), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/diffViewerLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/diffViewerLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-data-table-bulk-bar",
      "type": "registry:lib",
      "title": "dataTableBulkBar labels",
      "description": "The English strings of dataTableBulkBar (clearSelection, rowsNoun, selectionActions, selected, selectAllCount, clearSelectionShortcut), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/dataTableBulkBarLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/dataTableBulkBarLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-data-table-columns",
      "type": "registry:lib",
      "title": "dataTableColumns labels",
      "description": "The English strings of dataTableColumns (actions, columns, hiddenColumns, toggleColumns, resetColumns, columnOptions, sortAscending, sortDescending, clearSort, pinToStart, pinToEnd, unpinned, moveLeft, moveRight, hideColumn, rowActions, selectAllOnPage, selectRow), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/dataTableColumnsLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/dataTableColumnsLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-data-table-confirm",
      "type": "registry:lib",
      "title": "dataTableConfirm labels",
      "description": "The English strings of dataTableConfirm (rowsNoun, cannotBeUndone, itemCount, confirmTitle, confirmAction, confirmPending), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/dataTableConfirmLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/dataTableConfirmLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-data-table-editor",
      "type": "registry:lib",
      "title": "dataTableEditor labels",
      "description": "The English strings of dataTableEditor (enterNumber, enterAtLeast, enterAtMost), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/dataTableEditorLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/dataTableEditorLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-data-table-filters",
      "type": "registry:lib",
      "title": "dataTableFilters labels",
      "description": "The English strings of dataTableFilters (clear, search, searchPlaceholder, presets, clearSearch, filterBy, filterNoOptions, clearFilter, clearAll, activeFilters, removeFilter, quoted, today, last7Days, last30Days, thisMonth, thisYear, dateFrom, dateTo, filterFrom, filterUntil, rangeMin, rangeMax, minimumOf, maximumOf), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/dataTableFiltersLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/dataTableFiltersLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-data-table-pagination",
      "type": "registry:lib",
      "title": "dataTablePagination labels",
      "description": "The English strings of dataTablePagination (pagination, rowsNoun, rowsPerPage, firstPage, previousPage, nextPage, lastPage, rangeOf, pageOf, noItems), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/dataTablePaginationLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/dataTablePaginationLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-data-table-toolbar",
      "type": "registry:lib",
      "title": "dataTableToolbar labels",
      "description": "The English strings of dataTableToolbar (rowDensity, compactRows, standardRows, comfortableRows), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/dataTableToolbarLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/dataTableToolbarLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-data-table-views",
      "type": "registry:lib",
      "title": "dataTableViews labels",
      "description": "The English strings of dataTableViews (cancel, views, viewModified, savedViews, savedViewsEmpty, saveViewChanges, revertChanges, saveAsNewView, deleteView, saveView, saveViewDescription, viewName, viewNamePlaceholder, viewNameTaken), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/dataTableViewsLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/dataTableViewsLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-kanban",
      "type": "registry:lib",
      "title": "kanban labels",
      "description": "The English strings of kanban (cancel, add, kanbanBoard, kanbanRoleBoard, kanbanRoleCard, kanbanInstructions, kanbanLane, kanbanPlace, kanbanPickedUp, kanbanPickedUpKeyboard, kanbanDropped, kanbanCancelled, kanbanMoveFailed, kanbanExpand, kanbanCollapse, kanbanCardCount, kanbanNoCards, kanbanAddCard, kanbanNewCard, kanbanCardTitle, selected), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/kanbanLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/kanbanLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-multi-language-input-provider",
      "type": "registry:lib",
      "title": "multiLanguageInputProvider labels",
      "description": "The English strings of multiLanguageInputProvider (clear, removed, added, language, allLanguages, moreLanguages, searchLanguages, noLanguageMatches, needsWork, nothingToTranslate, pinnedLanguages, recentLanguages, regionAmericas, regionEurope, regionMiddleEastAfrica, regionAsiaPacific, regionOther, translationSource, translationComplete, translationReview, translationOutdated, translationMissing, translationCount, previousToTranslate, nextToTranslate, translationProgress, languagesComplete, fieldsComplete, copyFrom, copiedFrom, useSuggestion, suggestionUsed, markReviewed, markedReviewed, sourceChanged, filledAutomatically, requiredIn, characterCount, charactersOver, editingLanguage, everyLanguageComplete, translationActions, fillFromSource, markAllReviewed, clearLanguage, clearLanguageDescription, translationBulkDone, copy), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/multiLanguageInputProviderLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/multiLanguageInputProviderLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-tree-view",
      "type": "registry:lib",
      "title": "treeView labels",
      "description": "The English strings of treeView (retry, loadingEllipsis, empty, treeLoadingItem, treeLoaded, treeLoadFailed, treeRename, treeRenamed), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/treeViewLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/treeViewLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-async-feedback",
      "type": "registry:lib",
      "title": "asyncFeedback labels",
      "description": "The English strings of asyncFeedback (working, done, failed), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/asyncFeedbackLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/asyncFeedbackLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-scroll-progress",
      "type": "registry:lib",
      "title": "scrollProgress labels",
      "description": "The English strings of scrollProgress (scrollProgress), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/scrollProgressLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/scrollProgressLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-dock",
      "type": "registry:lib",
      "title": "dock labels",
      "description": "The English strings of dock (dock), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/dockLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/dockLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-blueprint",
      "type": "registry:lib",
      "title": "blueprint labels",
      "description": "The English strings of blueprint (blueprintFrame, blueprintRegion, blueprintBox, blueprintText, blueprintButton, blueprintField, blueprintIcon, blueprintChart, blueprintMedia, blueprintRule, blueprintRow, blueprintLink, blueprintBuild, blueprintValues, blueprintGrid, blueprintInk, blueprintTone, blueprintSet), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/blueprintLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/blueprintLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-layers",
      "type": "registry:lib",
      "title": "layers labels",
      "description": "The English strings of layers (layersFrame, layersRegions, layersBoxes, layersContent), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/layersLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/layersLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-render-passes",
      "type": "registry:lib",
      "title": "renderPasses labels",
      "description": "The English strings of renderPasses (renderPassesLayout, renderPassesPaint, renderPassesComposite), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/renderPassesLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/renderPassesLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-table",
      "type": "registry:lib",
      "title": "table labels",
      "description": "The English strings of table (tableScrollRegion), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/tableLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/tableLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-treemap",
      "type": "registry:lib",
      "title": "treemap labels",
      "description": "The English strings of treemap (treemap, noData, shareOfTotal, treemapItem, treemapSummary), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/treemapLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/treemapLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-refill-meter",
      "type": "registry:lib",
      "title": "refillMeter labels",
      "description": "The English strings of refillMeter (bucketTokens, bucketRefill, bucketFullIn, bucketFull, bucketEmpty, bucketBurst, bucketValueText, bucketUnderBurst), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/refillMeterLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/refillMeterLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-distribution-strip",
      "type": "registry:lib",
      "title": "distributionStrip labels",
      "description": "The English strings of distributionStrip (latencyDistribution, latencyWithinSlo, latencySloAt, latencySummary, latencyWithin, noData), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/distributionStripLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/distributionStripLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-history-strip",
      "type": "registry:lib",
      "title": "historyStrip labels",
      "description": "The English strings of historyStrip (uptime, uptimeDay, uptimeNoData, uptimeIncidents, uptimeDowntime, uptimeSummary, today), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/historyStripLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/historyStripLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-forecast-band",
      "type": "registry:lib",
      "title": "forecastBand labels",
      "description": "The English strings of forecastBand (forecast, forecastActual, forecastProjected, forecastRange, forecastBudget, forecastCrosses, forecastSummary, forecastWithin, today, forecastScenario, forecastScenarioSummary), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/forecastBandLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/forecastBandLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-flow-lanes",
      "type": "registry:lib",
      "title": "flowLanes labels",
      "description": "The English strings of flowLanes (flowLanes, flowLanesItem, flowLanesSummary, noData), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/flowLanesLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/flowLanesLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-cell-bar",
      "type": "registry:lib",
      "title": "cellBar labels",
      "description": "The English strings of cellBar (cellBar, cellBarItem, cellBarSummary, cellBarProjected, cellBarTarget), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/cellBarLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/cellBarLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-lollipop-chart",
      "type": "registry:lib",
      "title": "lollipopChart labels",
      "description": "The English strings of lollipopChart (lollipopChart, lollipopChartSummary, unitChartItem, noData), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/lollipopChartLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/lollipopChartLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-share-ring",
      "type": "registry:lib",
      "title": "shareRing labels",
      "description": "The English strings of shareRing (noData, shareRingPart, shareRingSummary), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/shareRingLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/shareRingLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-activity-rings",
      "type": "registry:lib",
      "title": "activityRings labels",
      "description": "The English strings of activityRings (activityRings, activityRingsValue), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/activityRingsLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/activityRingsLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-slot-grid",
      "type": "registry:lib",
      "title": "slotGrid labels",
      "description": "The English strings of slotGrid (slotGrid, slotGridHint, slotGridLeft, slotGridFull, slotGridClosed, slotGridFew, slotGridOpen, slotGridMine, slotGridCell, slotGridDays, slotGridOpenCount), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/slotGridLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/slotGridLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-waveform-scrubber",
      "type": "registry:lib",
      "title": "waveformScrubber labels",
      "description": "The English strings of waveformScrubber (waveformSeek, waveformPosition, waveformClipStart, waveformClipEnd), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/waveformScrubberLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/waveformScrubberLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-progress-list",
      "type": "registry:lib",
      "title": "progressList labels",
      "description": "The English strings of progressList (transfers, transferPause, transferResume, transferCancel, transferProgress, transferLeft, transferQueued, transferPaused, transferFinished, transferFailed, transferFiles, transferRate, transferTimeLeft, transferPauseAll, transferResumeAll, transferCancelAll, showFewer, showMoreCount, fileRetry, done), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/progressListLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/progressListLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-progress-path",
      "type": "registry:lib",
      "title": "progressPath labels",
      "description": "The English strings of progressPath (progressPath, progressPathHint, lessonItem, milestoneItem, lessonDone, lessonCurrent, lessonLocked, lessonStart, sectionProgress), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/progressPathLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/progressPathLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-segmented-ring",
      "type": "registry:lib",
      "title": "segmentedRing labels",
      "description": "The English strings of segmentedRing (intervalTimer, intervalWork, intervalRest, intervalWarmup, intervalCooldown, intervalRound, intervalRoundOf, intervalLeft, intervalStarted, intervalFinished, intervalNext), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/segmentedRingLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/segmentedRingLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-seat-map",
      "type": "registry:lib",
      "title": "seatMap labels",
      "description": "The English strings of seatMap (seatMap, seatMapHint, seatMapStage, seatItem, seatAvailable, seatUnavailable, seatSelected, seatRow, seatNumber, seatAdded, seatRemoved, seatLimit), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/seatMapLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/seatMapLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-dial",
      "type": "registry:lib",
      "title": "dial labels",
      "description": "The English strings of dial (dial, dialNow, dialValueNow, dialMark), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/dialLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/dialLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-time-lanes",
      "type": "registry:lib",
      "title": "timeLanes labels",
      "description": "The English strings of timeLanes (rota, rotaNow, rotaShift, rotaOverride, rotaHandoff, rotaHint, rotaOnCall, rotaUpcoming, rotaEnded, proposed), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/timeLanesLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/timeLanesLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-diff-bar",
      "type": "registry:lib",
      "title": "diffBar labels",
      "description": "The English strings of diffBar (diffBetter, diffEven), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/diffBarLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/diffBarLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-calendar-heatmap",
      "type": "registry:lib",
      "title": "calendarHeatmap labels",
      "description": "The English strings of calendarHeatmap (calendarHeatmap, streakDay, streakDone, streakMissed, streakFrozen, streakPartial, streakToday, streakMarkDone, streakTodayDone, streakTodayUndone, streakCurrent, streakLongest, streakRate, streakFreezes, streakDays, streakFreezesLeft, streakMilestone, streakLess, streakMore), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/calendarHeatmapLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/calendarHeatmapLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-allocation-meter",
      "type": "registry:lib",
      "title": "allocationMeter labels",
      "description": "The English strings of allocationMeter (envelopes, envelopeLeft, envelopeOver, envelopeOf, envelopeRollover, envelopeRolloverTag, envelopeOverspentTag, envelopeHint, envelopePickedUp, envelopeTarget, envelopeMoved, envelopeMoveCancelled), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/allocationMeterLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/allocationMeterLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-day-rail",
      "type": "registry:lib",
      "title": "dayRail labels",
      "description": "The English strings of dayRail (itinerary, itineraryDay, itineraryLeg, itineraryTimeShift, itineraryNights, itineraryNow, itineraryInTransit), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/dayRailLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/dayRailLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-capsule-player",
      "type": "registry:lib",
      "title": "capsulePlayer labels",
      "description": "The English strings of capsulePlayer (play, pause, previousTrack, nextTrack, waveformSeek, waveformPosition), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/capsulePlayerLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/capsulePlayerLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-capsule-stepper",
      "type": "registry:lib",
      "title": "capsuleStepper labels",
      "description": "The English strings of capsuleStepper (increase, decrease), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/capsuleStepperLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/capsuleStepperLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-capsule-search",
      "type": "registry:lib",
      "title": "capsuleSearch labels",
      "description": "The English strings of capsuleSearch (search, clear, ctrlKey), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/capsuleSearchLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/capsuleSearchLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-stat-pill",
      "type": "registry:lib",
      "title": "statPill labels",
      "description": "The English strings of statPill (trendUp, trendDown, trendFlat), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/statPillLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/statPillLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-gradient-slider",
      "type": "registry:lib",
      "title": "gradientSlider labels",
      "description": "The English strings of gradientSlider (gradientSliderValue), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/gradientSliderLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/gradientSliderLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-flow-graph",
      "type": "registry:lib",
      "title": "flowGraph labels",
      "description": "The English strings of flowGraph (flowGraph, flowGraphHint, flowQueued, flowRunning, flowSucceeded, flowFailed, flowRetried, flowSkipped, flowGraphNode, flowGraphAfter, flowGraphThen, flowGraphAttempts, zoomIn, zoomOut, zoomToFit), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/flowGraphLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/flowGraphLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-track-timeline",
      "type": "registry:lib",
      "title": "trackTimeline labels",
      "description": "The English strings of trackTimeline (trackTimeline, trackTimelineHint, trackTimelineClip, trackTimelineRange, trackTimelineClipStart, trackTimelineClipEnd, trackTimelineMute, trackTimelineSolo, trackTimelinePlayhead, waveformPosition, zoomIn, zoomOut, zoomToFit), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/trackTimelineLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/trackTimelineLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-item-pager",
      "type": "registry:lib",
      "title": "itemPager labels",
      "description": "The English strings of itemPager (records, previousRecord, nextRecord, recordOf), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/itemPagerLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/itemPagerLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-property-list",
      "type": "registry:lib",
      "title": "propertyList labels",
      "description": "The English strings of propertyList (editProperty), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/propertyListLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/propertyListLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-route-map",
      "type": "registry:lib",
      "title": "routeMap labels",
      "description": "The English strings of routeMap (routeMap, routeOnTime, routeDelayed, routeDone, proposed, routeOrigin, routeDestination, routeCurrent, routeStop), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/routeMapLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/routeMapLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-annotated-image",
      "type": "registry:lib",
      "title": "annotatedImage labels",
      "description": "The English strings of annotatedImage (annotations), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/annotatedImageLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/annotatedImageLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-image-accordion",
      "type": "registry:lib",
      "title": "imageAccordion labels",
      "description": "The English strings of imageAccordion (imageAccordion), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/imageAccordionLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/imageAccordionLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-proposal-card",
      "type": "registry:lib",
      "title": "proposalCard labels",
      "description": "The English strings of proposalCard (proposed), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/proposalCardLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/proposalCardLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-unit-chart",
      "type": "registry:lib",
      "title": "unitChart labels",
      "description": "The English strings of unitChart (unitChart, noData, unitChartItem, unitChartSummary), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/unitChartLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/unitChartLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-waffle-chart",
      "type": "registry:lib",
      "title": "waffleChart labels",
      "description": "The English strings of waffleChart (waffleChart, noData, shareOfTotal, treemapItem, treemapSummary), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/waffleChartLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/waffleChartLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-radar-chart",
      "type": "registry:lib",
      "title": "radarChart labels",
      "description": "The English strings of radarChart (radarChart, radarChartAxis, noData), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/radarChartLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/radarChartLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-radial-graph",
      "type": "registry:lib",
      "title": "radialGraph labels",
      "description": "The English strings of radialGraph (radialGraph, radialGraphHops, radialGraphItem, radialGraphSummary, noData), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/radialGraphLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/radialGraphLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-density-lanes",
      "type": "registry:lib",
      "title": "densityLanes labels",
      "description": "The English strings of densityLanes (densityLanes, densityLanesSummary, unitChartItem, noData), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/densityLanesLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/densityLanesLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-coverage-matrix",
      "type": "registry:lib",
      "title": "coverageMatrix labels",
      "description": "The English strings of coverageMatrix (coverageMatrix, coverageMatrixNone, coverageMatrixDepth, coverageMatrixSummary, noData), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/coverageMatrixLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/coverageMatrixLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-milestone-ruler",
      "type": "registry:lib",
      "title": "milestoneRuler labels",
      "description": "The English strings of milestoneRuler (milestoneRuler, milestoneRulerDone, milestoneRulerUpcoming, milestoneRulerAtRisk, milestoneRulerItem, milestoneRulerCount, milestoneRulerMore, milestoneRulerSummary, milestoneRulerEmpty), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/milestoneRulerLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/milestoneRulerLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-score-ring",
      "type": "registry:lib",
      "title": "scoreRing labels",
      "description": "The English strings of scoreRing (scoreRing, scoreRingValue, scoreRingGrade), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/scoreRingLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/scoreRingLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-signature-pad",
      "type": "registry:lib",
      "title": "signaturePad labels",
      "description": "The English strings of signaturePad (signaturePad, signaturePadHint, signHere, signatureMethod, signatureDraw, signatureType, signatureTypedName, signatureCleared, signatureSigned, signatureAccept, signatureAccepting, signatureAccepted, signatureSignedAt, signatureLocked, signatureResign, signatureUnlocked, undo, clear), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/signaturePadLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/signaturePadLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-whiteboard",
      "type": "registry:lib",
      "title": "whiteboard labels",
      "description": "The English strings of whiteboard (whiteboard, whiteboardHint, whiteboardTools, whiteboardSelect, whiteboardHand, whiteboardPen, whiteboardLine, whiteboardArrow, whiteboardRectangle, whiteboardEllipse, whiteboardText, whiteboardColor, whiteboardWidth, whiteboardThin, whiteboardMedium, whiteboardBold, whiteboardInk, whiteboardAccent, whiteboardRed, whiteboardAmber, whiteboardGreen, whiteboardBlue, whiteboardDelete, whiteboardTextPlaceholder, whiteboardSummary, whiteboardSelected, whiteboardAdded, whiteboardDeleted, whiteboardShapeText, whiteboardSticky, whiteboardConnector, whiteboardComment, whiteboardEmbed, whiteboardRoute, whiteboardStraight, whiteboardElbow, whiteboardConnects, whiteboardPoint, whiteboardArrange, whiteboardAlignLeft, whiteboardAlignCenter, whiteboardAlignRight, whiteboardAlignTop, whiteboardAlignMiddle, whiteboardAlignBottom, whiteboardDistributeHorizontal, whiteboardDistributeVertical, whiteboardView, whiteboardZoomToSelection, whiteboardMinimap, whiteboardSnapToGrid, whiteboardShortcuts, whiteboardPan, whiteboardNudge, whiteboardSelectAll, whiteboardComments, whiteboardPin, whiteboardResolve, whiteboardReopen, whiteboardResolved, whiteboardDeleteComment, whiteboardCommentPlaceholder, undo, redo, zoomIn, zoomOut, zoomToFit, zoomReset, ctrlKey), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/whiteboardLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/whiteboardLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-voice-orb",
      "type": "registry:lib",
      "title": "voiceOrb labels",
      "description": "The English strings of voiceOrb (voiceOrb, voiceOrbIdle, voiceOrbListening, voiceOrbThinking, voiceOrbSpeaking, voiceOrbMuted, voiceOrbState), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/voiceOrbLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/voiceOrbLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-world-clock",
      "type": "registry:lib",
      "title": "worldClock labels",
      "description": "The English strings of worldClock (worldClock, worldClockCursor, worldClockHint, worldClockTime, worldClockSummary, worldClockOverlap, worldClockNoOverlap, worldClockWorkingHours, worldClockOutsideHours, worldClockNight, worldClockDaytime, worldClockEveryone, now), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/worldClockLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/worldClockLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-inline-confirm",
      "type": "registry:lib",
      "title": "inlineConfirm labels",
      "description": "The English strings of inlineConfirm (inlineConfirmPrompt, cancel), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/inlineConfirmLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/inlineConfirmLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-session-timeout",
      "type": "registry:lib",
      "title": "sessionTimeout labels",
      "description": "The English strings of sessionTimeout (sessionTimeoutTitle, sessionTimeoutWarning, sessionTimeoutReason, sessionTimeoutStay, sessionTimeoutSignOut, sessionTimeoutDoneTitle, sessionTimeoutDoneBody, sessionTimeoutSignIn), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/sessionTimeoutLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/sessionTimeoutLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-filter-builder",
      "type": "registry:lib",
      "title": "filterBuilder labels",
      "description": "The English strings of filterBuilder (filterBuilder, filterAnd, filterOr, filterCombinator, filterAddRule, filterAddGroup, filterRuleN, filterGroupN, filterDuplicate, filterField, filterOperator, filterValue, filterValueFrom, filterValueTo, filterDays, filterApply, filterReset, filterUnapplied, filterApplied, filterDiscarded, filterIncomplete, filterEmpty, filterSummary, filterSummaryNone, filterShowChips, filterShowSentence, filterOpIs, filterOpIsNot, filterOpContains, filterOpStartsWith, filterOpGt, filterOpLt, filterOpBetween, filterOpBefore, filterOpAfter, filterOpInLast, filterOpIsAnyOf, filterOpHasAny, filterOpHasAll, filterOpIsEmpty, filterOpIsNotEmpty, filterOpIsTrue, filterOpIsFalse, filterWhere, filterUngroup, filterGroupActions, undo, searchPlaceholder, noResults, remove, added, removed, selectPlaceholder), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/filterBuilderLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/filterBuilderLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-import-mapper",
      "type": "registry:lib",
      "title": "importMapper labels",
      "description": "The English strings of importMapper (back, continue, retry, done, undo, skip, importMapperTitle, importMapperDescription, importMapperDropTitle, importMapperDropHint, importMapperChoose, importMapperReplace, importMapperRemove, importMapperStartOver, importMapperSample, importMapperFileMeta, importMapperTooLarge, importMapperNotCsv, importMapperEmptyFile, importMapperUnclosedQuote, importMapperRaggedRow, importMapperProblemsMore, importMapperColumn, importMapperTarget, importMapperSkipColumn, importMapperRequired, importMapperCheck, importMapperCheckWhy, importMapperNotMatched, importMapperPickColumn, importMapperPickColumnFor, importMapperBlocked, importMapperNothing, importMapperMapped, importMapperNotImported, importMapperBlank, importMapperItems, importMapperImport, importMapperAllGood, importMapperIssueMissing, importMapperIssueInvalid, importMapperReview, importMapperSkipThem, importMapperSkippedNote, importMapperDuplicatesFound, importMapperPolicy, importMapperPolicyUpdate, importMapperPolicyCreate, importMapperMoreOptions, importMapperKey, importMapperCountsAnnounce, importMapperRow, importMapperErrorRequired, importMapperErrorEmail, importMapperErrorNumber, importMapperErrorDate, importMapperEditCell, importMapperShowing, importMapperLeft, importMapperRowFixed, importMapperRowSkipped, importMapperSkipThisRow, importMapperImporting, importMapperProgress, importMapperProgressLabel, importMapperImported, importMapperUpdatedCount, importMapperSkippedCount, importMapperDoneAnnounce, importMapperErrorReport, importMapperImportAnother, importMapperFailed, importMapperReportField, importMapperReportValue, importMapperReportProblem), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/importMapperLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/importMapperLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-inspector",
      "type": "registry:lib",
      "title": "inspector labels",
      "description": "The English strings of inspector (inspectorEnable, inspectorShow, inspectorHide, inspectorCollapse, inspectorExpand, inspectorChangeType, add, remove), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/inspectorLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/inspectorLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-color-opacity-field",
      "type": "registry:lib",
      "title": "colorOpacityField labels",
      "description": "The English strings of colorOpacityField (colour, hexColour, opacity), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/colorOpacityFieldLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/colorOpacityFieldLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-slide-to-confirm",
      "type": "registry:lib",
      "title": "slideToConfirm labels",
      "description": "The English strings of slideToConfirm (slideToConfirm, slideToConfirmHint, working, confirmed, failed, somethingWentWrong), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/slideToConfirmLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/slideToConfirmLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-tour",
      "type": "registry:lib",
      "title": "tour labels",
      "description": "The English strings of tour (tourStepOf, tourStepAnnounce, tourHint, tourStart, back, next, done, skip), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/tourLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/tourLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-audio-recorder",
      "type": "registry:lib",
      "title": "audioRecorder labels",
      "description": "The English strings of audioRecorder (audioRecorder, audioRecorderHint, audioRecorderLimit, audioRecorderStart, audioRecorderStop, play, pause, audioRecorderPause, audioRecorderResume, audioRecorderElapsed, audioRecorderRemaining, audioRecorderRecording, audioRecorderPaused, audioRecorderStopped, audioRecorderLimitReached, audioRecorderRequesting, audioRecorderDenied, audioRecorderNoDevice, audioRecorderUnsupported, audioRecorderFailed, audioRecorderDiscard, audioRecorderDiscarded, audioRecorderRestored, audioRecorderSave, audioRecorderSaving, audioRecorderSaved, undo), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/audioRecorderLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/audioRecorderLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-live-cursors",
      "type": "registry:lib",
      "title": "liveCursors labels",
      "description": "The English strings of liveCursors (liveCursorsJoined, liveCursorsLeft, liveCursorsPeople, liveCursorsViewing, liveCursorsEditing, liveCursorsFollow, liveCursorsFollowing, liveCursorsMore), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/liveCursorsLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/liveCursorsLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-hierarchy-chart",
      "type": "registry:lib",
      "title": "hierarchyChart labels",
      "description": "The English strings of hierarchyChart (hierarchyChart, hierarchyChartHint, hierarchyChartHidden, hierarchyChartExpand, hierarchyChartCollapse, zoomIn, zoomOut, zoomToFit), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/hierarchyChartLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/hierarchyChartLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-radial-menu",
      "type": "registry:lib",
      "title": "radialMenu labels",
      "description": "The English strings of radialMenu (actions, radialMenuHint, radialMenuChosen), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/radialMenuLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/radialMenuLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-image-compare",
      "type": "registry:lib",
      "title": "imageCompare labels",
      "description": "The English strings of imageCompare (imageCompare, imageCompareBefore, imageCompareAfter, imageCompareValue), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/imageCompareLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/imageCompareLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-currency-swap",
      "type": "registry:lib",
      "title": "currencySwap labels",
      "description": "The English strings of currencySwap (currencySwapPay, currencySwapReceive, currencySwapFlip, currencySwapFromAsset, currencySwapToAsset, currencySwapSubmit, currencySwapResult, currencySwapRate), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/currencySwapLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/currencySwapLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-wheel-picker",
      "type": "registry:lib",
      "title": "wheelPicker labels",
      "description": "The English strings of wheelPicker (wheelPicker), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/wheelPickerLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/wheelPickerLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-hours-dial",
      "type": "registry:lib",
      "title": "hoursDial labels",
      "description": "The English strings of hoursDial (hoursDial, hoursDialStart, hoursDialEnd, hoursDialValue), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/hoursDialLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/hoursDialLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-share-dialog",
      "type": "registry:lib",
      "title": "shareDialog labels",
      "description": "The English strings of shareDialog (shareDialogTitle, shareDialogAddPeople, shareDialogRole, shareDialogMessage, shareDialogSend, shareDialogSending, shareDialogSent, shareDialogInvited, shareDialogNotEmail, shareDialogHasAccess, shareDialogFixInvalid, shareDialogRemoveRecipient, shareDialogSuggestions, shareDialogGroupSize, shareDialogPeople, shareDialogOwner, shareDialogPending, shareDialogResend, shareDialogResendTo, shareDialogCancelInvite, shareDialogRemoveAccess, shareDialogRoleOf, shareDialogLoading, shareDialogGeneral, shareDialogRestricted, shareDialogRestrictedHint, shareDialogOrganization, shareDialogOrganizationHint, shareDialogAnyone, shareDialogAnyoneHint, shareDialogLinkRole, shareDialogCopyLink, shareDialogCopied, shareDialogLinkCopied, shareDialogCopyFailed, shareDialogDone, shareDialogRemoved, shareDialogRoleChanged, shareDialogAccessChanged, shareDialogFailed, shareDialogViewer, shareDialogCommenter, shareDialogEditor, shareDialogInvitedOnly, shareDialogPeopleCount), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/shareDialogLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/shareDialogLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-portfolio",
      "type": "registry:lib",
      "title": "portfolio labels",
      "description": "The English strings of portfolio (portfolioPeriod, portfolioChart, portfolioChartHint, portfolioReading, portfolioUp, portfolioDown, portfolioFlat, portfolioInfo), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/portfolioLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/portfolioLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-growth-forecast",
      "type": "registry:lib",
      "title": "growthForecast labels",
      "description": "The English strings of growthForecast (growthContribution, growthYears, growthRate, growthToday, growthYear, growthBars, growthBar), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/growthForecastLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/growthForecastLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-export-dialog",
      "type": "registry:lib",
      "title": "exportDialog labels",
      "description": "The English strings of exportDialog (exportDialogTitle, exportPeriod, exportCustom, exportCustomHint, exportOptions, exportFormat, exportTimeZone, exportTimeZoneLocal, exportColumnsAll, exportColumnsSome, exportSelectAll, exportSelectNone, exportColumnsPick, exportAs, exportNothing, exportQueued, exportEmailed, exportEmailedTo, exportFailedNote, today, yesterday, last7Days, last30Days, thisMonth, lastMonth, yearToDate, columns, itemCount, rowsNoun, working, done, failed, cancel, close), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/exportDialogLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/exportDialogLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-blocks",
      "type": "registry:lib",
      "title": "blocks labels",
      "description": "The English strings of blocks (save, presenceDoNotDisturb, presenceInvisible, presenceStatus, presenceSetTo, pages, pagesFound, pagesNoMatch, filterPages, filterPagesPlaceholder, searchEverything), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/blocksLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/blocksLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-data-table-block",
      "type": "registry:lib",
      "title": "dataTableBlock labels",
      "description": "The English strings of dataTableBlock (search, quoted, filterFrom, filterUntil, empty, pagination, loadingNamed, rowsNoun, row, rowNumber, export, clearFilters, pageOf, noItems, selectAllRows, selectAllOnPage, sortedBy, sortedColumn, sortCleared, selectionCleared, selectedRows, matchCount, totalCount, columnWidth, cellOf, cellSaved, cellSaveFailed, gridHintArrows, gridHintSelect, gridHintEdit, gridHintSort, gridHintResize, gridHintMenu, loadFailed, tryAgain, noMatches, noMatchesHint, emptyHint, saving, saved, selectRow), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/dataTableBlockLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/dataTableBlockLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels-data-grid-block",
      "type": "registry:lib",
      "title": "dataGridBlock labels",
      "description": "The English strings of dataGridBlock (justNow, escKey, search, searchPlaceholder, clearSearch, filterBy, filterNoOptions, clearFilter, clearFilters, clearAll, activeFilters, removeFilter, columns, toggleColumns, resetColumns, rowDensity, compactRows, comfortableRows, rowActions, actions, selectRow, selectAllRows, selectAllOnPage, selectionActions, selected, selectAllCount, clearSelection, clearSelectionShortcut, rowsNoun, row, rowNumber, sortedBy, sortedColumn, sortCleared, sortAscending, sortDescending, clearSort, selectionCleared, selectedRows, matchCount, totalCount, itemCount, loadFailed, tryAgain, noMatches, noMatchesHint, noItems, emptyHint, loadingNamed, pagination, previousPage, nextPage, rangeOf, pageOf, rowsPerPage, gridHintArrows, gridHintSelect, gridHintSort, views, copy, copied, copyFailed, cellOf, trendUp, trendDown, trendFlat, spaciousRows, groupBy, noGrouping, groupedBy, groupingCleared, showDetails, hideDetails, copyValue, sortBy, addFilter, booleanYes, booleanNo, valueOfMax, gridHintOpen, groupTotal, groupAverage), for useComponentLabels. Installed with the component that reads them.",
      "files": [
        {
          "path": "src/lib/youj/labels/dataGridBlockLabels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels/dataGridBlockLabels.ts"
        }
      ]
    },
    {
      "name": "youj-labels",
      "type": "registry:lib",
      "title": "Labels hook",
      "description": "useLabels() and defaultLabels: the whole English dictionary, for code that reads or merges labels outside a component. Components read their own strings through their youj-labels-<component> item and don't need it.",
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-account-menu.json",
        "https://www.youj.dev/r/youj-labels-activity-rings.json",
        "https://www.youj.dev/r/youj-labels-alert.json",
        "https://www.youj.dev/r/youj-labels-alert-dialog.json",
        "https://www.youj.dev/r/youj-labels-allocation-meter.json",
        "https://www.youj.dev/r/youj-labels-anchor-nav.json",
        "https://www.youj.dev/r/youj-labels-annotated-image.json",
        "https://www.youj.dev/r/youj-labels-app-header.json",
        "https://www.youj.dev/r/youj-labels-async-feedback.json",
        "https://www.youj.dev/r/youj-labels-audio-recorder.json",
        "https://www.youj.dev/r/youj-labels-avatar-stack.json",
        "https://www.youj.dev/r/youj-labels-avatar-upload.json",
        "https://www.youj.dev/r/youj-labels-banner.json",
        "https://www.youj.dev/r/youj-labels-blocks.json",
        "https://www.youj.dev/r/youj-labels-blueprint.json",
        "https://www.youj.dev/r/youj-labels-bottom-tab-bar.json",
        "https://www.youj.dev/r/youj-labels-breadcrumb.json",
        "https://www.youj.dev/r/youj-labels-button.json",
        "https://www.youj.dev/r/youj-labels-button-async.json",
        "https://www.youj.dev/r/youj-labels-calendar.json",
        "https://www.youj.dev/r/youj-labels-calendar-heatmap.json",
        "https://www.youj.dev/r/youj-labels-capsule-player.json",
        "https://www.youj.dev/r/youj-labels-capsule-search.json",
        "https://www.youj.dev/r/youj-labels-capsule-stepper.json",
        "https://www.youj.dev/r/youj-labels-carousel.json",
        "https://www.youj.dev/r/youj-labels-cell-bar.json",
        "https://www.youj.dev/r/youj-labels-chart.json",
        "https://www.youj.dev/r/youj-labels-chat-citation.json",
        "https://www.youj.dev/r/youj-labels-chat-copy-button.json",
        "https://www.youj.dev/r/youj-labels-chat-markdown.json",
        "https://www.youj.dev/r/youj-labels-chat-message.json",
        "https://www.youj.dev/r/youj-labels-chat-message-list.json",
        "https://www.youj.dev/r/youj-labels-chat-prompt-input.json",
        "https://www.youj.dev/r/youj-labels-chat-suggestions.json",
        "https://www.youj.dev/r/youj-labels-chat-thinking.json",
        "https://www.youj.dev/r/youj-labels-chat-tool-approval.json",
        "https://www.youj.dev/r/youj-labels-chat-tool-call.json",
        "https://www.youj.dev/r/youj-labels-code-block.json",
        "https://www.youj.dev/r/youj-labels-color-opacity-field.json",
        "https://www.youj.dev/r/youj-labels-color-picker.json",
        "https://www.youj.dev/r/youj-labels-combobox.json",
        "https://www.youj.dev/r/youj-labels-command.json",
        "https://www.youj.dev/r/youj-labels-command-palette.json",
        "https://www.youj.dev/r/youj-labels-coverage-matrix.json",
        "https://www.youj.dev/r/youj-labels-currency-swap.json",
        "https://www.youj.dev/r/youj-labels-data-grid-block.json",
        "https://www.youj.dev/r/youj-labels-data-table-block.json",
        "https://www.youj.dev/r/youj-labels-data-table-bulk-bar.json",
        "https://www.youj.dev/r/youj-labels-data-table-columns.json",
        "https://www.youj.dev/r/youj-labels-data-table-confirm.json",
        "https://www.youj.dev/r/youj-labels-data-table-editor.json",
        "https://www.youj.dev/r/youj-labels-data-table-filters.json",
        "https://www.youj.dev/r/youj-labels-data-table-pagination.json",
        "https://www.youj.dev/r/youj-labels-data-table-toolbar.json",
        "https://www.youj.dev/r/youj-labels-data-table-views.json",
        "https://www.youj.dev/r/youj-labels-date-picker.json",
        "https://www.youj.dev/r/youj-labels-date-range-picker.json",
        "https://www.youj.dev/r/youj-labels-day-rail.json",
        "https://www.youj.dev/r/youj-labels-day-ring.json",
        "https://www.youj.dev/r/youj-labels-density-lanes.json",
        "https://www.youj.dev/r/youj-labels-dial.json",
        "https://www.youj.dev/r/youj-labels-dialog.json",
        "https://www.youj.dev/r/youj-labels-diff-bar.json",
        "https://www.youj.dev/r/youj-labels-diff-viewer.json",
        "https://www.youj.dev/r/youj-labels-distribution-strip.json",
        "https://www.youj.dev/r/youj-labels-dock.json",
        "https://www.youj.dev/r/youj-labels-dot-map.json",
        "https://www.youj.dev/r/youj-labels-export-dialog.json",
        "https://www.youj.dev/r/youj-labels-file-upload.json",
        "https://www.youj.dev/r/youj-labels-filter-builder.json",
        "https://www.youj.dev/r/youj-labels-filter-chips.json",
        "https://www.youj.dev/r/youj-labels-flow-graph.json",
        "https://www.youj.dev/r/youj-labels-flow-lanes.json",
        "https://www.youj.dev/r/youj-labels-forecast-band.json",
        "https://www.youj.dev/r/youj-labels-form.json",
        "https://www.youj.dev/r/youj-labels-gradient-slider.json",
        "https://www.youj.dev/r/youj-labels-growth-forecast.json",
        "https://www.youj.dev/r/youj-labels-hierarchy-chart.json",
        "https://www.youj.dev/r/youj-labels-histogram-range.json",
        "https://www.youj.dev/r/youj-labels-history-strip.json",
        "https://www.youj.dev/r/youj-labels-hours-dial.json",
        "https://www.youj.dev/r/youj-labels-image-accordion.json",
        "https://www.youj.dev/r/youj-labels-image-compare.json",
        "https://www.youj.dev/r/youj-labels-import-mapper.json",
        "https://www.youj.dev/r/youj-labels-inline-confirm.json",
        "https://www.youj.dev/r/youj-labels-input-otp.json",
        "https://www.youj.dev/r/youj-labels-inspector.json",
        "https://www.youj.dev/r/youj-labels-item-pager.json",
        "https://www.youj.dev/r/youj-labels-kanban.json",
        "https://www.youj.dev/r/youj-labels-lane-meter.json",
        "https://www.youj.dev/r/youj-labels-layers.json",
        "https://www.youj.dev/r/youj-labels-level-matrix.json",
        "https://www.youj.dev/r/youj-labels-limit-meter.json",
        "https://www.youj.dev/r/youj-labels-live-cursors.json",
        "https://www.youj.dev/r/youj-labels-lollipop-chart.json",
        "https://www.youj.dev/r/youj-labels-meter.json",
        "https://www.youj.dev/r/youj-labels-milestone-ruler.json",
        "https://www.youj.dev/r/youj-labels-multi-language-input-provider.json",
        "https://www.youj.dev/r/youj-labels-multi-select.json",
        "https://www.youj.dev/r/youj-labels-notification-center.json",
        "https://www.youj.dev/r/youj-labels-number-input.json",
        "https://www.youj.dev/r/youj-labels-pagination.json",
        "https://www.youj.dev/r/youj-labels-password-input.json",
        "https://www.youj.dev/r/youj-labels-phone-input.json",
        "https://www.youj.dev/r/youj-labels-portfolio.json",
        "https://www.youj.dev/r/youj-labels-progress-list.json",
        "https://www.youj.dev/r/youj-labels-progress-path.json",
        "https://www.youj.dev/r/youj-labels-property-list.json",
        "https://www.youj.dev/r/youj-labels-proposal-card.json",
        "https://www.youj.dev/r/youj-labels-radar-chart.json",
        "https://www.youj.dev/r/youj-labels-radial-graph.json",
        "https://www.youj.dev/r/youj-labels-radial-menu.json",
        "https://www.youj.dev/r/youj-labels-rating.json",
        "https://www.youj.dev/r/youj-labels-refill-meter.json",
        "https://www.youj.dev/r/youj-labels-render-passes.json",
        "https://www.youj.dev/r/youj-labels-rollout-ruler.json",
        "https://www.youj.dev/r/youj-labels-route-map.json",
        "https://www.youj.dev/r/youj-labels-score-ring.json",
        "https://www.youj.dev/r/youj-labels-scroll-progress.json",
        "https://www.youj.dev/r/youj-labels-seat-map.json",
        "https://www.youj.dev/r/youj-labels-segmented-ring.json",
        "https://www.youj.dev/r/youj-labels-session-timeout.json",
        "https://www.youj.dev/r/youj-labels-severity-timeline.json",
        "https://www.youj.dev/r/youj-labels-share-dialog.json",
        "https://www.youj.dev/r/youj-labels-share-ring.json",
        "https://www.youj.dev/r/youj-labels-sheet.json",
        "https://www.youj.dev/r/youj-labels-sidebar.json",
        "https://www.youj.dev/r/youj-labels-signature-pad.json",
        "https://www.youj.dev/r/youj-labels-slide-to-confirm.json",
        "https://www.youj.dev/r/youj-labels-slot-grid.json",
        "https://www.youj.dev/r/youj-labels-sortable-list.json",
        "https://www.youj.dev/r/youj-labels-spinner.json",
        "https://www.youj.dev/r/youj-labels-stage-rail.json",
        "https://www.youj.dev/r/youj-labels-stat-card.json",
        "https://www.youj.dev/r/youj-labels-stat-pill.json",
        "https://www.youj.dev/r/youj-labels-stepper.json",
        "https://www.youj.dev/r/youj-labels-stepper-nav.json",
        "https://www.youj.dev/r/youj-labels-table.json",
        "https://www.youj.dev/r/youj-labels-tag-input.json",
        "https://www.youj.dev/r/youj-labels-time-lanes.json",
        "https://www.youj.dev/r/youj-labels-time-picker.json",
        "https://www.youj.dev/r/youj-labels-timeline.json",
        "https://www.youj.dev/r/youj-labels-toast.json",
        "https://www.youj.dev/r/youj-labels-tour.json",
        "https://www.youj.dev/r/youj-labels-track-timeline.json",
        "https://www.youj.dev/r/youj-labels-tree-view.json",
        "https://www.youj.dev/r/youj-labels-treemap.json",
        "https://www.youj.dev/r/youj-labels-unit-chart.json",
        "https://www.youj.dev/r/youj-labels-voice-orb.json",
        "https://www.youj.dev/r/youj-labels-waffle-chart.json",
        "https://www.youj.dev/r/youj-labels-waveform-scrubber.json",
        "https://www.youj.dev/r/youj-labels-wheel-picker.json",
        "https://www.youj.dev/r/youj-labels-whiteboard.json",
        "https://www.youj.dev/r/youj-labels-wizard.json",
        "https://www.youj.dev/r/youj-labels-workspace-switcher.json",
        "https://www.youj.dev/r/youj-labels-world-clock.json"
      ],
      "files": [
        {
          "path": "registry/stubs/labels.ts",
          "type": "registry:lib",
          "target": "lib/youj/labels.ts"
        },
        {
          "path": "src/lib/youj/use-labels.ts",
          "type": "registry:lib",
          "target": "lib/youj/use-labels.ts"
        }
      ]
    },
    {
      "name": "youj-locale-ar",
      "type": "registry:lib",
      "title": "Arabic labels",
      "description": "Every built-in string of the Youj components in Arabic, for <YoujProvider labels={ar}>.",
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/locales/ar.ts",
          "type": "registry:lib",
          "target": "locales/ar.ts"
        }
      ]
    },
    {
      "name": "youj-locale-de",
      "type": "registry:lib",
      "title": "German labels",
      "description": "Every built-in string of the Youj components in German, for <YoujProvider labels={de}>.",
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/locales/de.ts",
          "type": "registry:lib",
          "target": "locales/de.ts"
        }
      ]
    },
    {
      "name": "youj-locale-es",
      "type": "registry:lib",
      "title": "Spanish labels",
      "description": "Every built-in string of the Youj components in Spanish, for <YoujProvider labels={es}>.",
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/locales/es.ts",
          "type": "registry:lib",
          "target": "locales/es.ts"
        }
      ]
    },
    {
      "name": "youj-locale-fr",
      "type": "registry:lib",
      "title": "French labels",
      "description": "Every built-in string of the Youj components in French, for <YoujProvider labels={fr}>.",
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/locales/fr.ts",
          "type": "registry:lib",
          "target": "locales/fr.ts"
        }
      ]
    },
    {
      "name": "youj-locale-he",
      "type": "registry:lib",
      "title": "Hebrew labels",
      "description": "Every built-in string of the Youj components in Hebrew, for <YoujProvider labels={he}>.",
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/locales/he.ts",
          "type": "registry:lib",
          "target": "locales/he.ts"
        }
      ]
    },
    {
      "name": "youj-locale-it",
      "type": "registry:lib",
      "title": "Italian labels",
      "description": "Every built-in string of the Youj components in Italian, for <YoujProvider labels={it}>.",
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/locales/it.ts",
          "type": "registry:lib",
          "target": "locales/it.ts"
        }
      ]
    },
    {
      "name": "youj-locale-ja",
      "type": "registry:lib",
      "title": "Japanese labels",
      "description": "Every built-in string of the Youj components in Japanese, for <YoujProvider labels={ja}>.",
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/locales/ja.ts",
          "type": "registry:lib",
          "target": "locales/ja.ts"
        }
      ]
    },
    {
      "name": "youj-locale-ko",
      "type": "registry:lib",
      "title": "Korean labels",
      "description": "Every built-in string of the Youj components in Korean, for <YoujProvider labels={ko}>.",
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/locales/ko.ts",
          "type": "registry:lib",
          "target": "locales/ko.ts"
        }
      ]
    },
    {
      "name": "youj-locale-nl",
      "type": "registry:lib",
      "title": "Dutch labels",
      "description": "Every built-in string of the Youj components in Dutch, for <YoujProvider labels={nl}>.",
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/locales/nl.ts",
          "type": "registry:lib",
          "target": "locales/nl.ts"
        }
      ]
    },
    {
      "name": "youj-locale-pl",
      "type": "registry:lib",
      "title": "Polish labels",
      "description": "Every built-in string of the Youj components in Polish, for <YoujProvider labels={pl}>.",
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/locales/pl.ts",
          "type": "registry:lib",
          "target": "locales/pl.ts"
        }
      ]
    },
    {
      "name": "youj-locale-pt-br",
      "type": "registry:lib",
      "title": "Brazilian Portuguese labels",
      "description": "Every built-in string of the Youj components in Brazilian Portuguese, for <YoujProvider labels={ptBR}>.",
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/locales/pt-BR.ts",
          "type": "registry:lib",
          "target": "locales/pt-BR.ts"
        }
      ]
    },
    {
      "name": "youj-locale-sv",
      "type": "registry:lib",
      "title": "Swedish labels",
      "description": "Every built-in string of the Youj components in Swedish, for <YoujProvider labels={sv}>.",
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/locales/sv.ts",
          "type": "registry:lib",
          "target": "locales/sv.ts"
        }
      ]
    },
    {
      "name": "youj-locale-tr",
      "type": "registry:lib",
      "title": "Turkish labels",
      "description": "Every built-in string of the Youj components in Turkish, for <YoujProvider labels={tr}>.",
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/locales/tr.ts",
          "type": "registry:lib",
          "target": "locales/tr.ts"
        }
      ]
    },
    {
      "name": "youj-locale-zh-cn",
      "type": "registry:lib",
      "title": "Simplified Chinese labels",
      "description": "Every built-in string of the Youj components in Simplified Chinese, for <YoujProvider labels={zhCN}>.",
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/locales/zh-CN.ts",
          "type": "registry:lib",
          "target": "locales/zh-CN.ts"
        }
      ]
    },
    {
      "name": "youj-presets",
      "type": "registry:item",
      "title": "Motion presets",
      "description": "Tailwind @utility presets for Base UI's data-starting-style / data-ending-style lifecycle: yj-pop, yj-tooltip, yj-dialog, yj-backdrop, yj-sheet-{top,right,bottom,left,start,end}, yj-toast / yj-toast-top / yj-toast-content, yj-collapse, yj-fade and yj-duration-*. Every duration is a youj token times --yj-motion, so Speed, prefers-reduced-motion and reducedMotion=\"always\" reach them. Installing it writes the utilities into your app's stylesheet.",
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "css": {
        "@utility yj-duration-instant": {
          "transition-duration": "calc(var(--yj-duration-instant) * var(--yj-motion, 1))"
        },
        "@utility yj-duration-fast": {
          "transition-duration": "calc(var(--yj-duration-fast) * var(--yj-motion, 1))"
        },
        "@utility yj-duration-base": {
          "transition-duration": "calc(var(--yj-duration-base) * var(--yj-motion, 1))"
        },
        "@utility yj-duration-slow": {
          "transition-duration": "calc(var(--yj-duration-slow) * var(--yj-motion, 1))"
        },
        "@utility yj-duration-deliberate": {
          "transition-duration": "calc(var(--yj-duration-deliberate) * var(--yj-motion, 1))"
        },
        "@utility yj-fade": {
          "transition": "opacity calc(var(--yj-duration-fast) * var(--yj-motion, 1)) var(--ease-standard)",
          "&[data-starting-style], &[data-ending-style]": {
            "opacity": "0"
          },
          "&[data-instant]": {
            "transition-duration": "0s"
          }
        },
        "@utility yj-pop": {
          "--yj-pop-in": "calc(var(--yj-duration-fast) * var(--yj-motion, 1))",
          "transform-origin": "var(--transform-origin, center)",
          "transition": "opacity var(--yj-pop-in) var(--ease-enter), transform calc(var(--yj-duration-spring) * var(--yj-motion, 1)) var(--ease-spring)",
          "&[data-starting-style]": {
            "opacity": "0",
            "transform": "scale(0.96)"
          },
          "&[data-ending-style]": {
            "opacity": "0",
            "transform": "scale(0.98)",
            "transition-duration": "calc(var(--yj-duration-instant) * var(--yj-motion, 1))",
            "transition-timing-function": "var(--ease-standard)"
          },
          "&[data-instant]": {
            "transition-duration": "0s"
          }
        },
        "@utility yj-tooltip": {
          "--yj-tip-in": "calc(var(--yj-duration-fast) * var(--yj-motion, 1))",
          "--yj-tip-x": "0px",
          "--yj-tip-y": "0px",
          "transform-origin": "var(--transform-origin, center)",
          "transition": "opacity var(--yj-tip-in) var(--ease-enter), transform calc(var(--yj-duration-spring) * var(--yj-motion, 1)) var(--ease-spring)",
          "&[data-side='top']": {
            "--yj-tip-y": "3px"
          },
          "&[data-side='bottom']": {
            "--yj-tip-y": "-3px"
          },
          "&[data-side='left'], &[data-side='inline-start']": {
            "--yj-tip-x": "3px"
          },
          "&[data-side='right'], &[data-side='inline-end']": {
            "--yj-tip-x": "-3px"
          },
          "&[data-side='inline-start']:dir(rtl)": {
            "--yj-tip-x": "-3px"
          },
          "&[data-side='inline-end']:dir(rtl)": {
            "--yj-tip-x": "3px"
          },
          "&[data-starting-style]": {
            "opacity": "0",
            "transform": "translate(var(--yj-tip-x), var(--yj-tip-y)) scale(0.97)"
          },
          "&[data-ending-style]": {
            "opacity": "0",
            "transform": "translate(calc(var(--yj-tip-x) / 2), calc(var(--yj-tip-y) / 2)) scale(0.98)",
            "transition-duration": "calc(var(--yj-duration-instant) * var(--yj-motion, 1))",
            "transition-timing-function": "var(--ease-standard)"
          },
          "&[data-instant]": {
            "transition-duration": "0s"
          }
        },
        "@utility yj-dialog": {
          "--yj-dialog-in": "calc(var(--yj-duration-base) * var(--yj-motion, 1))",
          "transition": "opacity var(--yj-dialog-in) var(--ease-enter), transform calc(var(--yj-duration-spring) * var(--yj-motion, 1)) var(--ease-spring)",
          "&::after": {
            "content": "''",
            "position": "absolute",
            "inset": "-1px",
            "border-radius": "inherit",
            "background": "var(--yj-dialog-dim, color-mix(in oklab, var(--yj-shade) 12%, transparent))",
            "opacity": "0",
            "pointer-events": "none",
            "transition": "opacity calc(var(--yj-duration-base) * var(--yj-motion, 1)) var(--ease-standard)"
          },
          "&[data-starting-style]": {
            "opacity": "0",
            "transform": "translateY(6px) scale(0.96)"
          },
          "&[data-ending-style]": {
            "opacity": "0",
            "transform": "translateY(3px) scale(0.98)",
            "transition-duration": "calc(var(--yj-duration-fast) * var(--yj-motion, 1))",
            "transition-timing-function": "var(--ease-standard)"
          },
          "&[data-nested-dialog-open]": {
            "transform": "translateY(calc(var(--nested-dialogs, 1) * 0.875rem)) scale(calc(1 - var(--nested-dialogs, 1) * 0.06))",
            "transition-duration": "var(--yj-dialog-in)",
            "transition-timing-function": "var(--ease-standard)"
          },
          "&[data-nested-dialog-open]::after": {
            "opacity": "1"
          }
        },
        "@utility yj-backdrop": {
          "opacity": "calc(1 - var(--drawer-swipe-progress, 0))",
          "transition": "opacity calc(var(--yj-duration-base) * var(--yj-motion, 1)) var(--ease-standard)",
          "&[data-starting-style], &[data-ending-style]": {
            "opacity": "0"
          },
          "&[data-ending-style]": {
            "transition-duration": "calc(var(--yj-duration-fast) * var(--drawer-swipe-strength, 1) * var(--yj-motion, 1))"
          },
          "&[data-swiping]": {
            "transition-duration": "0s"
          }
        },
        "@utility yj-sheet-top": {
          "--yj-sheet-hidden": "translateY(calc(-100% - var(--yj-sheet-gap, 0px)))",
          "--yj-sheet-rest": "translateY(var(--drawer-swipe-movement-y, 0px))",
          "@apply yj-sheet-base": {}
        },
        "@utility yj-sheet-bottom": {
          "--yj-sheet-hidden": "translateY(calc(100% + var(--yj-sheet-gap, 0px)))",
          "--yj-sheet-rest": "translateY(var(--drawer-swipe-movement-y, 0px))",
          "@apply yj-sheet-base": {}
        },
        "@utility yj-sheet-left": {
          "--yj-sheet-hidden": "translateX(calc(-100% - var(--yj-sheet-gap, 0px)))",
          "--yj-sheet-rest": "translateX(var(--drawer-swipe-movement-x, 0px))",
          "@apply yj-sheet-base": {}
        },
        "@utility yj-sheet-right": {
          "--yj-sheet-hidden": "translateX(calc(100% + var(--yj-sheet-gap, 0px)))",
          "--yj-sheet-rest": "translateX(var(--drawer-swipe-movement-x, 0px))",
          "@apply yj-sheet-base": {}
        },
        "@utility yj-sheet-start": {
          "--yj-sheet-hidden": "translateX(calc(-100% - var(--yj-sheet-gap, 0px)))",
          "--yj-sheet-rest": "translateX(var(--drawer-swipe-movement-x, 0px))",
          "@apply yj-sheet-base": {},
          "&:dir(rtl)": {
            "--yj-sheet-hidden": "translateX(calc(100% + var(--yj-sheet-gap, 0px)))"
          }
        },
        "@utility yj-sheet-end": {
          "--yj-sheet-hidden": "translateX(calc(100% + var(--yj-sheet-gap, 0px)))",
          "--yj-sheet-rest": "translateX(var(--drawer-swipe-movement-x, 0px))",
          "@apply yj-sheet-base": {},
          "&:dir(rtl)": {
            "--yj-sheet-hidden": "translateX(calc(-100% - var(--yj-sheet-gap, 0px)))"
          }
        },
        "@utility yj-sheet-base": {
          "transform": "var(--yj-sheet-rest)",
          "transition": "transform calc(var(--yj-duration-slow) * var(--yj-motion, 1)) var(--ease-enter)",
          "&[data-starting-style], &[data-ending-style]": {
            "transform": "var(--yj-sheet-hidden)"
          },
          "&[data-ending-style]": {
            "transition-duration": "calc(var(--yj-duration-base) * var(--drawer-swipe-strength, 1) * var(--yj-motion, 1))",
            "transition-timing-function": "var(--ease-exit)"
          },
          "&[data-swiping]": {
            "transition-duration": "0s"
          }
        },
        "@utility yj-toast": {
          "--yj-toast-up": "-1",
          "bottom": "0",
          "transform-origin": "bottom center",
          "@apply yj-toast-base": {},
          "&::after": {
            "top": "100%"
          }
        },
        "@utility yj-toast-top": {
          "--yj-toast-up": "1",
          "top": "0",
          "transform-origin": "top center",
          "@apply yj-toast-base": {},
          "&::after": {
            "bottom": "100%"
          }
        },
        "@utility yj-toast-base": {
          "--yj-toast-t": "calc(var(--yj-duration-slow) * var(--yj-motion, 1))",
          "--yj-toast-scale": "max(0, calc(1 - var(--toast-index) * 0.05))",
          "--yj-toast-shrink": "calc(1 - var(--yj-toast-scale))",
          "--yj-toast-height": "var(--toast-frontmost-height, var(--toast-height))",
          "--yj-toast-offset": "calc(var(--yj-toast-up) * (var(--toast-offset-y) + var(--toast-index) * var(--yj-toast-gap, 0.75rem)) + var(--toast-swipe-movement-y))",
          "position": "absolute",
          "inset-inline": "0",
          "z-index": "calc(1000 - var(--toast-index))",
          "height": "var(--yj-toast-height)",
          "transform": "translateX(var(--toast-swipe-movement-x)) translateY(calc(var(--toast-swipe-movement-y) + var(--yj-toast-up) * (var(--toast-index) * var(--yj-toast-peek, 0.75rem) + var(--yj-toast-shrink) * var(--yj-toast-height)))) scale(var(--yj-toast-scale))",
          "transition": "transform var(--yj-toast-t) var(--ease-enter), opacity var(--yj-toast-t) var(--ease-enter), height calc(var(--yj-duration-fast) * var(--yj-motion, 1)) var(--ease-standard)",
          "&::after": {
            "content": "''",
            "position": "absolute",
            "inset-inline": "0",
            "height": "calc(var(--yj-toast-gap, 0.75rem) + 1px)"
          },
          "&[data-expanded]": {
            "height": "var(--toast-height)",
            "transform": "translateX(var(--toast-swipe-movement-x)) translateY(var(--yj-toast-offset))"
          },
          "&[data-starting-style], &[data-ending-style]:not([data-swipe-direction])": {
            "transform": "translateY(calc(var(--yj-toast-up) * -150%))"
          },
          "&[data-ending-style]": {
            "opacity": "0"
          },
          "&[data-ending-style][data-swipe-direction='up']": {
            "transform": "translateY(calc(var(--toast-swipe-movement-y) - 150%))"
          },
          "&[data-ending-style][data-swipe-direction='down']": {
            "transform": "translateY(calc(var(--toast-swipe-movement-y) + 150%))"
          },
          "&[data-ending-style][data-swipe-direction='left']": {
            "transform": "translateX(calc(var(--toast-swipe-movement-x) - 150%)) translateY(var(--yj-toast-offset))"
          },
          "&[data-ending-style][data-swipe-direction='right']": {
            "transform": "translateX(calc(var(--toast-swipe-movement-x) + 150%)) translateY(var(--yj-toast-offset))"
          },
          "&[data-limited]": {
            "opacity": "0"
          },
          "&[data-swiping]": {
            "transition-duration": "0s"
          }
        },
        "@utility yj-toast-content": {
          "transition": "opacity calc(var(--yj-duration-base) * var(--yj-motion, 1)) var(--ease-standard)",
          "&[data-behind]": {
            "opacity": "0"
          },
          "&[data-expanded]": {
            "opacity": "1"
          }
        },
        "@utility yj-collapse": {
          "height": "var(--collapsible-panel-height, var(--accordion-panel-height, auto))",
          "overflow": "hidden",
          "transition": "height calc(var(--yj-duration-base) * var(--yj-motion, 1)) var(--ease-standard), opacity calc(var(--yj-duration-base) * var(--yj-motion, 1)) var(--ease-standard)",
          "&[data-starting-style], &[data-ending-style]": {
            "height": "0",
            "opacity": "0"
          }
        }
      }
    },
    {
      "name": "youj-theme-brutal",
      "type": "registry:lib",
      "title": "Brutal theme stylesheet",
      "description": "The Brutal theme's stylesheet, for an app that themes with attributes (data-yj-theme=\"brutal\" on <html>, as a Vite or Astro app does). The preset itself (brutal) is in the core already: import styles from lib/youj/theme/themes/brutal.css after youj.css. A theme set with <YoujProvider theme={brutal}> or themeProps needs no stylesheet.",
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/lib/youj/theme/themes/brutal.css",
          "type": "registry:file",
          "target": "lib/youj/theme/themes/brutal.css"
        }
      ]
    },
    {
      "name": "youj-theme-terminal",
      "type": "registry:lib",
      "title": "Terminal theme stylesheet",
      "description": "The Terminal theme's stylesheet, for an app that themes with attributes (data-yj-theme=\"terminal\" on <html>, as a Vite or Astro app does). The preset itself (terminal) is in the core already: import styles from lib/youj/theme/themes/terminal.css after youj.css. A theme set with <YoujProvider theme={terminal}> or themeProps needs no stylesheet.",
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/lib/youj/theme/themes/terminal.css",
          "type": "registry:file",
          "target": "lib/youj/theme/themes/terminal.css"
        }
      ]
    },
    {
      "name": "youj-theme-check",
      "type": "registry:lib",
      "title": "Theme check",
      "description": "Development guardrails for themes: checkTheme, themeErrors, checkRoles and the console warning YoujProvider logs for a theme that misses contrast. The core ships a no-op in its place, since production builds strip the check. Import from lib/youj/theme/check.",
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/lib/youj/theme/check.ts",
          "type": "registry:lib",
          "target": "lib/youj/theme/check.ts"
        }
      ]
    },
    {
      "name": "youj-theme-meadow",
      "type": "registry:lib",
      "title": "Meadow theme stylesheet",
      "description": "The Meadow theme's stylesheet, for an app that themes with attributes (data-yj-theme=\"meadow\" on <html>, as a Vite or Astro app does). The preset itself (meadow) is in the core already: import styles from lib/youj/theme/themes/meadow.css after youj.css. A theme set with <YoujProvider theme={meadow}> or themeProps needs no stylesheet.",
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/lib/youj/theme/themes/meadow.css",
          "type": "registry:file",
          "target": "lib/youj/theme/themes/meadow.css"
        }
      ]
    },
    {
      "name": "youj-theme-sandstone",
      "type": "registry:lib",
      "title": "Sandstone theme stylesheet",
      "description": "The Sandstone theme's stylesheet, for an app that themes with attributes (data-yj-theme=\"sandstone\" on <html>, as a Vite or Astro app does). The preset itself (sandstone) is in the core already: import styles from lib/youj/theme/themes/sandstone.css after youj.css. A theme set with <YoujProvider theme={sandstone}> or themeProps needs no stylesheet.",
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/lib/youj/theme/themes/sandstone.css",
          "type": "registry:file",
          "target": "lib/youj/theme/themes/sandstone.css"
        }
      ]
    },
    {
      "name": "youj-theme-cinnabar",
      "type": "registry:lib",
      "title": "Cinnabar theme stylesheet",
      "description": "The Cinnabar theme's stylesheet, for an app that themes with attributes (data-yj-theme=\"cinnabar\" on <html>, as a Vite or Astro app does). The preset itself (cinnabar) is in the core already: import styles from lib/youj/theme/themes/cinnabar.css after youj.css. A theme set with <YoujProvider theme={cinnabar}> or themeProps needs no stylesheet.",
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/lib/youj/theme/themes/cinnabar.css",
          "type": "registry:file",
          "target": "lib/youj/theme/themes/cinnabar.css"
        }
      ]
    },
    {
      "name": "youj-theme-umber",
      "type": "registry:lib",
      "title": "Umber theme stylesheet",
      "description": "The Umber theme's stylesheet, for an app that themes with attributes (data-yj-theme=\"umber\" on <html>, as a Vite or Astro app does). The preset itself (umber) is in the core already: import styles from lib/youj/theme/themes/umber.css after youj.css. A theme set with <YoujProvider theme={umber}> or themeProps needs no stylesheet.",
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/lib/youj/theme/themes/umber.css",
          "type": "registry:file",
          "target": "lib/youj/theme/themes/umber.css"
        }
      ]
    },
    {
      "name": "youj-theme-seaglass",
      "type": "registry:lib",
      "title": "Seaglass theme stylesheet",
      "description": "The Seaglass theme's stylesheet, for an app that themes with attributes (data-yj-theme=\"seaglass\" on <html>, as a Vite or Astro app does). The preset itself (seaglass) is in the core already: import styles from lib/youj/theme/themes/seaglass.css after youj.css. A theme set with <YoujProvider theme={seaglass}> or themeProps needs no stylesheet.",
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/lib/youj/theme/themes/seaglass.css",
          "type": "registry:file",
          "target": "lib/youj/theme/themes/seaglass.css"
        }
      ]
    },
    {
      "name": "youj-theme-heather",
      "type": "registry:lib",
      "title": "Heather theme stylesheet",
      "description": "The Heather theme's stylesheet, for an app that themes with attributes (data-yj-theme=\"heather\" on <html>, as a Vite or Astro app does). The preset itself (heather) is in the core already: import styles from lib/youj/theme/themes/heather.css after youj.css. A theme set with <YoujProvider theme={heather}> or themeProps needs no stylesheet.",
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/lib/youj/theme/themes/heather.css",
          "type": "registry:file",
          "target": "lib/youj/theme/themes/heather.css"
        }
      ]
    },
    {
      "name": "youj-palettes",
      "type": "registry:lib",
      "title": "Palettes stylesheet",
      "description": "Every palette as a stylesheet, for an app that themes with attributes (data-yj-palette=\"meadow\" next to data-yj-theme on <html>, as a Vite or Astro app does): import lib/youj/theme/palettes.css after youj.css. A palette and style set with <YoujProvider palette={…} style={…}> or themeProps need no stylesheet.",
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/lib/youj/theme/palettes.css",
          "type": "registry:file",
          "target": "lib/youj/theme/palettes.css"
        }
      ]
    },
    {
      "name": "youj-styles",
      "type": "registry:lib",
      "title": "Styles stylesheet",
      "description": "Every style as a stylesheet, for an app that themes with attributes (data-yj-style=\"bezel\" next to data-yj-theme on <html>, as a Vite or Astro app does): import lib/youj/theme/styles.css after youj.css. A palette and style set with <YoujProvider palette={…} style={…}> or themeProps need no stylesheet.",
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/lib/youj/theme/styles.css",
          "type": "registry:file",
          "target": "lib/youj/theme/styles.css"
        }
      ]
    },
    {
      "name": "icon-morph",
      "type": "registry:lib",
      "title": "Icon morph engine",
      "description": "Dependency-free true path morphing between arbitrary stroke icons: flattens any rendered SVG into contours, keeps shared strokes still, carves strokes cut by a slash out of the original, pairs the rest by position and length with a rotation-aware blend, and draws leftovers in or out.",
      "files": [
        {
          "path": "src/components/youj/icons/icon-morph.ts",
          "type": "registry:lib",
          "target": "components/youj/icons/icon-morph.ts"
        }
      ]
    },
    {
      "name": "icon-swap",
      "type": "registry:component",
      "title": "IconSwap",
      "description": "Swaps any two icons (lucide-react or youj) with rotate, scale-blur, draw, flip, slide, fold, wipe, zoom, pop or a true morph. One progress value drives every transition, so reversing mid-swap never jumps; per-state labels; instant under reduced motion.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/icon-engine.json",
        "https://www.youj.dev/r/icon-morph.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/icon-swap.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/icon-swap.tsx"
        }
      ]
    },
    {
      "name": "use-icon-state",
      "type": "registry:hook",
      "title": "useIconState",
      "description": "Turns an IconSwap or a state icon into an accessible toggle button: aria-pressed with a fixed name for toggles, or a name that follows the state for actions like play/pause.",
      "files": [
        {
          "path": "src/components/youj/icons/use-icon-state.ts",
          "type": "registry:hook",
          "target": "components/youj/icons/use-icon-state.ts"
        }
      ]
    },
    {
      "name": "icon-engine",
      "type": "registry:lib",
      "title": "Icon engine",
      "description": "createIcon() factory, IconProps (size, strokeWidth, aria-label, trigger hover|mount|loop|none, controlled active), choreography helpers and useIconTrigger (parent-button / data-yj-trigger hover, focus-visible, offscreen-paused loops, reduced motion).",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/icon-base.tsx",
          "type": "registry:lib",
          "target": "components/youj/icons/icon-base.tsx"
        },
        {
          "path": "src/components/youj/icons/use-icon-trigger.ts",
          "type": "registry:lib",
          "target": "components/youj/icons/use-icon-trigger.ts"
        }
      ]
    },
    {
      "name": "youj-icon",
      "type": "registry:component",
      "title": "YoujIcon",
      "description": "Adds 22 youj effects (pop, wiggle, spin, nudge, pulse, ring, bounce, flip, swing, float, heartbeat, shake, jelly, orbit, tilt, zoom-in/out and five draw modes) to any lucide-react icon, with intensity and RTL-aware direction, on the same triggers as the animated set.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/youj-icon.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/youj-icon.tsx"
        }
      ]
    },
    {
      "name": "icon-accessibility",
      "type": "registry:component",
      "title": "Accessibility icon",
      "description": "Universal access: the figure raises both arms in a small cheer and lowers them again.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/accessibility.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/accessibility.tsx"
        }
      ]
    },
    {
      "name": "icon-activity",
      "type": "registry:component",
      "title": "Activity icon",
      "description": "A heartbeat trace: a bright pulse runs along the line from left to right.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/activity.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/activity.tsx"
        }
      ]
    },
    {
      "name": "icon-alarm-clock",
      "type": "registry:component",
      "title": "Alarm Clock icon",
      "description": "Silent ↔ ringing. The alarm goes off: the clock rattles on its feet and sound arcs open on both sides, and they stay while it rings. Silencing it closes the arcs and lets the clock settle. `active` = ringing.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/alarm-clock.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/alarm-clock.tsx"
        }
      ]
    },
    {
      "name": "icon-alert-triangle",
      "type": "registry:component",
      "title": "Alert Triangle icon",
      "description": "The triangle rocks on its base; the exclamation jumps and the point lands a beat after.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/alert-triangle.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/alert-triangle.tsx"
        }
      ]
    },
    {
      "name": "icon-align-center-horizontal",
      "type": "registry:component",
      "title": "Align Center Horizontal icon",
      "description": "Align vertical centers. The objects drift apart above and below the axis, the short one a beat behind, and snap back centered on it.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/align-center-horizontal.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/align-center-horizontal.tsx"
        }
      ]
    },
    {
      "name": "icon-align-center-vertical",
      "type": "registry:component",
      "title": "Align Center Vertical icon",
      "description": "Align horizontal centers. The objects drift apart to opposite sides of the axis, the short one a beat behind, and snap back centered on it.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/align-center-vertical.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/align-center-vertical.tsx"
        }
      ]
    },
    {
      "name": "icon-align-center",
      "type": "registry:component",
      "title": "Align Center icon",
      "description": "The short lines drift out to opposite margins and snap back to the center axis, one after the other.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/align-center.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/align-center.tsx"
        }
      ]
    },
    {
      "name": "icon-align-end-horizontal",
      "type": "registry:component",
      "title": "Align End Horizontal icon",
      "description": "Align bottom. Both objects lift off the guide, the short one a beat behind, and snap back down against it.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/align-end-horizontal.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/align-end-horizontal.tsx"
        }
      ]
    },
    {
      "name": "icon-align-end-vertical",
      "type": "registry:component",
      "title": "Align End Vertical icon",
      "description": "Align right. Both objects drift off the guide, the short one a beat behind, and snap back against it.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/align-end-vertical.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/align-end-vertical.tsx"
        }
      ]
    },
    {
      "name": "icon-align-justify",
      "type": "registry:component",
      "title": "Align Justify icon",
      "description": "The lines fall back to ragged lengths all at once, then are set to full measure again one after another, top to bottom. The short last line stays as it is.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/align-justify.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/align-justify.tsx"
        }
      ]
    },
    {
      "name": "icon-align-left",
      "type": "registry:component",
      "title": "Align Left icon",
      "description": "Left ↔ center. The ragged lines slide over to the center axis one after another; reversing sets them back against the left margin. The full-width line never moves. `active` = centered.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/align-left.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/align-left.tsx"
        }
      ]
    },
    {
      "name": "icon-align-right",
      "type": "registry:component",
      "title": "Align Right icon",
      "description": "The short lines slip away from the right margin and snap back flush, one after the other. The full-width line never moves.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/align-right.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/align-right.tsx"
        }
      ]
    },
    {
      "name": "icon-align-start-horizontal",
      "type": "registry:component",
      "title": "Align Start Horizontal icon",
      "description": "Align top. Both objects drop away from the guide, the short one a beat behind, and snap back up against it.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/align-start-horizontal.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/align-start-horizontal.tsx"
        }
      ]
    },
    {
      "name": "icon-align-start-vertical",
      "type": "registry:component",
      "title": "Align Start Vertical icon",
      "description": "Align left. Both objects drift off the guide, the short one a beat behind, and snap back against it.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/align-start-vertical.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/align-start-vertical.tsx"
        }
      ]
    },
    {
      "name": "icon-anchor",
      "type": "registry:component",
      "title": "Anchor icon",
      "description": "Harbour, port, anchored. The anchor swings from its ring like a weight on a line, each swing smaller than the last, and comes to rest hanging true.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/anchor.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/anchor.tsx"
        }
      ]
    },
    {
      "name": "icon-aperture",
      "type": "registry:component",
      "title": "Aperture icon",
      "description": "Wide ↔ narrow. The iris closes down on its center, every blade sliding in together as the opening turns; opening up draws them back to the rim. `active` = narrow.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/aperture.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/aperture.tsx"
        }
      ]
    },
    {
      "name": "icon-app-window",
      "type": "registry:component",
      "title": "App Window icon",
      "description": "The window lifts into focus and its title-bar controls light up one after another.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/app-window.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/app-window.tsx"
        }
      ]
    },
    {
      "name": "icon-archive-restore",
      "type": "registry:component",
      "title": "Archive Restore icon",
      "description": "Archive ↔ restore. The lid lifts off the box as the arrow inside turns to point out of it; archiving again turns the arrow back in and the lid comes down on it. `active` = restore.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/archive-restore.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/archive-restore.tsx"
        }
      ]
    },
    {
      "name": "icon-archive",
      "type": "registry:component",
      "title": "Archive icon",
      "description": "Filing away: the lid lifts, an item drops into the box, and the lid shuts on it with a thud.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/archive.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/archive.tsx"
        }
      ]
    },
    {
      "name": "icon-arrow-down-left",
      "type": "registry:component",
      "title": "Arrow Down Left icon",
      "description": "The mirror of arrow-up-right: leaves along its own diagonal and slides back in from the opposite corner.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/arrow-down-left.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/arrow-down-left.tsx"
        }
      ]
    },
    {
      "name": "icon-arrow-down-right",
      "type": "registry:component",
      "title": "Arrow Down Right icon",
      "description": "arrow-up-right turned a quarter clockwise: leaves along its own diagonal and slides back in from the opposite corner.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/arrow-down-right.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/arrow-down-right.tsx"
        }
      ]
    },
    {
      "name": "icon-arrow-down-to-line",
      "type": "registry:component",
      "title": "Arrow Down To Line icon",
      "description": "Down to the end: the arrow winds up, drops to touch the line, and the line gives as it lands.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/arrow-down-to-line.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/arrow-down-to-line.tsx"
        }
      ]
    },
    {
      "name": "icon-arrow-down",
      "type": "registry:component",
      "title": "Arrow Down icon",
      "description": "Drops out through the bottom and slides back in from the top, landing precisely.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/arrow-down.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/arrow-down.tsx"
        }
      ]
    },
    {
      "name": "icon-arrow-left-right",
      "type": "registry:component",
      "title": "Arrow Left Right icon",
      "description": "Swap. The pair makes a half-turn about its center, each arrow taking the other's lane, and lands on its own silhouette. Rest is 180° so leaving mid-turn completes forwards.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/arrow-left-right.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/arrow-left-right.tsx"
        }
      ]
    },
    {
      "name": "icon-arrow-left",
      "type": "registry:component",
      "title": "Arrow Left icon",
      "description": "Back. The mirror of arrow-right: slips out to the left and slides back in from the right, landing precisely.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/arrow-left.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/arrow-left.tsx"
        }
      ]
    },
    {
      "name": "icon-arrow-right",
      "type": "registry:component",
      "title": "Arrow Right icon",
      "description": "Nudges out to the right and re-enters from the left, landing precisely.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/arrow-right.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/arrow-right.tsx"
        }
      ]
    },
    {
      "name": "icon-arrow-up-down",
      "type": "registry:component",
      "title": "Arrow Up Down icon",
      "description": "Sort. The up arrow rises out of frame and back in from below while the down arrow sinks out and back in from above, a beat behind.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/arrow-up-down.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/arrow-up-down.tsx"
        }
      ]
    },
    {
      "name": "icon-arrow-up-left",
      "type": "registry:component",
      "title": "Arrow Up Left icon",
      "description": "arrow-up-right turned a quarter counter-clockwise: leaves along its own diagonal and slides back in from the opposite corner.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/arrow-up-left.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/arrow-up-left.tsx"
        }
      ]
    },
    {
      "name": "icon-arrow-up-right",
      "type": "registry:component",
      "title": "Arrow Up Right icon",
      "description": "Leaves along its own diagonal and slides back in from the opposite corner.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/arrow-up-right.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/arrow-up-right.tsx"
        }
      ]
    },
    {
      "name": "icon-arrow-up-to-line",
      "type": "registry:component",
      "title": "Arrow Up To Line icon",
      "description": "Back to the top: the arrow winds down, shoots up to touch the line, and the line gives as it lands.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/arrow-up-to-line.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/arrow-up-to-line.tsx"
        }
      ]
    },
    {
      "name": "icon-arrow-up",
      "type": "registry:component",
      "title": "Arrow Up icon",
      "description": "Up ↔ down, for sort direction and show more / less. The arrow folds flat through its center and unfolds the other way; toggling mid-fold turns it straight back. `active` = down.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/arrow-up.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/arrow-up.tsx"
        }
      ]
    },
    {
      "name": "icon-asterisk",
      "type": "registry:component",
      "title": "Asterisk icon",
      "description": "A fifth of a turn: the asterisk tightens, rotates exactly one ray and lands on its own shape. Rest is 72° so leaving mid-turn completes forwards.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/asterisk.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/asterisk.tsx"
        }
      ]
    },
    {
      "name": "icon-at-sign",
      "type": "registry:component",
      "title": "At Sign icon",
      "description": "The center pops, then the tail is written around it in one continuous stroke.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/at-sign.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/at-sign.tsx"
        }
      ]
    },
    {
      "name": "icon-audio-lines",
      "type": "registry:component",
      "title": "Audio Lines icon",
      "description": "Silent ↔ speaking, for voice mode and live audio. The ticks stretch out into a waveform from the middle outward; going quiet draws them back in from the edges. `active` = speaking.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/audio-lines.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/audio-lines.tsx"
        }
      ]
    },
    {
      "name": "icon-award",
      "type": "registry:component",
      "title": "Award icon",
      "description": "Awarded. The rosette swings on its pin like a pendulum and settles, the tails trailing a beat behind the medal.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/award.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/award.tsx"
        }
      ]
    },
    {
      "name": "icon-backspace",
      "type": "registry:component",
      "title": "Backspace icon",
      "description": "The key is pressed toward its point and each stroke of the × pinches in to its centre and snaps back.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/backspace.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/backspace.tsx"
        }
      ]
    },
    {
      "name": "icon-badge-check",
      "type": "registry:component",
      "title": "Badge Check icon",
      "description": "A seal of approval: the rosette is lifted, twisted and pressed down like a stamp, and the check is inked fresh as it lands.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/badge-check.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/badge-check.tsx"
        }
      ]
    },
    {
      "name": "icon-badge-percent",
      "type": "registry:component",
      "title": "Badge Percent icon",
      "description": "On sale: the rosette turns an eighth and lands on its own outline while the percent holds still. Rest is 45° so leaving mid-turn completes forwards.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/badge-percent.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/badge-percent.tsx"
        }
      ]
    },
    {
      "name": "icon-ban",
      "type": "registry:component",
      "title": "Ban icon",
      "description": "Denied: the sign shakes its head, and the bar is struck through again.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/ban.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/ban.tsx"
        }
      ]
    },
    {
      "name": "icon-banknote",
      "type": "registry:component",
      "title": "Banknote icon",
      "description": "Paid in cash: the note lifts as the seal in its middle flips over like a tossed coin, and it settles back down.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/banknote.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/banknote.tsx"
        }
      ]
    },
    {
      "name": "icon-bar-chart",
      "type": "registry:component",
      "title": "Bar Chart icon",
      "description": "Bars grow up from the baseline, left to right.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/bar-chart.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/bar-chart.tsx"
        }
      ]
    },
    {
      "name": "icon-baseline",
      "type": "registry:component",
      "title": "Baseline icon",
      "description": "Text colour: the letter hops and the colour bar under it is ruled again from left to right.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/baseline.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/baseline.tsx"
        }
      ]
    },
    {
      "name": "icon-battery-charging",
      "type": "registry:component",
      "title": "Battery Charging icon",
      "description": "Battery ↔ charging. The three cells tilt and slide into one another until they fuse into a bolt that breaks through the casing top and bottom; unplugging splits the bolt back into cells. `active` = charging.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/battery-charging.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/battery-charging.tsx"
        }
      ]
    },
    {
      "name": "icon-battery-low",
      "type": "registry:component",
      "title": "Battery Low icon",
      "description": "Low battery: the last cell blinks a warning.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/battery-low.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/battery-low.tsx"
        }
      ]
    },
    {
      "name": "icon-battery",
      "type": "registry:component",
      "title": "Battery icon",
      "description": "Charging: the cells drain, then fill one by one.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/battery.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/battery.tsx"
        }
      ]
    },
    {
      "name": "icon-bell-dot",
      "type": "registry:component",
      "title": "Bell Dot icon",
      "description": "Read ↔ unread. A badge pops onto the bell's shoulder with a settle and cuts its own gap out of the body, and the bell rings once beneath it; marking as read lets the badge shrink away and the gap closes behind it. `active` = unread.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/bell-dot.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/bell-dot.tsx"
        }
      ]
    },
    {
      "name": "icon-bell-off",
      "type": "registry:component",
      "title": "Bell Off icon",
      "description": "Muted ↔ ringing. The slash is pulled out and the gap behind it closes, then the bell swings back to life with the clapper a beat late. Muting draws the slash back through a still bell. `active` = notifications on.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/bell-off.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/bell-off.tsx"
        }
      ]
    },
    {
      "name": "icon-bell-plus",
      "type": "registry:component",
      "title": "Bell Plus icon",
      "description": "Add a notification: the bell swings from its crown as the plus beside it turns a quarter.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/bell-plus.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/bell-plus.tsx"
        }
      ]
    },
    {
      "name": "icon-bell",
      "type": "registry:component",
      "title": "Bell icon",
      "description": "The body swings from its crown; the clapper follows a beat late and swings wider.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/bell.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/bell.tsx"
        }
      ]
    },
    {
      "name": "icon-bike",
      "type": "registry:component",
      "title": "Bike icon",
      "description": "Pedalling off: the bike rolls forward and rocks back onto its wheels.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/bike.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/bike.tsx"
        }
      ]
    },
    {
      "name": "icon-binary",
      "type": "registry:component",
      "title": "Binary icon",
      "description": "The bits flip: each digit turns over in place, one after another.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/binary.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/binary.tsx"
        }
      ]
    },
    {
      "name": "icon-bluetooth",
      "type": "registry:component",
      "title": "Bluetooth icon",
      "description": "On ↔ connected. Pairing re-traces the rune in one continuous stroke, then the link dots spring out on both sides; disconnecting pulls them back in. `active` = connected.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/bluetooth.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/bluetooth.tsx"
        }
      ]
    },
    {
      "name": "icon-bold",
      "type": "registry:component",
      "title": "Bold icon",
      "description": "Regular ↔ bold. The letter is struck twice and the two passes slide half a stroke apart, so every stem thickens the way a faux-bold is set; turning bold off slides them back together. `active` = bold.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/bold.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/bold.tsx"
        }
      ]
    },
    {
      "name": "icon-book-open",
      "type": "registry:component",
      "title": "Book Open icon",
      "description": "Reading. A page lifts off the right, turns over the spine and settles onto the left.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/book-open.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/book-open.tsx"
        }
      ]
    },
    {
      "name": "icon-book",
      "type": "registry:component",
      "title": "Book icon",
      "description": "The book is tipped off the shelf toward you and settles back upright.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/book.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/book.tsx"
        }
      ]
    },
    {
      "name": "icon-bookmark-plus",
      "type": "registry:component",
      "title": "Bookmark Plus icon",
      "description": "Add to a collection → added. The ribbon tugs and the plus swings into a check with a small settle. `active` = added.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/bookmark-plus.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/bookmark-plus.tsx"
        }
      ]
    },
    {
      "name": "icon-bookmark",
      "type": "registry:component",
      "title": "Bookmark icon",
      "description": "Save ↔ saved. The ribbon gives a small tug and fills from the top down, the fill landing with a settle; removing the bookmark drains it back up. `active` = saved.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/bookmark.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/bookmark.tsx"
        }
      ]
    },
    {
      "name": "icon-bot",
      "type": "registry:component",
      "title": "Bot icon",
      "description": "Asleep ↔ awake, for an assistant or agent coming online. The eyes open by straightening from closed lids, the head gives a small hop and the antenna light comes on; putting it to sleep closes the eyes and the light goes out. `active` = awake.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/bot.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/bot.tsx"
        }
      ]
    },
    {
      "name": "icon-braces",
      "type": "registry:component",
      "title": "Braces icon",
      "description": "An object fills in: the braces part to make room and three values are typed between them, held while hovered.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/braces.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/braces.tsx"
        }
      ]
    },
    {
      "name": "icon-brand-discord",
      "type": "registry:component",
      "title": "Brand Discord icon",
      "description": "The Discord symbol, to link to a Discord server or sign in with Discord, per Discord's brand guidelines: Blurple, black or white, beside the Discord name. Static.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/brand-discord.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/brand-discord.tsx"
        }
      ]
    },
    {
      "name": "icon-brand-figma",
      "type": "registry:component",
      "title": "Brand Figma icon",
      "description": "Figma's single-color icon, to link to Figma files or say a product works with Figma, per Figma's brand guidelines. Static.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/brand-figma.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/brand-figma.tsx"
        }
      ]
    },
    {
      "name": "icon-brand-github",
      "type": "registry:component",
      "title": "Brand Github icon",
      "description": "The GitHub mark, to link to GitHub or sign in with it, per GitHub's logo guidelines: black, white or gray only. Static.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/brand-github.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/brand-github.tsx"
        }
      ]
    },
    {
      "name": "icon-brand-linkedin",
      "type": "registry:component",
      "title": "Brand Linkedin icon",
      "description": "The LinkedIn [in] logo, to link to a LinkedIn profile or page, per LinkedIn's brand guidelines: blue, black or white only. Static.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/brand-linkedin.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/brand-linkedin.tsx"
        }
      ]
    },
    {
      "name": "icon-brand-x",
      "type": "registry:component",
      "title": "Brand X icon",
      "description": "The X logo, to link to an X account or sign in with X, per X's brand guidelines: black or white only. Static.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/brand-x.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/brand-x.tsx"
        }
      ]
    },
    {
      "name": "icon-briefcase",
      "type": "registry:component",
      "title": "Briefcase icon",
      "description": "Picked up. The case lifts by its handle, sways once as it hangs, and is set back down.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/briefcase.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/briefcase.tsx"
        }
      ]
    },
    {
      "name": "icon-brightness",
      "type": "registry:component",
      "title": "Brightness icon",
      "description": "Dim ↔ bright. The core swells and each dot stretches out into a full ray, traveling clockwise from the top; dimming draws the rays back into dots the other way round. `active` = bright.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/brightness.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/brightness.tsx"
        }
      ]
    },
    {
      "name": "icon-brush",
      "type": "registry:component",
      "title": "Brush icon",
      "description": "A brush stroke: the brush sweeps across from its handle and back.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/brush.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/brush.tsx"
        }
      ]
    },
    {
      "name": "icon-bug",
      "type": "registry:component",
      "title": "Bug icon",
      "description": "Bug ↔ fixed. The legs curl in, the antennae droop, and a slash is struck through with a matching gap cut behind it. Reopening plays it back. `active` = fixed.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/bug.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/bug.tsx"
        }
      ]
    },
    {
      "name": "icon-building",
      "type": "registry:component",
      "title": "Building icon",
      "description": "Office. The windows switch off and flicker back on, floor by floor from the ground up.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/building.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/building.tsx"
        }
      ]
    },
    {
      "name": "icon-bus",
      "type": "registry:component",
      "title": "Bus icon",
      "description": "Pulling in: the bus bobs on its wheels and its lights flash.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/bus.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/bus.tsx"
        }
      ]
    },
    {
      "name": "icon-calculator",
      "type": "registry:component",
      "title": "Calculator icon",
      "description": "Crunching numbers. Three keys press in turn down the diagonal, then the display clears and the result runs in from the right.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/calculator.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/calculator.tsx"
        }
      ]
    },
    {
      "name": "icon-calendar-check",
      "type": "registry:component",
      "title": "Calendar Check icon",
      "description": "Open → booked. The day dots slide into line and a check is drawn through them; unbooking breaks the check back into days that return to the grid. `active` = booked.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/calendar-check.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/calendar-check.tsx"
        }
      ]
    },
    {
      "name": "icon-calendar-clock",
      "type": "registry:component",
      "title": "Calendar Clock icon",
      "description": "Scheduling: the clock's minute hand sweeps a full hour while the hour hand steps on one mark. Rest is the full turn, so the sweep always runs forwards.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/calendar-clock.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/calendar-clock.tsx"
        }
      ]
    },
    {
      "name": "icon-calendar-minus",
      "type": "registry:component",
      "title": "Calendar Minus icon",
      "description": "The bar pulls in from both ends and springs back out while the calendar tugs on its rings.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/calendar-minus.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/calendar-minus.tsx"
        }
      ]
    },
    {
      "name": "icon-calendar-plus",
      "type": "registry:component",
      "title": "Calendar Plus icon",
      "description": "Add to calendar → added. Both bars of the plus swing clockwise into a check that lands with a small settle. `active` = added.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/calendar-plus.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/calendar-plus.tsx"
        }
      ]
    },
    {
      "name": "icon-calendar-range",
      "type": "registry:component",
      "title": "Calendar Range icon",
      "description": "A date range: the span is drawn across the first week and carries on into the next.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/calendar-range.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/calendar-range.tsx"
        }
      ]
    },
    {
      "name": "icon-calendar-x",
      "type": "registry:component",
      "title": "Calendar X icon",
      "description": "Cancelled: the calendar tugs on its rings while each stroke of the × pinches in to its centre and snaps back.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/calendar-x.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/calendar-x.tsx"
        }
      ]
    },
    {
      "name": "icon-calendar",
      "type": "registry:component",
      "title": "Calendar icon",
      "description": "A day is torn off: the binding tugs and the sheet flips up over it and away, revealing the next one underneath. The flipping sheet sits exactly on the page below it, so it resets out of sight.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/calendar.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/calendar.tsx"
        }
      ]
    },
    {
      "name": "icon-camera-off",
      "type": "registry:component",
      "title": "Camera Off icon",
      "description": "Camera off: the slash is drawn through the camera again with a matching gap cut behind it.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/camera-off.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/camera-off.tsx"
        }
      ]
    },
    {
      "name": "icon-camera",
      "type": "registry:component",
      "title": "Camera icon",
      "description": "Shutter: the body dips, the aperture snaps shut and reopens, the flash blinks.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/camera.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/camera.tsx"
        }
      ]
    },
    {
      "name": "icon-caps-lock",
      "type": "registry:component",
      "title": "Caps Lock icon",
      "description": "Caps Lock off ↔ on. Switching on fills the arrow from its stem up, like the key's light coming on; switching off drains it back into the stem. `active` = on.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/caps-lock.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/caps-lock.tsx"
        }
      ]
    },
    {
      "name": "icon-captions",
      "type": "registry:component",
      "title": "Captions icon",
      "description": "Captions off ↔ on. A solid fill wipes across the frame from the left and the caption lines turn into cut-outs exactly where it passes, so the text is never drawn twice; switching off wipes it back. `active` = on.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/captions.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/captions.tsx"
        }
      ]
    },
    {
      "name": "icon-car",
      "type": "registry:component",
      "title": "Car icon",
      "description": "Pulling away: the car rocks back on its springs as it moves off, then rolls forward and settles level.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/car.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/car.tsx"
        }
      ]
    },
    {
      "name": "icon-case-sensitive",
      "type": "registry:component",
      "title": "Case Sensitive icon",
      "description": "Match case: the capital and the small letter hop in turn.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/case-sensitive.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/case-sensitive.tsx"
        }
      ]
    },
    {
      "name": "icon-cast",
      "type": "registry:component",
      "title": "Cast icon",
      "description": "Idle ↔ casting. A pulse leaves the corner, the waves light up one after another, and the picture spreads across the screen from where they land. `active` = casting.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/cast.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/cast.tsx"
        }
      ]
    },
    {
      "name": "icon-chart-area",
      "type": "registry:component",
      "title": "Chart Area icon",
      "description": "The filled series sinks toward the baseline and swells back up to its values.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/chart-area.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/chart-area.tsx"
        }
      ]
    },
    {
      "name": "icon-chart-candlestick",
      "type": "registry:component",
      "title": "Chart Candlestick icon",
      "description": "The market moves: each candle rises or falls a little, out of step with its neighbours.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/chart-candlestick.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/chart-candlestick.tsx"
        }
      ]
    },
    {
      "name": "icon-chart-donut",
      "type": "registry:component",
      "title": "Chart Donut icon",
      "description": "The ring turns a full revolution, carrying its slices round. Rest is 360° so leaving mid-turn completes forwards.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/chart-donut.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/chart-donut.tsx"
        }
      ]
    },
    {
      "name": "icon-chart-scatter",
      "type": "registry:component",
      "title": "Chart Scatter icon",
      "description": "The points are plotted one by one, each popping in where it lands.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/chart-scatter.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/chart-scatter.tsx"
        }
      ]
    },
    {
      "name": "icon-chart-spline",
      "type": "registry:component",
      "title": "Chart Spline icon",
      "description": "Smooth ↔ linear, for a chart's line style. The curve pulls taut through its data points into straight segments; smoothing lets it relax back into a spline. `active` = linear.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/chart-spline.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/chart-spline.tsx"
        }
      ]
    },
    {
      "name": "icon-check-check",
      "type": "registry:component",
      "title": "Check Check icon",
      "description": "Sent ↔ read. A second tick slides out from under the first and lands beside it with a settle, its short arm tucked behind the long one; marking as unread slides it back under. `active` = read.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/check-check.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/check-check.tsx"
        }
      ]
    },
    {
      "name": "icon-check-circle",
      "type": "registry:component",
      "title": "Check Circle icon",
      "description": "The ring is drawn from twelve o'clock, then the check is written inside it.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/check-circle.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/check-circle.tsx"
        }
      ]
    },
    {
      "name": "icon-check",
      "type": "registry:component",
      "title": "Check icon",
      "description": "Draws its stroke with a decisive ease-out, then settles with a tiny spring.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/check.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/check.tsx"
        }
      ]
    },
    {
      "name": "icon-chevron-down",
      "type": "registry:component",
      "title": "Chevron Down icon",
      "description": "Disclosure chevron. `active` = expanded: the chevron turns over to point up.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/chevron-down.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/chevron-down.tsx"
        }
      ]
    },
    {
      "name": "icon-chevron-left",
      "type": "registry:component",
      "title": "Chevron Left icon",
      "description": "The mirror of chevron-right, for trees read right to left and back panels. `active` = expanded: the chevron turns a quarter counter-clockwise to point down into the opened branch.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/chevron-left.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/chevron-left.tsx"
        }
      ]
    },
    {
      "name": "icon-chevron-right",
      "type": "registry:component",
      "title": "Chevron Right icon",
      "description": "Tree disclosure. `active` = expanded: the chevron turns a quarter clockwise to point down into the opened branch.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/chevron-right.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/chevron-right.tsx"
        }
      ]
    },
    {
      "name": "icon-chevron-up",
      "type": "registry:component",
      "title": "Chevron Up icon",
      "description": "Upward disclosure, the mirror of chevron-down. `active` = expanded: the chevron turns over to point down, for menus that open upward (a user menu at the foot of a sidebar) and show-less toggles.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/chevron-up.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/chevron-up.tsx"
        }
      ]
    },
    {
      "name": "icon-chevrons-down",
      "type": "registry:component",
      "title": "Chevrons Down icon",
      "description": "Both chevrons push down: the rear one catches up with the lead, the pair holds a beat, then they part again.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/chevrons-down.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/chevrons-down.tsx"
        }
      ]
    },
    {
      "name": "icon-chevrons-left-right",
      "type": "registry:component",
      "title": "Chevrons Left Right icon",
      "description": "Widen ↔ narrow, for resizable columns and panels that expand sideways. Both chevrons fold flat and turn inside out, so outward becomes inward; toggling mid-fold unfolds them again. `active` = expanded.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/chevrons-left-right.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/chevrons-left-right.tsx"
        }
      ]
    },
    {
      "name": "icon-chevrons-left",
      "type": "registry:component",
      "title": "Chevrons Left icon",
      "description": "First page, back to the start. The mirror of chevrons-right: the lead chevron runs out to the edge and the rear one winds up and catches it, closing the gap, before both glide home together.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/chevrons-left.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/chevrons-left.tsx"
        }
      ]
    },
    {
      "name": "icon-chevrons-right",
      "type": "registry:component",
      "title": "Chevrons Right icon",
      "description": "Last page, skip to the end. The lead chevron runs out to the edge and the rear one winds up and catches it, closing the gap, before both glide home together.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/chevrons-right.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/chevrons-right.tsx"
        }
      ]
    },
    {
      "name": "icon-chevrons-up-down",
      "type": "registry:component",
      "title": "Chevrons Up Down icon",
      "description": "Expand ↔ collapse, for selects and expand-all toggles. Both chevrons fold flat and turn inside out, so up-down becomes down-up; toggling mid-fold unfolds them again. `active` = expanded.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/chevrons-up-down.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/chevrons-up-down.tsx"
        }
      ]
    },
    {
      "name": "icon-chevrons-up",
      "type": "registry:component",
      "title": "Chevrons Up icon",
      "description": "Both chevrons push up: the rear one catches up with the lead, the pair holds a beat, then they part again.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/chevrons-up.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/chevrons-up.tsx"
        }
      ]
    },
    {
      "name": "icon-circle-alert",
      "type": "registry:component",
      "title": "Circle Alert icon",
      "description": "Alert ↔ resolved. The ring braces, the exclamation bar tips over into the long arm of a check and its dot stretches into the short one; reopening stands the bar back up. `active` = resolved.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/circle-alert.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/circle-alert.tsx"
        }
      ]
    },
    {
      "name": "icon-circle-arrow-down",
      "type": "registry:component",
      "title": "Circle Arrow Down icon",
      "description": "The arrow drops out through the bottom of the ring and comes round again from the top.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/circle-arrow-down.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/circle-arrow-down.tsx"
        }
      ]
    },
    {
      "name": "icon-circle-arrow-left",
      "type": "registry:component",
      "title": "Circle Arrow Left icon",
      "description": "The arrow slips out through the left of the ring and comes round again from the right.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/circle-arrow-left.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/circle-arrow-left.tsx"
        }
      ]
    },
    {
      "name": "icon-circle-arrow-right",
      "type": "registry:component",
      "title": "Circle Arrow Right icon",
      "description": "The arrow slips out through the right of the ring and comes round again from the left.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/circle-arrow-right.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/circle-arrow-right.tsx"
        }
      ]
    },
    {
      "name": "icon-circle-arrow-up",
      "type": "registry:component",
      "title": "Circle Arrow Up icon",
      "description": "Send ↔ stop, for a prompt box while a reply streams in. The arrow opens its head and swings its shaft out into a square that fills solid; when generation ends the square folds back into the arrow. `active` = stop.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/circle-arrow-up.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/circle-arrow-up.tsx"
        }
      ]
    },
    {
      "name": "icon-circle-dashed",
      "type": "registry:component",
      "title": "Circle Dashed icon",
      "description": "Pending ↔ done. The dashes chase round the ring like a loader and close their gaps one after another, then a check is written inside and lands with a settle. Undoing erases the check and breaks the ring back into dashes. `active` = done.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/circle-dashed.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/circle-dashed.tsx"
        }
      ]
    },
    {
      "name": "icon-circle-dollar",
      "type": "registry:component",
      "title": "Circle Dollar icon",
      "description": "A coin flips over and lands face up again.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/circle-dollar.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/circle-dollar.tsx"
        }
      ]
    },
    {
      "name": "icon-circle-dot",
      "type": "registry:component",
      "title": "Circle Dot icon",
      "description": "Selected. The center dot presses in and swells back to full, like a radio being chosen; the ring holds still.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/circle-dot.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/circle-dot.tsx"
        }
      ]
    },
    {
      "name": "icon-circle-help",
      "type": "registry:component",
      "title": "Circle Help icon",
      "description": "A curious tilt: the question mark cocks its head on its base, and the dot hops a beat later.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/circle-help.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/circle-help.tsx"
        }
      ]
    },
    {
      "name": "icon-circle-minus",
      "type": "registry:component",
      "title": "Circle Minus icon",
      "description": "Remove. The bar draws in to its center and springs back out to full width; the ring holds still.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/circle-minus.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/circle-minus.tsx"
        }
      ]
    },
    {
      "name": "icon-circle-pause",
      "type": "registry:component",
      "title": "Circle Pause icon",
      "description": "The two bars dip in turn, like a held breath, and the button gives slightly under the press.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/circle-pause.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/circle-pause.tsx"
        }
      ]
    },
    {
      "name": "icon-circle-play",
      "type": "registry:component",
      "title": "Circle Play icon",
      "description": "Play ↔ pause in a round button. The triangle folds flat into the left bar and the right bar slides in beside it. `active` = playing.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/circle-play.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/circle-play.tsx"
        }
      ]
    },
    {
      "name": "icon-circle-plus",
      "type": "registry:component",
      "title": "Circle Plus icon",
      "description": "Add. The plus turns a quarter inside the ring, tucking in as it goes, and lands on its own silhouette; the ring holds still.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/circle-plus.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/circle-plus.tsx"
        }
      ]
    },
    {
      "name": "icon-circle-user",
      "type": "registry:component",
      "title": "Circle User icon",
      "description": "An avatar that nods: the head dips and comes back up inside the ring, and the shoulders follow through a beat later.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/circle-user.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/circle-user.tsx"
        }
      ]
    },
    {
      "name": "icon-circle-x",
      "type": "registry:component",
      "title": "Circle X icon",
      "description": "Error. The badge shakes its head while each stroke of the × pinches in to its center and snaps back, one after the other.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/circle-x.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/circle-x.tsx"
        }
      ]
    },
    {
      "name": "icon-circle",
      "type": "registry:component",
      "title": "Circle icon",
      "description": "The ring opens a small gap at twelve o'clock, the gap runs once round the circle, and it closes where it started. Rest is a full turn, so leaving mid-lap finishes the lap forwards.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/circle.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/circle.tsx"
        }
      ]
    },
    {
      "name": "icon-clapperboard",
      "type": "registry:component",
      "title": "Clapperboard icon",
      "description": "Action: the clapstick snaps shut on the board with a sharp close and swings back open on its hinge. Drawn shut; it rests open at −12°.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/clapperboard.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/clapperboard.tsx"
        }
      ]
    },
    {
      "name": "icon-clipboard-list",
      "type": "registry:component",
      "title": "Clipboard List icon",
      "description": "Ticking through the list: each bullet pops in turn, top to bottom, and the clip snaps down.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/clipboard-list.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/clipboard-list.tsx"
        }
      ]
    },
    {
      "name": "icon-clipboard",
      "type": "registry:component",
      "title": "Clipboard icon",
      "description": "Copy → copied. The two lines of text fold into a check and the clip snaps down on it. `active` = copied.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/clipboard.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/clipboard.tsx"
        }
      ]
    },
    {
      "name": "icon-clock",
      "type": "registry:component",
      "title": "Clock icon",
      "description": "An hour passes: the minute hand sweeps once around while the hour hand steps forward one hour. The minute hand rests at a full turn, so leaving mid-sweep finishes the lap forwards.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/clock.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/clock.tsx"
        }
      ]
    },
    {
      "name": "icon-cloud-download",
      "type": "registry:component",
      "title": "Cloud Download icon",
      "description": "Download → downloaded. The arrow drops out through the base, the cloud seals behind it, and a check is written inside. `active` = downloaded.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/cloud-download.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/cloud-download.tsx"
        }
      ]
    },
    {
      "name": "icon-cloud-fog",
      "type": "registry:component",
      "title": "Cloud Fog icon",
      "description": "Fog rolls through: the banks of mist drift one way and the other under the cloud.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/cloud-fog.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/cloud-fog.tsx"
        }
      ]
    },
    {
      "name": "icon-cloud-lightning",
      "type": "registry:component",
      "title": "Cloud Lightning icon",
      "description": "A strike: the cloud rumbles, the bolt is thrown down in an instant and flickers twice before it holds.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/cloud-lightning.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/cloud-lightning.tsx"
        }
      ]
    },
    {
      "name": "icon-cloud-moon",
      "type": "registry:component",
      "title": "Cloud Moon icon",
      "description": "A cloudy night: the cloud drifts across and the moon behind it rocks gently.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/cloud-moon.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/cloud-moon.tsx"
        }
      ]
    },
    {
      "name": "icon-cloud-off",
      "type": "registry:component",
      "title": "Cloud Off icon",
      "description": "Offline ↔ online. The slash is pulled out and the gap behind it closes, then the cloud takes a breath and lifts back into place; losing the connection draws the slash back through a still cloud. `active` = online.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/cloud-off.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/cloud-off.tsx"
        }
      ]
    },
    {
      "name": "icon-cloud-rain",
      "type": "registry:component",
      "title": "Cloud Rain icon",
      "description": "Rain: each drop falls out of view and the next one slides down out of the cloud, in a loose, uneven cadence.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/cloud-rain.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/cloud-rain.tsx"
        }
      ]
    },
    {
      "name": "icon-cloud-snow",
      "type": "registry:component",
      "title": "Cloud Snow icon",
      "description": "Snowing: the flakes drift down out of the cloud, swaying as they fall, and new ones form beneath it.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/cloud-snow.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/cloud-snow.tsx"
        }
      ]
    },
    {
      "name": "icon-cloud-sun",
      "type": "registry:component",
      "title": "Cloud Sun icon",
      "description": "Sun ↔ rain. The rays pull in, the cloud swells and drifts over the sun until it's gone, then rain starts to fall from it; clearing up plays it back, drops first. `active` = rain.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/cloud-sun.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/cloud-sun.tsx"
        }
      ]
    },
    {
      "name": "icon-cloud-upload",
      "type": "registry:component",
      "title": "Cloud Upload icon",
      "description": "Upload → uploaded. The arrow launches up through the cloud, the gap in its base seals, and a check is written inside. `active` = uploaded.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/cloud-upload.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/cloud-upload.tsx"
        }
      ]
    },
    {
      "name": "icon-cloud",
      "type": "registry:component",
      "title": "Cloud icon",
      "description": "Cloud ↔ synced. An upload chevron rises into the cloud and folds over into a check; unsyncing unfolds it and lets it sink away. `active` = synced.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/cloud.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/cloud.tsx"
        }
      ]
    },
    {
      "name": "icon-code-xml",
      "type": "registry:component",
      "title": "Code Xml icon",
      "description": "The brackets part and a slash is written between them, so < > becomes </> while hovered.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/code-xml.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/code-xml.tsx"
        }
      ]
    },
    {
      "name": "icon-code",
      "type": "registry:component",
      "title": "Code icon",
      "description": "Code ↔ JSON. The angle brackets draw inward and soften into curly braces, the right one a beat behind the left; reverting straightens them out again. `active` = braces.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/code.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/code.tsx"
        }
      ]
    },
    {
      "name": "icon-coffee",
      "type": "registry:component",
      "title": "Coffee icon",
      "description": "A break: steam curls up off the cup and fades, one wisp after another, and fresh wisps form again above it.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/coffee.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/coffee.tsx"
        }
      ]
    },
    {
      "name": "icon-coins",
      "type": "registry:component",
      "title": "Coins icon",
      "description": "A coin toss: the front coin spins a full turn on its axis, uncovering the coin behind it each time it turns edge-on.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/coins.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/coins.tsx"
        }
      ]
    },
    {
      "name": "icon-columns",
      "type": "registry:component",
      "title": "Columns icon",
      "description": "Two ↔ three columns. The center divider splits in two and the halves slide out to the thirds; merging draws them back into one. `active` = three columns.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/columns.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/columns.tsx"
        }
      ]
    },
    {
      "name": "icon-command",
      "type": "registry:component",
      "title": "Command icon",
      "description": "A keypress: the key dips under the finger and the ⌘ is retraced in one continuous stroke through all four loops.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/command.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/command.tsx"
        }
      ]
    },
    {
      "name": "icon-compass",
      "type": "registry:component",
      "title": "Compass icon",
      "description": "The needle swings, overshoots north and finds it again, like a real compass damping out.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/compass.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/compass.tsx"
        }
      ]
    },
    {
      "name": "icon-contact",
      "type": "registry:component",
      "title": "Contact icon",
      "description": "Looking someone up: the person in the address book nods and the tabs give a little.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/contact.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/contact.tsx"
        }
      ]
    },
    {
      "name": "icon-container",
      "type": "registry:component",
      "title": "Container icon",
      "description": "Shipped: the container is lifted a touch and its ribs ripple from one end to the other.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/container.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/container.tsx"
        }
      ]
    },
    {
      "name": "icon-contrast",
      "type": "registry:component",
      "title": "Contrast icon",
      "description": "The dark half turns all the way over to the other side and back round. Rest is 360° so leaving mid-turn completes forwards.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/contrast.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/contrast.tsx"
        }
      ]
    },
    {
      "name": "icon-cookie",
      "type": "registry:component",
      "title": "Cookie icon",
      "description": "Cookie consent: the cookie wobbles on the spot and its chips pop in turn, as if asking to be taken.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/cookie.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/cookie.tsx"
        }
      ]
    },
    {
      "name": "icon-copy-plus",
      "type": "registry:component",
      "title": "Copy Plus icon",
      "description": "Duplicate. The two sheets slide apart and hold there, and the plus on the new one pops in; letting go stacks them again.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/copy-plus.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/copy-plus.tsx"
        }
      ]
    },
    {
      "name": "icon-copy",
      "type": "registry:component",
      "title": "Copy icon",
      "description": "Copy → copied. The back sheet tucks in behind the front one, then a check is written on the page. Reverting erases the check first.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/copy.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/copy.tsx"
        }
      ]
    },
    {
      "name": "icon-corner-down-left",
      "type": "registry:component",
      "title": "Corner Down Left icon",
      "description": "Enter. A carriage return: the stroke runs down and sweeps back to the start of the line, and the head is pushed out at its end.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/corner-down-left.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/corner-down-left.tsx"
        }
      ]
    },
    {
      "name": "icon-corner-down-right",
      "type": "registry:component",
      "title": "Corner Down Right icon",
      "description": "The path is drawn down and round the corner, and the head arrives at its end as the line does.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/corner-down-right.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/corner-down-right.tsx"
        }
      ]
    },
    {
      "name": "icon-corner-up-left",
      "type": "registry:component",
      "title": "Corner Up Left icon",
      "description": "The path is drawn up and round to the left, and the head arrives at its end as the line does.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/corner-up-left.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/corner-up-left.tsx"
        }
      ]
    },
    {
      "name": "icon-corner-up-right",
      "type": "registry:component",
      "title": "Corner Up Right icon",
      "description": "The path is drawn up and round to the right, and the head arrives at its end as the line does.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/corner-up-right.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/corner-up-right.tsx"
        }
      ]
    },
    {
      "name": "icon-cpu",
      "type": "registry:component",
      "title": "CPU icon",
      "description": "A clock cycle: a current runs round the pins clockwise and the core ticks over a quarter turn. Rest is 90° so leaving mid-tick finishes forwards.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/cpu.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/cpu.tsx"
        }
      ]
    },
    {
      "name": "icon-credit-card",
      "type": "registry:component",
      "title": "Credit Card icon",
      "description": "Card ↔ paid. The card taps like a contactless payment, the number is wiped, and the magnetic stripe folds down into a check. Reverting unfolds it. `active` = paid.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/credit-card.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/credit-card.tsx"
        }
      ]
    },
    {
      "name": "icon-crop",
      "type": "registry:component",
      "title": "Crop icon",
      "description": "Tightening the crop: both corner brackets slide in along the diagonal together, then ease back out to the frame.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/crop.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/crop.tsx"
        }
      ]
    },
    {
      "name": "icon-crosshair",
      "type": "registry:component",
      "title": "Crosshair icon",
      "description": "Locate ↔ locked. The ticks close in and the ring tightens as it acquires, then everything springs back open as the center locks on with a settle. `active` = locked.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/crosshair.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/crosshair.tsx"
        }
      ]
    },
    {
      "name": "icon-crown",
      "type": "registry:component",
      "title": "Crown icon",
      "description": "Crowned: the crown is lifted, tips jauntily to one side and is set back down level on its band.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/crown.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/crown.tsx"
        }
      ]
    },
    {
      "name": "icon-database",
      "type": "registry:component",
      "title": "Database icon",
      "description": "Records sync: each ring of the cylinder lifts in turn, bottom to top.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/database.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/database.tsx"
        }
      ]
    },
    {
      "name": "icon-disc",
      "type": "registry:component",
      "title": "Disc icon",
      "description": "Spinning up: the disc turns half a revolution under its glints, fast off the mark and coasting to a stop.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/disc.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/disc.tsx"
        }
      ]
    },
    {
      "name": "icon-divide",
      "type": "registry:component",
      "title": "Divide icon",
      "description": "Divided: the dots are pushed away from the bar and spring back.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/divide.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/divide.tsx"
        }
      ]
    },
    {
      "name": "icon-dollar-sign",
      "type": "registry:component",
      "title": "Dollar Sign icon",
      "description": "Money. The S rewinds into its top terminal and is written again while the bar holds.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/dollar-sign.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/dollar-sign.tsx"
        }
      ]
    },
    {
      "name": "icon-door",
      "type": "registry:component",
      "title": "Door icon",
      "description": "Closed ↔ open, for rooms, exits and access. The door swings in on its hinge and its handle travels with the free edge, leaving the doorway open; closing swings it back flush with the frame. `active` = open.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/door.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/door.tsx"
        }
      ]
    },
    {
      "name": "icon-dot",
      "type": "registry:component",
      "title": "Dot icon",
      "description": "A blip: a ring ripples out from the dot to the edge of the keyline circle and fades as it goes, while the dot swells once and settles. With `trigger=\"loop\"` it's a live indicator.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/dot.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/dot.tsx"
        }
      ]
    },
    {
      "name": "icon-download",
      "type": "registry:component",
      "title": "Download icon",
      "description": "The arrow drops into the tray, the tray takes the weight, a fresh arrow slides in from above.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/download.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/download.tsx"
        }
      ]
    },
    {
      "name": "icon-droplet",
      "type": "registry:component",
      "title": "Droplet icon",
      "description": "Wobbling like water: the drop stretches up, squashes down on its base and settles, with a glint inside that rides along.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/droplet.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/droplet.tsx"
        }
      ]
    },
    {
      "name": "icon-droplets",
      "type": "registry:component",
      "title": "Droplets icon",
      "description": "Humid: the two drops fall in turn, a short way each, and settle back.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/droplets.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/droplets.tsx"
        }
      ]
    },
    {
      "name": "icon-eject",
      "type": "registry:component",
      "title": "Eject icon",
      "description": "Ejected: the triangle pops up off the bar and drops back.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/eject.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/eject.tsx"
        }
      ]
    },
    {
      "name": "icon-ellipsis-vertical",
      "type": "registry:component",
      "title": "Ellipsis Vertical icon",
      "description": "More, stood upright, for row and card menus. A single wave runs down the column: each dot steps out and back in turn, top to bottom. Unlike more-vertical it keeps its shape.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/ellipsis-vertical.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/ellipsis-vertical.tsx"
        }
      ]
    },
    {
      "name": "icon-ellipsis",
      "type": "registry:component",
      "title": "Ellipsis icon",
      "description": "More, overflow, truncated. A single wave runs along the row: each dot lifts and lands in turn, left to right. Unlike more-horizontal it keeps its shape: use it where nothing opens, such as a gap in pagination.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/ellipsis.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/ellipsis.tsx"
        }
      ]
    },
    {
      "name": "icon-equal",
      "type": "registry:component",
      "title": "Equal icon",
      "description": "The two bars part a little and close back to equal.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/equal.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/equal.tsx"
        }
      ]
    },
    {
      "name": "icon-eraser",
      "type": "registry:component",
      "title": "Eraser icon",
      "description": "Rubbing out: the eraser works back and forth along the line on its tip, each stroke a little shorter.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/eraser.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/eraser.tsx"
        }
      ]
    },
    {
      "name": "icon-euro",
      "type": "registry:component",
      "title": "Euro icon",
      "description": "Money in euros: the curve is written again round the bars.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/euro.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/euro.tsx"
        }
      ]
    },
    {
      "name": "icon-external-link",
      "type": "registry:component",
      "title": "External Link icon",
      "description": "Open in a new tab. The arrow leaves through the box's open corner and a fresh one slides out of the box after it.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/external-link.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/external-link.tsx"
        }
      ]
    },
    {
      "name": "icon-eye-closed",
      "type": "registry:component",
      "title": "Eye Closed icon",
      "description": "Open ↔ closed, for password fields and hide-content toggles. The upper lid sweeps down in a blink and meets the lower one as the pupil shrinks away, then the lashes grow out of the closed lid; opening folds the lashes in first. `active` = closed.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/eye-closed.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/eye-closed.tsx"
        }
      ]
    },
    {
      "name": "icon-eye-off",
      "type": "registry:component",
      "title": "Eye Off icon",
      "description": "Hidden. The eye blinks behind the slash, which holds.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/eye-off.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/eye-off.tsx"
        }
      ]
    },
    {
      "name": "icon-eye",
      "type": "registry:component",
      "title": "Eye icon",
      "description": "Eye ↔ eye-off. The eye blinks shut, and as it reopens a slash is drawn through it with a matching gap cut behind. `active` = hidden.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/eye.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/eye.tsx"
        }
      ]
    },
    {
      "name": "icon-factory",
      "type": "registry:component",
      "title": "Factory icon",
      "description": "At work: the windows along the floor light up in turn.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/factory.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/factory.tsx"
        }
      ]
    },
    {
      "name": "icon-fast-forward",
      "type": "registry:component",
      "title": "Fast Forward icon",
      "description": "Seeking ahead: both triangles surge forward twice, the rear one chasing the front a beat behind.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/fast-forward.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/fast-forward.tsx"
        }
      ]
    },
    {
      "name": "icon-file-archive",
      "type": "registry:component",
      "title": "File Archive icon",
      "description": "The zip pull slides down the teeth and back up, closing the archive again.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/file-archive.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/file-archive.tsx"
        }
      ]
    },
    {
      "name": "icon-file-audio",
      "type": "registry:component",
      "title": "File Audio icon",
      "description": "The note on the page bobs to a beat, tipping on its head and back.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/file-audio.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/file-audio.tsx"
        }
      ]
    },
    {
      "name": "icon-file-check",
      "type": "registry:component",
      "title": "File Check icon",
      "description": "The check is drawn onto the page again, stroke by stroke, like signing it off.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/file-check.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/file-check.tsx"
        }
      ]
    },
    {
      "name": "icon-file-code",
      "type": "registry:component",
      "title": "File Code icon",
      "description": "A source file. The angle brackets spread apart and snap back, the right one a beat behind.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/file-code.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/file-code.tsx"
        }
      ]
    },
    {
      "name": "icon-file-diff",
      "type": "registry:component",
      "title": "File Diff icon",
      "description": "Comparing changes: the plus turns a quarter and the minus pulses under it, one after the other.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/file-diff.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/file-diff.tsx"
        }
      ]
    },
    {
      "name": "icon-file-image",
      "type": "registry:component",
      "title": "File Image icon",
      "description": "An image file. The sun sinks behind the ridge and rises again.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/file-image.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/file-image.tsx"
        }
      ]
    },
    {
      "name": "icon-file-json",
      "type": "registry:component",
      "title": "File JSON icon",
      "description": "A JSON file. The braces part, a value blinks in between them, and they close over it.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/file-json.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/file-json.tsx"
        }
      ]
    },
    {
      "name": "icon-file-lock",
      "type": "registry:component",
      "title": "File Lock icon",
      "description": "The shackle on the page lifts to check the lock and drops back shut.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/file-lock.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/file-lock.tsx"
        }
      ]
    },
    {
      "name": "icon-file-minus",
      "type": "registry:component",
      "title": "File Minus icon",
      "description": "The bar pulls in from both ends and springs back out while the page settles under it.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/file-minus.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/file-minus.tsx"
        }
      ]
    },
    {
      "name": "icon-file-pen",
      "type": "registry:component",
      "title": "File Pen icon",
      "description": "Editing a document: the pen scribbles and the line it writes is drawn again.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/file-pen.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/file-pen.tsx"
        }
      ]
    },
    {
      "name": "icon-file-plus",
      "type": "registry:component",
      "title": "File Plus icon",
      "description": "Add → added. Both bars of the plus swing clockwise into a check that lands with a small settle. `active` = added.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/file-plus.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/file-plus.tsx"
        }
      ]
    },
    {
      "name": "icon-file-search",
      "type": "registry:component",
      "title": "File Search icon",
      "description": "The lens looks over the page, down one side and back, and returns to the middle.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/file-search.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/file-search.tsx"
        }
      ]
    },
    {
      "name": "icon-file-spreadsheet",
      "type": "registry:component",
      "title": "File Spreadsheet icon",
      "description": "The grid on the page is ruled again, the row line first and then the column.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/file-spreadsheet.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/file-spreadsheet.tsx"
        }
      ]
    },
    {
      "name": "icon-file-terminal",
      "type": "registry:component",
      "title": "File Terminal icon",
      "description": "A shell script. The prompt steps forward and the cursor blinks twice, waiting for input.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/file-terminal.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/file-terminal.tsx"
        }
      ]
    },
    {
      "name": "icon-file-text",
      "type": "registry:component",
      "title": "File Text icon",
      "description": "The text is cleared and retyped line by line, heading first.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/file-text.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/file-text.tsx"
        }
      ]
    },
    {
      "name": "icon-file-video",
      "type": "registry:component",
      "title": "File Video icon",
      "description": "The play mark on the page presses in and springs forward, like starting the clip.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/file-video.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/file-video.tsx"
        }
      ]
    },
    {
      "name": "icon-file-x",
      "type": "registry:component",
      "title": "File X icon",
      "description": "Rejected: the page shakes its head while each stroke of the × pinches in to its centre and snaps back.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/file-x.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/file-x.tsx"
        }
      ]
    },
    {
      "name": "icon-file",
      "type": "registry:component",
      "title": "File icon",
      "description": "The dog-ear flicks up flat and falls back into its fold.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/file.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/file.tsx"
        }
      ]
    },
    {
      "name": "icon-files",
      "type": "registry:component",
      "title": "Files icon",
      "description": "The top page slides aside a little, showing the one behind, and settles back on the stack.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/files.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/files.tsx"
        }
      ]
    },
    {
      "name": "icon-film",
      "type": "registry:component",
      "title": "Film icon",
      "description": "The strip advances one frame through the gate: sprocket holes and frame line pull down together in a single claw stroke. Rest is the end of the advance, so leaving mid-pull finishes it.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/film.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/film.tsx"
        }
      ]
    },
    {
      "name": "icon-filter",
      "type": "registry:component",
      "title": "Filter icon",
      "description": "Each bar narrows in turn, top to bottom, like results being sifted.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/filter.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/filter.tsx"
        }
      ]
    },
    {
      "name": "icon-fingerprint",
      "type": "registry:component",
      "title": "Fingerprint icon",
      "description": "A scan line sweeps down the pad and each ridge is re-traced as it passes.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/fingerprint.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/fingerprint.tsx"
        }
      ]
    },
    {
      "name": "icon-flag",
      "type": "registry:component",
      "title": "Flag icon",
      "description": "Unflagged ↔ flagged. A ripple runs through the cloth from the pole to the tip while it fills from the pole outward; unflagging runs the ripple again as the fill drains back to the pole. `active` = flagged.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/flag.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/flag.tsx"
        }
      ]
    },
    {
      "name": "icon-flame",
      "type": "registry:component",
      "title": "Flame icon",
      "description": "Burning bright: the flame licks left and right on its wick, its core flaring as it goes, and steadies.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/flame.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/flame.tsx"
        }
      ]
    },
    {
      "name": "icon-flask",
      "type": "registry:component",
      "title": "Flask icon",
      "description": "An experiment: the liquid sloshes and two bubbles rise through it and pop at the surface, then form again at the bottom out of sight.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/flask.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/flask.tsx"
        }
      ]
    },
    {
      "name": "icon-flip-horizontal",
      "type": "registry:component",
      "title": "Flip Horizontal icon",
      "description": "Original ↔ flipped. The solid shape folds edge-on into the mirror axis and opens out on the other side, while its outline ghost flips the other way to take its old place. `active` = flipped.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/flip-horizontal.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/flip-horizontal.tsx"
        }
      ]
    },
    {
      "name": "icon-flip-vertical",
      "type": "registry:component",
      "title": "Flip Vertical icon",
      "description": "Original ↔ flipped. The solid shape folds edge-on into the mirror axis and opens out on the other side, while its outline ghost flips the other way to take its old place. `active` = flipped.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/flip-vertical.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/flip-vertical.tsx"
        }
      ]
    },
    {
      "name": "icon-folder-check",
      "type": "registry:component",
      "title": "Folder Check icon",
      "description": "The check is drawn onto the folder again, stroke by stroke, like marking it done.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/folder-check.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/folder-check.tsx"
        }
      ]
    },
    {
      "name": "icon-folder-input",
      "type": "registry:component",
      "title": "Folder Input icon",
      "description": "Move to folder. The arrow slides on into the folder and fades, and a fresh one comes in through the opening.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/folder-input.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/folder-input.tsx"
        }
      ]
    },
    {
      "name": "icon-folder-lock",
      "type": "registry:component",
      "title": "Folder Lock icon",
      "description": "The shackle on the folder lifts to check the lock and drops back shut.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/folder-lock.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/folder-lock.tsx"
        }
      ]
    },
    {
      "name": "icon-folder-minus",
      "type": "registry:component",
      "title": "Folder Minus icon",
      "description": "The bar pulls in from both ends and springs back out while the folder settles under it.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/folder-minus.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/folder-minus.tsx"
        }
      ]
    },
    {
      "name": "icon-folder-open",
      "type": "registry:component",
      "title": "Folder Open icon",
      "description": "Open. The front panel tips a little further on its hinge, as if leafing through, and settles back.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/folder-open.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/folder-open.tsx"
        }
      ]
    },
    {
      "name": "icon-folder-plus",
      "type": "registry:component",
      "title": "Folder Plus icon",
      "description": "New folder → created. The folder takes the new item with a small dip as its plus swings into a check. `active` = added.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/folder-plus.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/folder-plus.tsx"
        }
      ]
    },
    {
      "name": "icon-folder-search",
      "type": "registry:component",
      "title": "Folder Search icon",
      "description": "The lens looks through the folder, to one side and the other, and returns to the middle.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/folder-search.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/folder-search.tsx"
        }
      ]
    },
    {
      "name": "icon-folder-tree",
      "type": "registry:component",
      "title": "Folder Tree icon",
      "description": "The branches are drawn out from the root and each child folder pops in at the end of its branch.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/folder-tree.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/folder-tree.tsx"
        }
      ]
    },
    {
      "name": "icon-folder",
      "type": "registry:component",
      "title": "Folder icon",
      "description": "Closed ↔ open. The front panel tips forward on its hinge and the back of the folder shows above it. `active` = open.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/folder.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/folder.tsx"
        }
      ]
    },
    {
      "name": "icon-folders",
      "type": "registry:component",
      "title": "Folders icon",
      "description": "The front folder lifts off the one behind it and settles back down.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/folders.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/folders.tsx"
        }
      ]
    },
    {
      "name": "icon-forward",
      "type": "registry:component",
      "title": "Forward icon",
      "description": "Passed on: the arrow draws back, throws itself forward along its curve and lands in shape.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/forward.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/forward.tsx"
        }
      ]
    },
    {
      "name": "icon-frame",
      "type": "registry:component",
      "title": "Frame icon",
      "description": "Resizing: the right and bottom edges are dragged out from the corner, then let go back to size.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/frame.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/frame.tsx"
        }
      ]
    },
    {
      "name": "icon-frown",
      "type": "registry:component",
      "title": "Frown icon",
      "description": "Disappointed: the face shakes its head slowly and the frown deepens, then it all relaxes.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/frown.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/frown.tsx"
        }
      ]
    },
    {
      "name": "icon-fuel",
      "type": "registry:component",
      "title": "Fuel icon",
      "description": "Filling up: the nozzle lifts off its hook and the display flickers as the litres count.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/fuel.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/fuel.tsx"
        }
      ]
    },
    {
      "name": "icon-function",
      "type": "registry:component",
      "title": "Function icon",
      "description": "The ƒ is written out again, the stem first and then the crossbar.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/function.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/function.tsx"
        }
      ]
    },
    {
      "name": "icon-funnel",
      "type": "registry:component",
      "title": "Funnel icon",
      "description": "All ↔ filtered. The funnel dips as it catches the pour and fills from the rim down into the stem; clearing the filter drains it back up and out. `active` = filtered.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/funnel.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/funnel.tsx"
        }
      ]
    },
    {
      "name": "icon-gamepad",
      "type": "registry:component",
      "title": "Gamepad icon",
      "description": "In play: the pad tilts as the buttons are pressed, one after the other.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/gamepad.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/gamepad.tsx"
        }
      ]
    },
    {
      "name": "icon-gauge",
      "type": "registry:component",
      "title": "Gauge icon",
      "description": "Low ↔ high. The needle sweeps a quarter turn across the dial on its pivot and lands on its mark without overshoot. `active` = high.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/gauge.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/gauge.tsx"
        }
      ]
    },
    {
      "name": "icon-gem",
      "type": "registry:component",
      "title": "Gem icon",
      "description": "Premium: the stone turns in the light, its facets sliding across the table and girdle and back.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/gem.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/gem.tsx"
        }
      ]
    },
    {
      "name": "icon-gift",
      "type": "registry:component",
      "title": "Gift icon",
      "description": "Closed ↔ open. The lid pops off with its bow and tips back, and the pop is allowed its one bounce. Closing sets the lid straight back down. `active` = open.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/gift.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/gift.tsx"
        }
      ]
    },
    {
      "name": "icon-git-branch",
      "type": "registry:component",
      "title": "Git Branch icon",
      "description": "History is replayed: the trunk grows, the branch forks off it, and the new commit lands.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/git-branch.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/git-branch.tsx"
        }
      ]
    },
    {
      "name": "icon-git-commit",
      "type": "registry:component",
      "title": "Git Commit icon",
      "description": "History advances: the line scrolls one commit to the left, the current node sliding off and fading as the next arrives from the right and lands in its place.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/git-commit.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/git-commit.tsx"
        }
      ]
    },
    {
      "name": "icon-git-compare",
      "type": "registry:component",
      "title": "Git Compare icon",
      "description": "Comparing: each arrow pushes toward the other branch and draws back, crossing the same beat, while both heads nod in.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/git-compare.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/git-compare.tsx"
        }
      ]
    },
    {
      "name": "icon-git-fork",
      "type": "registry:component",
      "title": "Git Fork icon",
      "description": "Forking: the trunk grows up from the source, splits both ways at the junction, and each copy pops as its branch arrives.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/git-fork.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/git-fork.tsx"
        }
      ]
    },
    {
      "name": "icon-git-merge",
      "type": "registry:component",
      "title": "Git Merge icon",
      "description": "The feature branch is traced back into main, and main's head gives a small pop as the merge commit lands.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/git-merge.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/git-merge.tsx"
        }
      ]
    },
    {
      "name": "icon-git-pull-request-closed",
      "type": "registry:component",
      "title": "Git Pull Request Closed icon",
      "description": "Closed without merging: each stroke of the × over the branch pinches in and snaps back.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/git-pull-request-closed.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/git-pull-request-closed.tsx"
        }
      ]
    },
    {
      "name": "icon-git-pull-request-draft",
      "type": "registry:component",
      "title": "Git Pull Request Draft icon",
      "description": "Still a draft: the dotted lane fills in dot by dot, as if the branch were being written.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/git-pull-request-draft.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/git-pull-request-draft.tsx"
        }
      ]
    },
    {
      "name": "icon-git-pull-request",
      "type": "registry:component",
      "title": "Git Pull Request icon",
      "description": "Open ↔ merged. The arrowhead folds away, the head branch swings over and joins the base lane, and the base lane runs on through the commit it absorbs. `active` = merged.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/git-pull-request.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/git-pull-request.tsx"
        }
      ]
    },
    {
      "name": "icon-globe",
      "type": "registry:component",
      "title": "Globe icon",
      "description": "The globe turns on its axis: the meridians roll one step east and fade as they reach the rim. Rest is the end of the turn, so leaving mid-turn finishes it forwards.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/globe.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/globe.tsx"
        }
      ]
    },
    {
      "name": "icon-grid",
      "type": "registry:component",
      "title": "Grid icon",
      "description": "Grid hidden ↔ shown, for canvases and layout guides. Each crossing dot stretches out both ways to the frame, one after another round the grid; hiding draws the lines back into their dots. `active` = shown.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/grid.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/grid.tsx"
        }
      ]
    },
    {
      "name": "icon-grip-horizontal",
      "type": "registry:component",
      "title": "Grip Horizontal icon",
      "description": "Horizontal drag handle, idle ↔ grabbed. When gripped, each column's dots reach for each other and fuse into an upright bar while the columns draw in tight; letting go springs them back into dots. `active` = grabbed.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/grip-horizontal.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/grip-horizontal.tsx"
        }
      ]
    },
    {
      "name": "icon-grip",
      "type": "registry:component",
      "title": "Grip icon",
      "description": "Drag handle, idle ↔ grabbed. When gripped, each row's dots reach for each other and fuse into a bar while the rows draw in tight; letting go springs them back into dots. `active` = grabbed, e.g. while dragging.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/grip.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/grip.tsx"
        }
      ]
    },
    {
      "name": "icon-hammer",
      "type": "registry:component",
      "title": "Hammer icon",
      "description": "A blow: the hammer draws back on its grip and strikes, dipping in scale through the swing so the head never leaves the grid, then settles.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/hammer.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/hammer.tsx"
        }
      ]
    },
    {
      "name": "icon-hand",
      "type": "registry:component",
      "title": "Hand icon",
      "description": "A wave from the wrist: the hand swings out and back, each swing smaller, and comes to rest upright.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/hand.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/hand.tsx"
        }
      ]
    },
    {
      "name": "icon-hard-drive",
      "type": "registry:component",
      "title": "Hard Drive icon",
      "description": "Disk activity: the two lights on the drive flicker out of step, as if reading and writing.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/hard-drive.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/hard-drive.tsx"
        }
      ]
    },
    {
      "name": "icon-hash",
      "type": "registry:component",
      "title": "Hash icon",
      "description": "A channel: the bars of the hash shuffle, the slants leaning further while the crossbars slide apart, then everything clicks back into its grid.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/hash.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/hash.tsx"
        }
      ]
    },
    {
      "name": "icon-heading",
      "type": "registry:component",
      "title": "Heading icon",
      "description": "Promoted to a heading: the letter grows taller from its baseline, crossbar riding up with it, and settles back.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/heading.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/heading.tsx"
        }
      ]
    },
    {
      "name": "icon-headphones",
      "type": "registry:component",
      "title": "Headphones icon",
      "description": "Bass drops: the ear cups thump outward twice on the beat and the headband flexes with them.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/headphones.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/headphones.tsx"
        }
      ]
    },
    {
      "name": "icon-headset",
      "type": "registry:component",
      "title": "Headset icon",
      "description": "Support is listening: the band settles on and the mic boom swings round to the mouth.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/headset.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/headset.tsx"
        }
      ]
    },
    {
      "name": "icon-heart",
      "type": "registry:component",
      "title": "Heart icon",
      "description": "Like. The heart squeezes, pops past full size and settles (the one place a bounce is earned), fills, and throws a ring of particles. `active` = liked.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/heart.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/heart.tsx"
        }
      ]
    },
    {
      "name": "icon-hexagon",
      "type": "registry:component",
      "title": "Hexagon icon",
      "description": "A sixth of a turn: the hexagon tightens, rotates one side on and lands on its own outline. Rest is 60° so leaving mid-turn completes forwards.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/hexagon.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/hexagon.tsx"
        }
      ]
    },
    {
      "name": "icon-highlighter",
      "type": "registry:component",
      "title": "Highlighter icon",
      "description": "Highlighting a phrase: the marker lifts back along the line as the old highlight is taken up, then sweeps forward and lays it down again.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/highlighter.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/highlighter.tsx"
        }
      ]
    },
    {
      "name": "icon-history",
      "type": "registry:component",
      "title": "History icon",
      "description": "Time rewinds: the arrow winds back around the dial while the minute hand spins a full turn counter-clockwise and the hour hand steps back an hour.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/history.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/history.tsx"
        }
      ]
    },
    {
      "name": "icon-home",
      "type": "registry:component",
      "title": "Home icon",
      "description": "The roof lifts and sets back down; the door is drawn open underneath it.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/home.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/home.tsx"
        }
      ]
    },
    {
      "name": "icon-hourglass",
      "type": "registry:component",
      "title": "Hourglass icon",
      "description": "Loops by default. The sand level drains down the funnel while the pile below rises, then the glass turns over. The full pile, turned over, is exactly the full top bulb, so the loop has no seam. Static fallback: a full top bulb.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/hourglass.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/hourglass.tsx"
        }
      ]
    },
    {
      "name": "icon-id-card",
      "type": "registry:component",
      "title": "ID Card icon",
      "description": "The card is read: its details dim, a scan line sweeps across, and each detail is restored as the line passes over it.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/id-card.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/id-card.tsx"
        }
      ]
    },
    {
      "name": "icon-image-plus",
      "type": "registry:component",
      "title": "Image Plus icon",
      "description": "Add an image → added. The sun dips behind the ridge and the plus beside the frame swings into a check. `active` = added.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/image-plus.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/image-plus.tsx"
        }
      ]
    },
    {
      "name": "icon-image",
      "type": "registry:component",
      "title": "Image icon",
      "description": "The sun sets behind the ridge and rises again as the ridge line redraws.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/image.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/image.tsx"
        }
      ]
    },
    {
      "name": "icon-images",
      "type": "registry:component",
      "title": "Images icon",
      "description": "Flicking through: the front photo slides aside a little, showing the one behind, and settles back.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/images.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/images.tsx"
        }
      ]
    },
    {
      "name": "icon-inbox",
      "type": "registry:component",
      "title": "Inbox icon",
      "description": "A message drops in and the tray dips to catch it.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/inbox.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/inbox.tsx"
        }
      ]
    },
    {
      "name": "icon-indent",
      "type": "registry:component",
      "title": "Indent icon",
      "description": "Outdent ↔ indent. The chevron folds flat and turns to point into the text as the two middle lines step in after it; outdenting turns it back and pulls the lines out. `active` = indent.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/indent.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/indent.tsx"
        }
      ]
    },
    {
      "name": "icon-infinity",
      "type": "registry:component",
      "title": "Infinity icon",
      "description": "The loop is traced again from its crossing, round both sides and back.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/infinity.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/infinity.tsx"
        }
      ]
    },
    {
      "name": "icon-info",
      "type": "registry:component",
      "title": "Info icon",
      "description": "The stem is drawn upward, then the dot drops onto it.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/info.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/info.tsx"
        }
      ]
    },
    {
      "name": "icon-italic",
      "type": "registry:component",
      "title": "Italic icon",
      "description": "The letter leans further into its slant, the way type is set in italic, and comes back to rest.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/italic.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/italic.tsx"
        }
      ]
    },
    {
      "name": "icon-kanban",
      "type": "registry:component",
      "title": "Kanban icon",
      "description": "A card moves on: the first column gives one up and the next column grows to take it, held while hovered.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/kanban.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/kanban.tsx"
        }
      ]
    },
    {
      "name": "icon-key",
      "type": "registry:component",
      "title": "Key icon",
      "description": "Into the lock: the key pushes in along its blade and turns, its teeth flipping over to the far side; releasing turns it back and draws it out.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/key.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/key.tsx"
        }
      ]
    },
    {
      "name": "icon-keyboard",
      "type": "registry:component",
      "title": "Keyboard icon",
      "description": "Typing: keys dip in a quick, uneven rhythm like a word being typed, then the space bar lands.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/keyboard.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/keyboard.tsx"
        }
      ]
    },
    {
      "name": "icon-landmark",
      "type": "registry:component",
      "title": "Landmark icon",
      "description": "The columns rise into place one by one under the roof, which settles on top.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/landmark.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/landmark.tsx"
        }
      ]
    },
    {
      "name": "icon-languages",
      "type": "registry:component",
      "title": "Languages icon",
      "description": "Translate. The two scripts trade places, circling each other clockwise and staying upright as they go; they hold there while hovered and circle back when released.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/languages.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/languages.tsx"
        }
      ]
    },
    {
      "name": "icon-laptop",
      "type": "registry:component",
      "title": "Laptop icon",
      "description": "The lid swings shut onto its hinge, the base takes the weight, and the lid lifts open again.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/laptop.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/laptop.tsx"
        }
      ]
    },
    {
      "name": "icon-lasso",
      "type": "registry:component",
      "title": "Lasso icon",
      "description": "Freeform select: the dashed loop marches round like a live selection.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/lasso.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/lasso.tsx"
        }
      ]
    },
    {
      "name": "icon-layers",
      "type": "registry:component",
      "title": "Layers icon",
      "description": "The stack fans open so each layer reads on its own, and closes again on release.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/layers.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/layers.tsx"
        }
      ]
    },
    {
      "name": "icon-layout-dashboard",
      "type": "registry:component",
      "title": "Layout Dashboard icon",
      "description": "Dashboard. The layout reflows once: the chart row sinks and the stat cards grow into the space it leaves, then the cards give it back and the chart row rises into place. The gutters never close.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/layout-dashboard.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/layout-dashboard.tsx"
        }
      ]
    },
    {
      "name": "icon-layout-grid",
      "type": "registry:component",
      "title": "Layout Grid icon",
      "description": "Tiles dip one after another, clockwise, like a layout reflowing.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/layout-grid.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/layout-grid.tsx"
        }
      ]
    },
    {
      "name": "icon-layout-list",
      "type": "registry:component",
      "title": "Layout List icon",
      "description": "List ↔ grid, for view switchers. Row by row, each pair of lines bows apart and rounds off into a tile beside its thumbnail; back to the list, the tiles flatten into lines again, last row first. `active` = grid.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/layout-list.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/layout-list.tsx"
        }
      ]
    },
    {
      "name": "icon-leaf",
      "type": "registry:component",
      "title": "Leaf icon",
      "description": "A breeze: the leaf sways on its stalk, back and forth and settling, the vein traveling with it.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/leaf.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/leaf.tsx"
        }
      ]
    },
    {
      "name": "icon-library",
      "type": "registry:component",
      "title": "Library icon",
      "description": "The leaning book straightens up against the others and tips back to rest.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/library.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/library.tsx"
        }
      ]
    },
    {
      "name": "icon-life-buoy",
      "type": "registry:component",
      "title": "Life Buoy icon",
      "description": "Help is on its way. The buoy turns one stripe on (90°) with a heavy ease-out, like a ratchet. Rest is 90°, so leaving mid-turn completes forwards.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/life-buoy.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/life-buoy.tsx"
        }
      ]
    },
    {
      "name": "icon-lightbulb",
      "type": "registry:component",
      "title": "Lightbulb icon",
      "description": "Off ↔ on. The filament catches with a flicker, then light radiates out, top first and then down both sides; switching off pulls the rays back in the reverse order. `active` = on.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/lightbulb.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/lightbulb.tsx"
        }
      ]
    },
    {
      "name": "icon-line-chart",
      "type": "registry:component",
      "title": "Line Chart icon",
      "description": "The series is plotted left to right and the latest point lands with a small settle.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/line-chart.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/line-chart.tsx"
        }
      ]
    },
    {
      "name": "icon-link",
      "type": "registry:component",
      "title": "Link icon",
      "description": "The two halves pull apart, the bar stretches thin, then they snap back together.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/link.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/link.tsx"
        }
      ]
    },
    {
      "name": "icon-list-checks",
      "type": "registry:component",
      "title": "List Checks icon",
      "description": "Tasks get done: each tick is written in turn, top to bottom, and lands with a small settle.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/list-checks.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/list-checks.tsx"
        }
      ]
    },
    {
      "name": "icon-list-collapse",
      "type": "registry:component",
      "title": "List Collapse icon",
      "description": "Expanded ↔ collapsed, for outlines, trees and collapse-all. The children fold up into their parent row, last one first, and the chevron turns to point right; expanding drops them back out under it. `active` = collapsed.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/list-collapse.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/list-collapse.tsx"
        }
      ]
    },
    {
      "name": "icon-list-music",
      "type": "registry:component",
      "title": "List Music icon",
      "description": "The playlist plays on: the note hops twice to a beat beside the tracks.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/list-music.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/list-music.tsx"
        }
      ]
    },
    {
      "name": "icon-list-ordered",
      "type": "registry:component",
      "title": "List Ordered icon",
      "description": "Counting off: the numerals are written again in order, 1 then 2, as if the list were being numbered.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/list-ordered.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/list-ordered.tsx"
        }
      ]
    },
    {
      "name": "icon-list-plus",
      "type": "registry:component",
      "title": "List Plus icon",
      "description": "A new row is on its way: the plus turns a quarter with a small press and the short lines reach out to make room.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/list-plus.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/list-plus.tsx"
        }
      ]
    },
    {
      "name": "icon-list",
      "type": "registry:component",
      "title": "List icon",
      "description": "Bulleted ↔ checklist. Row by row, each bullet unfolds into a tick and its line steps aside to make room; reversing folds the ticks back into dots, last row first. `active` = checklist.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/list.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/list.tsx"
        }
      ]
    },
    {
      "name": "icon-loader-dots",
      "type": "registry:component",
      "title": "Loader Dots icon",
      "description": "Three dots rise and brighten in a traveling wave. Loops by default; static fallback is three dots.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/loader-dots.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/loader-dots.tsx"
        }
      ]
    },
    {
      "name": "icon-loader-ring",
      "type": "registry:component",
      "title": "Loader Ring icon",
      "description": "Indeterminate spinner: a constant-rate turn with an arc that breathes on a different period, so the motion never visibly repeats. Loops by default. Static fallback: a quarter arc on a faint track.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/loader-ring.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/loader-ring.tsx"
        }
      ]
    },
    {
      "name": "icon-lock-open",
      "type": "registry:component",
      "title": "Lock Open icon",
      "description": "Unlocked. The shackle dips toward the body as if about to lock, the keyhole flicks, and it swings back open.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/lock-open.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/lock-open.tsx"
        }
      ]
    },
    {
      "name": "icon-lock",
      "type": "registry:component",
      "title": "Lock icon",
      "description": "Lock ↔ unlock. The shackle rises clear of the body, then swings open on its left leg. `active` = unlocked.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/lock.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/lock.tsx"
        }
      ]
    },
    {
      "name": "icon-log-in",
      "type": "registry:component",
      "title": "Log In icon",
      "description": "Log in ↔ log out. The arrow walks through the doorway while the door swings round behind it, edge-on half-way, so the same frame now shows the way out. Toggling mid-swing sends both back. `active` = log out (signed in).",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/log-in.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/log-in.tsx"
        }
      ]
    },
    {
      "name": "icon-log-out",
      "type": "registry:component",
      "title": "Log Out icon",
      "description": "Leave. The arrow walks out to the right and a new one steps out of the doorway after it, head first.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/log-out.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/log-out.tsx"
        }
      ]
    },
    {
      "name": "icon-logs",
      "type": "registry:component",
      "title": "Logs icon",
      "description": "Tailing a log: a new line comes in at the bottom and every line above it scrolls up one, the oldest leaving at the top.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/logs.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/logs.tsx"
        }
      ]
    },
    {
      "name": "icon-magnet",
      "type": "registry:component",
      "title": "Magnet icon",
      "description": "Snapping: the magnet jerks toward something and settles, with a little wobble.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/magnet.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/magnet.tsx"
        }
      ]
    },
    {
      "name": "icon-mail-check",
      "type": "registry:component",
      "title": "Mail Check icon",
      "description": "Delivered: the flap closes down once more and the check beside it is signed off.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/mail-check.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/mail-check.tsx"
        }
      ]
    },
    {
      "name": "icon-mail-open",
      "type": "registry:component",
      "title": "Mail Open icon",
      "description": "Read ↔ unread. The flap folds down over the letter and the envelope lifts as it seals. `active` = unread.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/mail-open.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/mail-open.tsx"
        }
      ]
    },
    {
      "name": "icon-mail-plus",
      "type": "registry:component",
      "title": "Mail Plus icon",
      "description": "New message → added. The plus beside the envelope swings into a check while the envelope lifts. `active` = added.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/mail-plus.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/mail-plus.tsx"
        }
      ]
    },
    {
      "name": "icon-mail",
      "type": "registry:component",
      "title": "Mail icon",
      "description": "The flap flattens open and a letter's lines rise out of the envelope.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/mail.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/mail.tsx"
        }
      ]
    },
    {
      "name": "icon-mailbox",
      "type": "registry:component",
      "title": "Mailbox icon",
      "description": "You have post: the flag drops and springs back up.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/mailbox.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/mailbox.tsx"
        }
      ]
    },
    {
      "name": "icon-map-pin-off",
      "type": "registry:component",
      "title": "Map Pin Off icon",
      "description": "Location off: the slash is drawn through the pin again with a matching gap cut behind it.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/map-pin-off.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/map-pin-off.tsx"
        }
      ]
    },
    {
      "name": "icon-map-pin-plus",
      "type": "registry:component",
      "title": "Map Pin Plus icon",
      "description": "Add a place → added. The pin bobs and the plus inside it swings into a check. `active` = added.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/map-pin-plus.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/map-pin-plus.tsx"
        }
      ]
    },
    {
      "name": "icon-map-pin",
      "type": "registry:component",
      "title": "Map Pin icon",
      "description": "Pin ↔ dropped. The pin hops, drops onto its spot and lands with a squash and a small settle; a ground ring spreads out beneath it and its center fills. Lifting it clears the ring. `active` = dropped.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/map-pin.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/map-pin.tsx"
        }
      ]
    },
    {
      "name": "icon-map",
      "type": "registry:component",
      "title": "Map icon",
      "description": "Unfolding: both side panels fold in toward the middle one, then open back out flat, the right a beat behind the left.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/map.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/map.tsx"
        }
      ]
    },
    {
      "name": "icon-maximize",
      "type": "registry:component",
      "title": "Maximize icon",
      "description": "Maximize ↔ minimize. Every corner folds through its own diagonal, from the window's edge to pointing inward, like a window giving way; toggling mid-fold swings them back. `active` = minimize.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/maximize.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/maximize.tsx"
        }
      ]
    },
    {
      "name": "icon-megaphone",
      "type": "registry:component",
      "title": "Megaphone icon",
      "description": "An announcement: the horn kicks back as it blasts, and the sound goes out from its mouth one wave after the other.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/megaphone.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/megaphone.tsx"
        }
      ]
    },
    {
      "name": "icon-meh",
      "type": "registry:component",
      "title": "Meh icon",
      "description": "Neither here nor there: the flat mouth slides to one side and back, and the eyes blink.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/meh.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/meh.tsx"
        }
      ]
    },
    {
      "name": "icon-memory-stick",
      "type": "registry:component",
      "title": "Memory Stick icon",
      "description": "Under load: the chips on the module light up in turn along the board.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/memory-stick.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/memory-stick.tsx"
        }
      ]
    },
    {
      "name": "icon-menu",
      "type": "registry:component",
      "title": "Menu icon",
      "description": "Menu ↔ close. The outer bars converge on the center, then cross; the middle bar collapses into the pivot. Closing plays the exact reverse.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/menu.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/menu.tsx"
        }
      ]
    },
    {
      "name": "icon-message-dots",
      "type": "registry:component",
      "title": "Message Dots icon",
      "description": "Message ↔ typing. The lines of text draw together into the three dots of a typing indicator; when the reply lands they spread back out into text. `active` = typing.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/message-dots.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/message-dots.tsx"
        }
      ]
    },
    {
      "name": "icon-message-heart",
      "type": "registry:component",
      "title": "Message Heart icon",
      "description": "A kind word: the heart in the bubble beats twice.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/message-heart.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/message-heart.tsx"
        }
      ]
    },
    {
      "name": "icon-message-plus",
      "type": "registry:component",
      "title": "Message Plus icon",
      "description": "Start a conversation: the plus turns a quarter inside the bubble with a small press, and the bubble swells.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/message-plus.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/message-plus.tsx"
        }
      ]
    },
    {
      "name": "icon-message-question",
      "type": "registry:component",
      "title": "Message Question icon",
      "description": "A puzzled question: the question mark tilts one way and the other while its dot bobs.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/message-question.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/message-question.tsx"
        }
      ]
    },
    {
      "name": "icon-message-sparkle",
      "type": "registry:component",
      "title": "Message Sparkle icon",
      "description": "Ask AI. The bubble lifts as if it were about to speak and the star inside turns a quarter, breathing in on the way.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/message-sparkle.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/message-sparkle.tsx"
        }
      ]
    },
    {
      "name": "icon-message",
      "type": "registry:component",
      "title": "Message icon",
      "description": "Someone is typing: the three dots ripple through the bubble twice.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/message.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/message.tsx"
        }
      ]
    },
    {
      "name": "icon-messages",
      "type": "registry:component",
      "title": "Messages icon",
      "description": "A conversation: the front bubble speaks up, then the reply behind it answers. The reply is a whole bubble, masked by a gap around the front one, so they can move independently without ever touching.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/messages.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/messages.tsx"
        }
      ]
    },
    {
      "name": "icon-mic",
      "type": "registry:component",
      "title": "Mic icon",
      "description": "Mic ↔ muted. A slash is drawn through the mic and a matching gap is cut behind it with a mask, so the strokes never collide.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/mic.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/mic.tsx"
        }
      ]
    },
    {
      "name": "icon-minimize",
      "type": "registry:component",
      "title": "Minimize icon",
      "description": "Collapse. The four corners pinch in toward the center, as if the window were already shrinking, and let go.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/minimize.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/minimize.tsx"
        }
      ]
    },
    {
      "name": "icon-minus",
      "type": "registry:component",
      "title": "Minus icon",
      "description": "Minus ↔ plus, for steppers, accordions and zoom. An upright grows out of the bar's center in both directions at once; collapsing folds it back into the bar. `active` = plus.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/minus.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/minus.tsx"
        }
      ]
    },
    {
      "name": "icon-monitor",
      "type": "registry:component",
      "title": "Monitor icon",
      "description": "Power-on: current runs out along the foot, up the neck, and around both sides of the screen until they meet at the top.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/monitor.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/monitor.tsx"
        }
      ]
    },
    {
      "name": "icon-moon",
      "type": "registry:component",
      "title": "Moon icon",
      "description": "Night falls: the crescent rocks gently and the star beside it winks on with a turn.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/moon.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/moon.tsx"
        }
      ]
    },
    {
      "name": "icon-more-horizontal",
      "type": "registry:component",
      "title": "More Horizontal icon",
      "description": "More ↔ close, for overflow menus. The outer dots stretch into the arms of an × as they swing to the center, and the middle dot gives way to the crossing; closing draws them back into dots. `active` = open (close).",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/more-horizontal.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/more-horizontal.tsx"
        }
      ]
    },
    {
      "name": "icon-more-vertical",
      "type": "registry:component",
      "title": "More Vertical icon",
      "description": "More ↔ close, for row and card menus. The outer dots stretch into the arms of an × as they swing to the center, and the middle dot gives way to the crossing; closing draws them back into dots. `active` = open (close).",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/more-vertical.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/more-vertical.tsx"
        }
      ]
    },
    {
      "name": "icon-mountain",
      "type": "registry:component",
      "title": "Mountain icon",
      "description": "Landscape, terrain, the outdoors. A sun rises from behind the lower peak and holds there while hovered; leaving sets it behind the ridge again.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/mountain.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/mountain.tsx"
        }
      ]
    },
    {
      "name": "icon-mouse-pointer",
      "type": "registry:component",
      "title": "Mouse Pointer icon",
      "description": "A click: the pointer presses in toward its tip and three rays flash out from the point of contact.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/mouse-pointer.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/mouse-pointer.tsx"
        }
      ]
    },
    {
      "name": "icon-mouse",
      "type": "registry:component",
      "title": "Mouse icon",
      "description": "Scrolling: the wheel rolls down two notches, each mark sliding out below as the next rolls in from above.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/mouse.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/mouse.tsx"
        }
      ]
    },
    {
      "name": "icon-move",
      "type": "registry:component",
      "title": "Move icon",
      "description": "Four ways at once: the arms push out from the center, parting in the middle, and draw back together.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/move.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/move.tsx"
        }
      ]
    },
    {
      "name": "icon-music",
      "type": "registry:component",
      "title": "Music icon",
      "description": "The note hops twice to a beat, rocking on its heel.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/music.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/music.tsx"
        }
      ]
    },
    {
      "name": "icon-navigation",
      "type": "registry:component",
      "title": "Navigation icon",
      "description": "Navigating ↔ arrived. The heading arrow swings round to point down and swells into a location pin, then its center is drawn in; setting off again sharpens the pin back into the arrow. `active` = arrived.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/navigation.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/navigation.tsx"
        }
      ]
    },
    {
      "name": "icon-network",
      "type": "registry:component",
      "title": "Network icon",
      "description": "Connecting: the links between the three nodes are drawn in turn round the mesh.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/network.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/network.tsx"
        }
      ]
    },
    {
      "name": "icon-newspaper",
      "type": "registry:component",
      "title": "Newspaper icon",
      "description": "The headline box flashes and the columns under it are set again, line by line.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/newspaper.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/newspaper.tsx"
        }
      ]
    },
    {
      "name": "icon-nfc",
      "type": "registry:component",
      "title": "Nfc icon",
      "description": "Tap to pay: the waves ripple outward from the point of contact, smallest first.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/nfc.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/nfc.tsx"
        }
      ]
    },
    {
      "name": "icon-notebook",
      "type": "registry:component",
      "title": "Notebook icon",
      "description": "The cover lifts on its rings and falls shut again, the rings giving a little as it does.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/notebook.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/notebook.tsx"
        }
      ]
    },
    {
      "name": "icon-octagon-alert",
      "type": "registry:component",
      "title": "Octagon Alert icon",
      "description": "Stop. The sign braces with a short press, and the exclamation jumps with its point landing a beat after.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/octagon-alert.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/octagon-alert.tsx"
        }
      ]
    },
    {
      "name": "icon-package",
      "type": "registry:component",
      "title": "Package icon",
      "description": "In transit ↔ delivered. The box is set down with a soft thud and its tape folds into a check on the lid. `active` = delivered.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/package.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/package.tsx"
        }
      ]
    },
    {
      "name": "icon-paint-bucket",
      "type": "registry:component",
      "title": "Paint Bucket icon",
      "description": "Fill: the bucket tips over its rim and a drop of paint falls from it as it rights itself.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/paint-bucket.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/paint-bucket.tsx"
        }
      ]
    },
    {
      "name": "icon-paint-roller",
      "type": "registry:component",
      "title": "Paint Roller icon",
      "description": "Rolling paint on: the roller sweeps up and down the wall on its handle.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/paint-roller.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/paint-roller.tsx"
        }
      ]
    },
    {
      "name": "icon-palette",
      "type": "registry:component",
      "title": "Palette icon",
      "description": "Picking colors: the palette tips in the hand and each well of paint pops in turn, round the rim.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/palette.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/palette.tsx"
        }
      ]
    },
    {
      "name": "icon-panel-bottom",
      "type": "registry:component",
      "title": "Panel Bottom icon",
      "description": "Bottom panel open ↔ closed, for terminals, consoles and drawers. The panel's divider lets go of the frame and folds into a chevron pointing up; opening unfolds it back into the divider. `active` = closed.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/panel-bottom.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/panel-bottom.tsx"
        }
      ]
    },
    {
      "name": "icon-panel-right",
      "type": "registry:component",
      "title": "Panel Right icon",
      "description": "Inspector open ↔ closed. The right panel's divider pulls free of the frame and folds into a chevron pointing where the panel will slide back from; opening unfolds it again. `active` = closed.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/panel-right.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/panel-right.tsx"
        }
      ]
    },
    {
      "name": "icon-paperclip",
      "type": "registry:component",
      "title": "Paperclip icon",
      "description": "Attach. The outer loop unwinds back along the wire and is bent round again, as if clipping onto a sheet.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/paperclip.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/paperclip.tsx"
        }
      ]
    },
    {
      "name": "icon-party-popper",
      "type": "registry:component",
      "title": "Party Popper icon",
      "description": "Celebrate. The popper kicks back in the hand and throws its confetti out of the mouth, each piece flying to where it rests while the streamer unfurls after them.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/party-popper.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/party-popper.tsx"
        }
      ]
    },
    {
      "name": "icon-pen-tool",
      "type": "registry:component",
      "title": "Pen Tool icon",
      "description": "Drawing a path: the nib tilts one way and the other on its point, like setting an anchor.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/pen-tool.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/pen-tool.tsx"
        }
      ]
    },
    {
      "name": "icon-pencil",
      "type": "registry:component",
      "title": "Pencil icon",
      "description": "The pencil scribbles a stroke underneath itself.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/pencil.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/pencil.tsx"
        }
      ]
    },
    {
      "name": "icon-percent",
      "type": "registry:component",
      "title": "Percent icon",
      "description": "A price cut: the slash slices through corner to corner and knocks the two rings apart, then they drift back together.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/percent.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/percent.tsx"
        }
      ]
    },
    {
      "name": "icon-phone-call",
      "type": "registry:component",
      "title": "Phone Call icon",
      "description": "Call ↔ hang up. The signal arcs retract into the earpiece, outermost first, and the handset turns 135° into the hang-up pose. Reconnecting turns it back and the arcs radiate out again. `active` = in a call (shows hang up).",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/phone-call.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/phone-call.tsx"
        }
      ]
    },
    {
      "name": "icon-phone-incoming",
      "type": "registry:component",
      "title": "Phone Incoming icon",
      "description": "An incoming call: the arrow arrives at the handset from outside and the handset gives a short ring.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/phone-incoming.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/phone-incoming.tsx"
        }
      ]
    },
    {
      "name": "icon-phone-missed",
      "type": "registry:component",
      "title": "Phone Missed icon",
      "description": "A missed call: the handset rings once more, too late, and each stroke of the × pinches in beside it.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/phone-missed.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/phone-missed.tsx"
        }
      ]
    },
    {
      "name": "icon-phone-off",
      "type": "registry:component",
      "title": "Phone Off icon",
      "description": "The line is cut again: the slash is redrawn through the handset with a matching gap cut behind it.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/phone-off.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/phone-off.tsx"
        }
      ]
    },
    {
      "name": "icon-phone-outgoing",
      "type": "registry:component",
      "title": "Phone Outgoing icon",
      "description": "An outgoing call: the arrow leaves the handset and a fresh one follows it out.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/phone-outgoing.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/phone-outgoing.tsx"
        }
      ]
    },
    {
      "name": "icon-phone",
      "type": "registry:component",
      "title": "Phone icon",
      "description": "Incoming call: the handset buzzes and signal arcs pulse out of the earpiece.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/phone.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/phone.tsx"
        }
      ]
    },
    {
      "name": "icon-picture-in-picture",
      "type": "registry:component",
      "title": "Picture In Picture icon",
      "description": "Inline ↔ picture in picture. The video shrinks into the corner of the screen and fills in as a floating window; bringing it back grows it out of the corner to fill the screen again. `active` = floating.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/picture-in-picture.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/picture-in-picture.tsx"
        }
      ]
    },
    {
      "name": "icon-pie-chart",
      "type": "registry:component",
      "title": "Pie Chart icon",
      "description": "The body is traced around, then the slice pulls out along its diagonal and settles there.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/pie-chart.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/pie-chart.tsx"
        }
      ]
    },
    {
      "name": "icon-piggy-bank",
      "type": "registry:component",
      "title": "Piggy Bank icon",
      "description": "Saving: a coin drops through the slot and the next one appears above it.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/piggy-bank.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/piggy-bank.tsx"
        }
      ]
    },
    {
      "name": "icon-pilcrow",
      "type": "registry:component",
      "title": "Pilcrow icon",
      "description": "A new paragraph: the bowl of the mark is filled in again around its stems.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/pilcrow.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/pilcrow.tsx"
        }
      ]
    },
    {
      "name": "icon-pin-off",
      "type": "registry:component",
      "title": "Pin Off icon",
      "description": "Unpin. The slash lifts off as the pin pops loose and tips over, then it is struck through the loose pin again; letting go stands the pin back up.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/pin-off.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/pin-off.tsx"
        }
      ]
    },
    {
      "name": "icon-pin",
      "type": "registry:component",
      "title": "Pin icon",
      "description": "Unpinned ↔ pinned. The tilted pin swings upright, then drives down into the board with a short press; unpinning pops it back out at an angle. `active` = pinned.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/pin.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/pin.tsx"
        }
      ]
    },
    {
      "name": "icon-pipette",
      "type": "registry:component",
      "title": "Pipette icon",
      "description": "Picking a color: the bulb is squeezed and a drop forms at the tip of the dropper and falls, and the bulb springs back.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/pipette.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/pipette.tsx"
        }
      ]
    },
    {
      "name": "icon-plane",
      "type": "registry:component",
      "title": "Plane icon",
      "description": "Taking off: the plane surges ahead along its heading, eases back and holds its line.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/plane.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/plane.tsx"
        }
      ]
    },
    {
      "name": "icon-play",
      "type": "registry:component",
      "title": "Play icon",
      "description": "Play ↔ pause. The triangle folds into the left bar while the right bar slides out from its tip. `active` = playing.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/play.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/play.tsx"
        }
      ]
    },
    {
      "name": "icon-plug",
      "type": "registry:component",
      "title": "Plug icon",
      "description": "Plugged ↔ unplugged. The halves pull apart along their axis and the prongs slide out of the socket into view; plugging back in pushes them home. `active` = unplugged.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/plug.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/plug.tsx"
        }
      ]
    },
    {
      "name": "icon-plus-minus",
      "type": "registry:component",
      "title": "Plus Minus icon",
      "description": "More or less: the plus turns a quarter and the minus under it pulls in and out.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/plus-minus.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/plus-minus.tsx"
        }
      ]
    },
    {
      "name": "icon-plus",
      "type": "registry:component",
      "title": "Plus icon",
      "description": "Plus ↔ close. A quarter-and-an-eighth turn; the cross lands as an ×.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/plus.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/plus.tsx"
        }
      ]
    },
    {
      "name": "icon-podcast",
      "type": "registry:component",
      "title": "Podcast icon",
      "description": "On air: the waves ripple out from the source, inner ones first.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/podcast.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/podcast.tsx"
        }
      ]
    },
    {
      "name": "icon-pound-sterling",
      "type": "registry:component",
      "title": "Pound Sterling icon",
      "description": "Money in pounds: the stroke is written again from the hook down to the foot.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/pound-sterling.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/pound-sterling.tsx"
        }
      ]
    },
    {
      "name": "icon-power",
      "type": "registry:component",
      "title": "Power icon",
      "description": "Power on: the switch line drops in, then the ring is drawn closed around it from both sides.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/power.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/power.tsx"
        }
      ]
    },
    {
      "name": "icon-presentation",
      "type": "registry:component",
      "title": "Presentation icon",
      "description": "The trend on the board is drawn again, left to right, as if being presented.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/presentation.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/presentation.tsx"
        }
      ]
    },
    {
      "name": "icon-printer",
      "type": "registry:component",
      "title": "Printer icon",
      "description": "The sheet is drawn back in and fed out again, printed line first, while the status light blinks.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/printer.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/printer.tsx"
        }
      ]
    },
    {
      "name": "icon-puzzle",
      "type": "registry:component",
      "title": "Puzzle icon",
      "description": "Fitting it in: the piece lifts out, turns to find the fit, and drops back into place with a small settle.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/puzzle.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/puzzle.tsx"
        }
      ]
    },
    {
      "name": "icon-qr-code",
      "type": "registry:component",
      "title": "QR Code icon",
      "description": "A code to scan. A scan line sweeps down across it, fading in at the top and out at the bottom.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/qr-code.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/qr-code.tsx"
        }
      ]
    },
    {
      "name": "icon-quote",
      "type": "registry:component",
      "title": "Quote icon",
      "description": "The marks nod one after the other, like the cadence of someone speaking.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/quote.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/quote.tsx"
        }
      ]
    },
    {
      "name": "icon-radar",
      "type": "registry:component",
      "title": "Radar icon",
      "description": "Scanning: the sweep goes once round the scope and the contact it passes flares. Rest is a full turn, so leaving mid-sweep carries on forwards.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/radar.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/radar.tsx"
        }
      ]
    },
    {
      "name": "icon-radio",
      "type": "registry:component",
      "title": "Radio icon",
      "description": "Tuning in: the antenna sways and the speaker pulses to the sound.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/radio.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/radio.tsx"
        }
      ]
    },
    {
      "name": "icon-rainbow",
      "type": "registry:component",
      "title": "Rainbow icon",
      "description": "The bands are drawn across the sky one after another, outermost first.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/rainbow.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/rainbow.tsx"
        }
      ]
    },
    {
      "name": "icon-receipt",
      "type": "registry:component",
      "title": "Receipt icon",
      "description": "Printing: the lines are typed onto the slip one after another, then it is torn off with a short tug.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/receipt.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/receipt.tsx"
        }
      ]
    },
    {
      "name": "icon-record",
      "type": "registry:component",
      "title": "Record icon",
      "description": "Record ↔ stop. The red-dot circle squares off into a stop button inside its ring, corner by corner at once; stopping rounds it back into the dot. `active` = recording (shows stop).",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/record.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/record.tsx"
        }
      ]
    },
    {
      "name": "icon-rectangle-horizontal",
      "type": "registry:component",
      "title": "Rectangle Horizontal icon",
      "description": "A press: the shape squashes toward its base like a button pushed in, then springs back to its size.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/rectangle-horizontal.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/rectangle-horizontal.tsx"
        }
      ]
    },
    {
      "name": "icon-redo",
      "type": "registry:component",
      "title": "Redo icon",
      "description": "Step forward. The arrow winds a notch clockwise around its hook, the direction it travels, and eases home.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/redo.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/redo.tsx"
        }
      ]
    },
    {
      "name": "icon-refresh",
      "type": "registry:component",
      "title": "Refresh icon",
      "description": "One full turn with a hard ease-out. Rest is 360°, not 0°, so leaving mid-spin finishes the turn forwards instead of unwinding it.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/refresh.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/refresh.tsx"
        }
      ]
    },
    {
      "name": "icon-regex",
      "type": "registry:component",
      "title": "Regex icon",
      "description": "Any character, any number of times: the star turns a sixth and lands on itself while the dot holds still. Rest is 60° so leaving mid-turn completes forwards.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/regex.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/regex.tsx"
        }
      ]
    },
    {
      "name": "icon-remove-formatting",
      "type": "registry:component",
      "title": "Remove Formatting icon",
      "description": "Clear formatting: each stroke of the × beside the letter pinches in to its centre and snaps back.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/remove-formatting.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/remove-formatting.tsx"
        }
      ]
    },
    {
      "name": "icon-repeat",
      "type": "registry:component",
      "title": "Repeat icon",
      "description": "Repeat ↔ repeat one. The loop turns a half-cycle, landing on its own silhouette, and a 1 is written at its center; turning back erases it first. `active` = repeat one.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/repeat.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/repeat.tsx"
        }
      ]
    },
    {
      "name": "icon-replace",
      "type": "registry:component",
      "title": "Replace icon",
      "description": "The two arrows chase each other half a turn round the pair, which lands them back on their own shapes, while each box dips as it is swapped. Rest is 180° so leaving mid-turn completes forwards.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/replace.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/replace.tsx"
        }
      ]
    },
    {
      "name": "icon-reply",
      "type": "registry:component",
      "title": "Reply icon",
      "description": "Sent back: the arrow winds up, stretches out to the left and snaps back into shape.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/reply.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/reply.tsx"
        }
      ]
    },
    {
      "name": "icon-responsive",
      "type": "registry:component",
      "title": "Responsive icon",
      "description": "Desktop ↔ mobile. The stand folds up into a home bar and the screen draws itself narrow and tall into a phone; going back, the screen widens first and the stand drops out beneath it. `active` = mobile.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/responsive.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/responsive.tsx"
        }
      ]
    },
    {
      "name": "icon-rewind",
      "type": "registry:component",
      "title": "Rewind icon",
      "description": "Mirror of fast-forward: both triangles surge backward twice, the rear one chasing the front a beat behind.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/rewind.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/rewind.tsx"
        }
      ]
    },
    {
      "name": "icon-rocket",
      "type": "registry:component",
      "title": "Rocket icon",
      "description": "Idle ↔ launched. Ignition: the flame catches and flickers, the hull shudders, then it lifts off along its heading and holds there; throttling down settles it back on the pad before the flame dies. `active` = launched.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/rocket.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/rocket.tsx"
        }
      ]
    },
    {
      "name": "icon-rotate-ccw",
      "type": "registry:component",
      "title": "Rotate Ccw icon",
      "description": "Rotate counter-clockwise. The arrow runs one full turn back round its own ring with a hard ease-out. Rest is −360°, so leaving mid-turn finishes the turn instead of unwinding it.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/rotate-ccw.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/rotate-ccw.tsx"
        }
      ]
    },
    {
      "name": "icon-rotate-cw",
      "type": "registry:component",
      "title": "Rotate Cw icon",
      "description": "Rotate clockwise. The arrow runs one full turn round its own ring with a hard ease-out. Rest is 360°, so leaving mid-turn finishes forwards.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/rotate-cw.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/rotate-cw.tsx"
        }
      ]
    },
    {
      "name": "icon-route",
      "type": "registry:component",
      "title": "Route icon",
      "description": "The trip is planned: the start pulses, the route is traced out of it, and the destination lands with a settle as the line arrives.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/route.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/route.tsx"
        }
      ]
    },
    {
      "name": "icon-router",
      "type": "registry:component",
      "title": "Router icon",
      "description": "Online: the signal waves ripple up from the antenna and the status lights blink in turn.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/router.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/router.tsx"
        }
      ]
    },
    {
      "name": "icon-rows-2",
      "type": "registry:component",
      "title": "Rows 2 icon",
      "description": "Comfortable rows. The divider splits into the two of the standard layout and they fold back together, so the rows settle open again.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/rows-2.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/rows-2.tsx"
        }
      ]
    },
    {
      "name": "icon-rows",
      "type": "registry:component",
      "title": "Rows icon",
      "description": "Comfortable ↔ compact, for table and list density. The rows close up as a new divider peels off the first and settles in the middle; relaxing folds it back and the rows open out. `active` = compact.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/rows.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/rows.tsx"
        }
      ]
    },
    {
      "name": "icon-rss",
      "type": "registry:component",
      "title": "RSS icon",
      "description": "A new post goes out: the arcs go dark and light up again from the source outward, like wifi finding its signal.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/rss.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/rss.tsx"
        }
      ]
    },
    {
      "name": "icon-ruler",
      "type": "registry:component",
      "title": "Ruler icon",
      "description": "Measuring: a reading runs down the ruler, each mark reaching out in turn as it passes.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/ruler.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/ruler.tsx"
        }
      ]
    },
    {
      "name": "icon-save",
      "type": "registry:component",
      "title": "Save icon",
      "description": "Save → saved. The disk takes the write, its label folds flat and the line's ends lift into a check. `active` = saved.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/save.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/save.tsx"
        }
      ]
    },
    {
      "name": "icon-scan-barcode",
      "type": "registry:component",
      "title": "Scan Barcode icon",
      "description": "A scan: the laser line switches on at the top of the code, sweeps down across the bars and back, and switches off.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/scan-barcode.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/scan-barcode.tsx"
        }
      ]
    },
    {
      "name": "icon-scan-face",
      "type": "registry:component",
      "title": "Scan Face icon",
      "description": "Scanning ↔ verified. The corner brackets close in and lock on, the eyes blink shut and the smile swings up into a check. `active` = verified.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/scan-face.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/scan-face.tsx"
        }
      ]
    },
    {
      "name": "icon-scissors",
      "type": "registry:component",
      "title": "Scissors icon",
      "description": "Two quick snips: both blades close on the pivot and open again, twice, the second cut a touch firmer.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/scissors.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/scissors.tsx"
        }
      ]
    },
    {
      "name": "icon-screen-share",
      "type": "registry:component",
      "title": "Screen Share icon",
      "description": "Share screen ↔ stop sharing. The upload arrow on the screen folds into an ×: its head flattens into one diagonal while the shaft tips over into the other; stopping unfolds it back into the arrow. `active` = sharing (shows stop).",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/screen-share.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/screen-share.tsx"
        }
      ]
    },
    {
      "name": "icon-search-x",
      "type": "registry:component",
      "title": "Search X icon",
      "description": "No results. The magnifier shakes its head, wagging from the end of its handle, while each stroke of the × pinches in to its center and snaps back.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/search-x.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/search-x.tsx"
        }
      ]
    },
    {
      "name": "icon-search",
      "type": "registry:component",
      "title": "Search icon",
      "description": "The lens breathes once and a glint sweeps across the glass.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/search.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/search.tsx"
        }
      ]
    },
    {
      "name": "icon-send",
      "type": "registry:component",
      "title": "Send icon",
      "description": "The plane pulls back, flies out along its heading and glides back in from the opposite corner.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/send.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/send.tsx"
        }
      ]
    },
    {
      "name": "icon-server",
      "type": "registry:component",
      "title": "Server icon",
      "description": "Under load: each unit's status light flickers out of step with the other while its throughput meter surges.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/server.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/server.tsx"
        }
      ]
    },
    {
      "name": "icon-settings",
      "type": "registry:component",
      "title": "Settings icon",
      "description": "The gear turns exactly one tooth-pitch (45°) with a heavy ease-out, as if driven by a ratchet. Rest is 45° so leaving mid-turn completes forwards.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/settings.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/settings.tsx"
        }
      ]
    },
    {
      "name": "icon-shapes",
      "type": "registry:component",
      "title": "Shapes icon",
      "description": "The three shapes pop one after another: circle, then square, then triangle.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/shapes.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/shapes.tsx"
        }
      ]
    },
    {
      "name": "icon-share",
      "type": "registry:component",
      "title": "Share icon",
      "description": "Connections are drawn out from the source node, and each recipient pops as its line arrives.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/share.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/share.tsx"
        }
      ]
    },
    {
      "name": "icon-shield-alert",
      "type": "registry:component",
      "title": "Shield Alert icon",
      "description": "Alert ↔ resolved. The shield braces, the exclamation bar tips over into the long stroke of a check and its dot stretches into the short one. `active` = resolved.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/shield-alert.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/shield-alert.tsx"
        }
      ]
    },
    {
      "name": "icon-shield-check",
      "type": "registry:component",
      "title": "Shield Check icon",
      "description": "The shield braces (a short squash) and the check is re-sealed onto it.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/shield-check.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/shield-check.tsx"
        }
      ]
    },
    {
      "name": "icon-shield-off",
      "type": "registry:component",
      "title": "Shield Off icon",
      "description": "Protection off ↔ on. The slash retracts and the shield braces back into service; turning it off draws the slash again with a gap cut behind. `active` = on.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/shield-off.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/shield-off.tsx"
        }
      ]
    },
    {
      "name": "icon-shield-plus",
      "type": "registry:component",
      "title": "Shield Plus icon",
      "description": "Add protection: the shield braces and the plus inside it turns a quarter.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/shield-plus.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/shield-plus.tsx"
        }
      ]
    },
    {
      "name": "icon-shield-x",
      "type": "registry:component",
      "title": "Shield X icon",
      "description": "Blocked: the shield shakes off a hit while each stroke of the × pinches in to its centre and snaps back.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/shield-x.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/shield-x.tsx"
        }
      ]
    },
    {
      "name": "icon-shield",
      "type": "registry:component",
      "title": "Shield icon",
      "description": "Deflect: the shield braces against a hit and a force field ripples out from its center through the outline.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/shield.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/shield.tsx"
        }
      ]
    },
    {
      "name": "icon-ship",
      "type": "registry:component",
      "title": "Ship icon",
      "description": "At sea: the ship rolls on the swell and rights itself.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/ship.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/ship.tsx"
        }
      ]
    },
    {
      "name": "icon-shopping-bag",
      "type": "registry:component",
      "title": "Shopping Bag icon",
      "description": "Picked up: the handle draws taut first, the bag follows it up a beat later with its weight, then sets back down.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/shopping-bag.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/shopping-bag.tsx"
        }
      ]
    },
    {
      "name": "icon-shopping-basket",
      "type": "registry:component",
      "title": "Shopping Basket icon",
      "description": "Added to the basket: it dips under the weight and the handles swing back.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/shopping-basket.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/shopping-basket.tsx"
        }
      ]
    },
    {
      "name": "icon-shopping-cart",
      "type": "registry:component",
      "title": "Shopping Cart icon",
      "description": "Empty ↔ item added. A parcel drops in through the open top and lands with a settle while the basket dips on its wheels to take the weight. Removing it lifts it back out. `active` = item in the cart.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/shopping-cart.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/shopping-cart.tsx"
        }
      ]
    },
    {
      "name": "icon-shuffle",
      "type": "registry:component",
      "title": "Shuffle icon",
      "description": "Re-deal. Both routes are redrawn from the left at once, crossing mid-way (the broken one picks up again past the crossing), and each head is pushed out as its route arrives.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/shuffle.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/shuffle.tsx"
        }
      ]
    },
    {
      "name": "icon-sidebar",
      "type": "registry:component",
      "title": "Sidebar icon",
      "description": "Sidebar open ↔ closed. The panel's divider pulls free of the frame and folds into a chevron pointing where the sidebar will come back from; opening unfolds it into the divider again. `active` = closed.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/sidebar.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/sidebar.tsx"
        }
      ]
    },
    {
      "name": "icon-sigma",
      "type": "registry:component",
      "title": "Sigma icon",
      "description": "The sum is written out: one continuous pen stroke from the top serif, down the diagonals, to the bottom serif.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/sigma.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/sigma.tsx"
        }
      ]
    },
    {
      "name": "icon-signal",
      "type": "registry:component",
      "title": "Signal icon",
      "description": "Full ↔ weak. The bars fall back to the baseline from the strongest down, leaving a dot in each empty slot; when signal returns they climb back up in order. `active` = weak.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/signal.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/signal.tsx"
        }
      ]
    },
    {
      "name": "icon-signature",
      "type": "registry:component",
      "title": "Signature icon",
      "description": "Signing: the pen writes the signature again in one stroke, above the line it is signed on.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/signature.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/signature.tsx"
        }
      ]
    },
    {
      "name": "icon-signpost",
      "type": "registry:component",
      "title": "Signpost icon",
      "description": "Which way: the two boards swing on the post, one after the other, and settle.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/signpost.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/signpost.tsx"
        }
      ]
    },
    {
      "name": "icon-siren",
      "type": "registry:component",
      "title": "Siren icon",
      "description": "Incident. The glint inside the dome sweeps once round the lamp and each ray flashes as it passes. Rest is a full turn, so leaving mid-sweep carries on forwards instead of unwinding.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/siren.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/siren.tsx"
        }
      ]
    },
    {
      "name": "icon-skip-back",
      "type": "registry:component",
      "title": "Skip Back icon",
      "description": "Mirror of skip-forward: the triangle leaps back into the bar, the bar takes the hit, and the triangle re-enters from the right.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/skip-back.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/skip-back.tsx"
        }
      ]
    },
    {
      "name": "icon-skip-forward",
      "type": "registry:component",
      "title": "Skip Forward icon",
      "description": "The triangle leaps into the bar; the bar takes the hit and the triangle re-enters.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/skip-forward.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/skip-forward.tsx"
        }
      ]
    },
    {
      "name": "icon-sliders",
      "type": "registry:component",
      "title": "Sliders icon",
      "description": "Tuning: the three knobs glide to new values, each a beat after the last, and hold there while hovered; release slides them home.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/sliders.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/sliders.tsx"
        }
      ]
    },
    {
      "name": "icon-smartphone",
      "type": "registry:component",
      "title": "Smartphone icon",
      "description": "Ring ↔ vibrate. The phone buzzes against the table and vibration ticks flicker out from its sides. `active` = vibrate.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/smartphone.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/smartphone.tsx"
        }
      ]
    },
    {
      "name": "icon-smile-plus",
      "type": "registry:component",
      "title": "Smile Plus icon",
      "description": "React ↔ reacted, for emoji reactions. The plus spins away, the face closes its ring where the plus was and the smile widens into a grin; removing the reaction opens the ring and spins the plus back in. `active` = reacted.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/smile-plus.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/smile-plus.tsx"
        }
      ]
    },
    {
      "name": "icon-smile",
      "type": "registry:component",
      "title": "Smile icon",
      "description": "A wink: the face tilts, one eye squeezes shut and the smile widens, then it all relaxes.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/smile.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/smile.tsx"
        }
      ]
    },
    {
      "name": "icon-snowflake",
      "type": "registry:component",
      "title": "Snowflake icon",
      "description": "Crystallising: the flake turns one sixth, landing on its own silhouette, as frost re-forms on each arm tip in turn. Rest is 60° so leaving mid-turn finishes it forwards.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/snowflake.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/snowflake.tsx"
        }
      ]
    },
    {
      "name": "icon-sort",
      "type": "registry:component",
      "title": "Sort icon",
      "description": "Ascending ↔ descending. The arrow's head folds flat across the shaft and turns over to point the other way while the top and bottom bars trade lengths, top first. `active` = descending.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/sort.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/sort.tsx"
        }
      ]
    },
    {
      "name": "icon-sparkle",
      "type": "registry:component",
      "title": "Sparkle icon",
      "description": "Off ↔ on, for AI features and smart modes. The star twirls a quarter turn as it swells and fills, and a small companion star pops in beside it with a settle; switching off deflates it and lets the companion go. `active` = on.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/sparkle.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/sparkle.tsx"
        }
      ]
    },
    {
      "name": "icon-sparkles",
      "type": "registry:component",
      "title": "Sparkles icon",
      "description": "Three sparkles twinkle out of phase: the big one breathes, the small ones blink and turn.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/sparkles.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/sparkles.tsx"
        }
      ]
    },
    {
      "name": "icon-speaker",
      "type": "registry:component",
      "title": "Speaker icon",
      "description": "Playing: the woofer thumps twice and the tweeter flickers with it.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/speaker.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/speaker.tsx"
        }
      ]
    },
    {
      "name": "icon-spline",
      "type": "registry:component",
      "title": "Spline icon",
      "description": "Editing a curve: the anchors nudge toward each other and the curve flexes almost straight, then springs back into its bend.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/spline.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/spline.tsx"
        }
      ]
    },
    {
      "name": "icon-sprout",
      "type": "registry:component",
      "title": "Sprout icon",
      "description": "Growing: the stem stretches up out of the ground and each leaf unfurls from where it joins the stem, the lower one first.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/sprout.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/sprout.tsx"
        }
      ]
    },
    {
      "name": "icon-square-check",
      "type": "registry:component",
      "title": "Square Check icon",
      "description": "Unchecked ↔ checked, for tasks and to-dos. The box opens its top corner and a check is written through it, the long arm breaking out of the box; unchecking erases the check and closes the corner behind it. `active` = checked.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/square-check.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/square-check.tsx"
        }
      ]
    },
    {
      "name": "icon-square-dashed",
      "type": "registry:component",
      "title": "Square Dashed icon",
      "description": "A selection box: the dashed square turns a quarter and lands on its own outline. Rest is 90° so leaving mid-turn completes forwards.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/square-dashed.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/square-dashed.tsx"
        }
      ]
    },
    {
      "name": "icon-square-minus",
      "type": "registry:component",
      "title": "Square Minus icon",
      "description": "The bar pulls in from both ends and springs back out while the box gives under the press.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/square-minus.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/square-minus.tsx"
        }
      ]
    },
    {
      "name": "icon-square-pen",
      "type": "registry:component",
      "title": "Square Pen icon",
      "description": "Editing: the pen scribbles a few quick strokes against the open corner of the page and settles back.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/square-pen.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/square-pen.tsx"
        }
      ]
    },
    {
      "name": "icon-square-plus",
      "type": "registry:component",
      "title": "Square Plus icon",
      "description": "Add → added. The plus swings into a check inside the box and lands with a small settle. `active` = added.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/square-plus.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/square-plus.tsx"
        }
      ]
    },
    {
      "name": "icon-square-x",
      "type": "registry:component",
      "title": "Square X icon",
      "description": "The cross is struck again, one stroke after the other, like marking a box closed.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/square-x.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/square-x.tsx"
        }
      ]
    },
    {
      "name": "icon-square",
      "type": "registry:component",
      "title": "Square icon",
      "description": "A quarter turn: the square dips, turns exactly 90° and lands on its own silhouette. It's 16 units a side, the same area as the r9 circle, so the two read as one size. Rest is 90° so leaving mid-turn completes forwards.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/square.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/square.tsx"
        }
      ]
    },
    {
      "name": "icon-star-half",
      "type": "registry:component",
      "title": "Star Half icon",
      "description": "A half rating: the fill drains out of the left half and pours back in up to the middle.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/star-half.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/star-half.tsx"
        }
      ]
    },
    {
      "name": "icon-star",
      "type": "registry:component",
      "title": "Star icon",
      "description": "A precise one-fifth turn: the star dips, rotates exactly one point and lands on its own silhouette. Rest is 72° so leaving mid-turn completes forwards.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/star.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/star.tsx"
        }
      ]
    },
    {
      "name": "icon-sticky-note",
      "type": "registry:component",
      "title": "Sticky Note icon",
      "description": "The note is peeled up at its corner, flutters, and sticks back down.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/sticky-note.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/sticky-note.tsx"
        }
      ]
    },
    {
      "name": "icon-store",
      "type": "registry:component",
      "title": "Store icon",
      "description": "Open ↔ closed. The awning rolls up into its bar and a roller shutter comes down over the shopfront, slat by slat from under the awning. Opening rolls it back up. `active` = closed.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/store.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/store.tsx"
        }
      ]
    },
    {
      "name": "icon-strikethrough",
      "type": "registry:component",
      "title": "Strikethrough icon",
      "description": "A pen stroke slashes through the letter from left to right, and its two halves jolt apart as it passes, then close.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/strikethrough.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/strikethrough.tsx"
        }
      ]
    },
    {
      "name": "icon-subscript",
      "type": "registry:component",
      "title": "Subscript icon",
      "description": "The small figure dips below the line and bobs back up to its place beside the letter.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/subscript.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/subscript.tsx"
        }
      ]
    },
    {
      "name": "icon-sun",
      "type": "registry:component",
      "title": "Sun icon",
      "description": "Clear skies: the rays turn one step round the sun while the core draws in a breath and glows back out.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/sun.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/sun.tsx"
        }
      ]
    },
    {
      "name": "icon-sunrise",
      "type": "registry:component",
      "title": "Sunrise icon",
      "description": "Sunrise ↔ sunset. The sun sinks behind the horizon, rays and all, as the arrow above turns to point down; sunrise lifts it back up and turns the arrow over. `active` = sunset.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/sunrise.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/sunrise.tsx"
        }
      ]
    },
    {
      "name": "icon-superscript",
      "type": "registry:component",
      "title": "Superscript icon",
      "description": "The small figure lifts above the line and settles back to its place beside the letter.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/superscript.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/superscript.tsx"
        }
      ]
    },
    {
      "name": "icon-table",
      "type": "registry:component",
      "title": "Table icon",
      "description": "A row is inserted: a new row line slides out from under the header rule and drops into place.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/table.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/table.tsx"
        }
      ]
    },
    {
      "name": "icon-tablet",
      "type": "registry:component",
      "title": "Tablet icon",
      "description": "Portrait ↔ landscape. The tablet turns a quarter-turn and dips in scale mid-turn so its corners never leave the grid. `active` = landscape.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/tablet.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/tablet.tsx"
        }
      ]
    },
    {
      "name": "icon-tag",
      "type": "registry:component",
      "title": "Tag icon",
      "description": "The tag swings on its hole like a price tag hanging from a string, damping out to rest.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/tag.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/tag.tsx"
        }
      ]
    },
    {
      "name": "icon-tags",
      "type": "registry:component",
      "title": "Tags icon",
      "description": "The front tag swings on its hole and the one behind follows a beat later, both damping out to rest.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/tags.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/tags.tsx"
        }
      ]
    },
    {
      "name": "icon-target",
      "type": "registry:component",
      "title": "Target icon",
      "description": "Open ↔ hit, for goals and targets reached. An arrow flies in along the diagonal and sticks in the bullseye with a settle, knocking the target back a touch; reopening pulls it out the way it came. `active` = hit.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/target.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/target.tsx"
        }
      ]
    },
    {
      "name": "icon-terminal",
      "type": "registry:component",
      "title": "Terminal icon",
      "description": "The prompt steps forward and the cursor blinks twice, waiting for input.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/terminal.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/terminal.tsx"
        }
      ]
    },
    {
      "name": "icon-text-cursor-input",
      "type": "registry:component",
      "title": "Text Cursor Input icon",
      "description": "The word is deleted back to the caret, typed again in three keystrokes with the caret stepping along behind it, and the caret blinks twice.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/text-cursor-input.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/text-cursor-input.tsx"
        }
      ]
    },
    {
      "name": "icon-text-search",
      "type": "registry:component",
      "title": "Text Search icon",
      "description": "The lens sweeps back along the lines it is reading and returns to its place.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/text-search.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/text-search.tsx"
        }
      ]
    },
    {
      "name": "icon-text-sparkle",
      "type": "registry:component",
      "title": "Text Sparkle icon",
      "description": "Rewrite with AI. Each line of text is taken back and written again, top to bottom, and the star at the end of the paragraph turns a quarter as the last line lands.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/text-sparkle.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/text-sparkle.tsx"
        }
      ]
    },
    {
      "name": "icon-theme",
      "type": "registry:component",
      "title": "Theme icon",
      "description": "Sun ↔ moon. The rays retract into the core one after another, then the core swells and a bite sweeps in to carve the crescent. `active` = dark.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/theme.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/theme.tsx"
        }
      ]
    },
    {
      "name": "icon-thermometer",
      "type": "registry:component",
      "title": "Thermometer icon",
      "description": "Low ↔ high. The bulb flushes and the mercury climbs the tube, nudging each degree mark as it passes; cooling drains it back down. `active` = high.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/thermometer.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/thermometer.tsx"
        }
      ]
    },
    {
      "name": "icon-thumbs-down",
      "type": "registry:component",
      "title": "Thumbs Down icon",
      "description": "Dislike → disliked, the pair to thumbs-up for rating answers. The hand tips up on its wrist, flicks down past level and settles while the palm fills; the cuff stays open. `active` = disliked.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/thumbs-down.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/thumbs-down.tsx"
        }
      ]
    },
    {
      "name": "icon-thumbs-up",
      "type": "registry:component",
      "title": "Thumbs Up icon",
      "description": "Like → liked. The hand tips back on its wrist, flicks forward past upright and settles (an earned bounce) while the palm fills. The cuff stays open. `active` = liked.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/thumbs-up.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/thumbs-up.tsx"
        }
      ]
    },
    {
      "name": "icon-ticket",
      "type": "registry:component",
      "title": "Ticket icon",
      "description": "Valid ↔ used, for tickets, passes and coupons. The stub tears away along the perforation and drops loose as the perforation marks go with it; restoring it presses the stub back into place. `active` = used.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/ticket.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/ticket.tsx"
        }
      ]
    },
    {
      "name": "icon-timer",
      "type": "registry:component",
      "title": "Timer icon",
      "description": "The crown is pressed and the hand runs one full lap, landing back on its mark. The hand rests at a full turn, so leaving mid-lap finishes forwards.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/timer.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/timer.tsx"
        }
      ]
    },
    {
      "name": "icon-toggle",
      "type": "registry:component",
      "title": "Toggle icon",
      "description": "Off ↔ on. The knob stretches across the track like a drop of mercury, its far end arriving first, then gathers itself at the other stop and fills; switching off drains it and throws it back the same way. `active` = on.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/toggle.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/toggle.tsx"
        }
      ]
    },
    {
      "name": "icon-tornado",
      "type": "registry:component",
      "title": "Tornado icon",
      "description": "The funnel twists: each band sways the other way from the one above it.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/tornado.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/tornado.tsx"
        }
      ]
    },
    {
      "name": "icon-train",
      "type": "registry:component",
      "title": "Train icon",
      "description": "Arriving: the train rocks on the rails and its headlights flash.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/train.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/train.tsx"
        }
      ]
    },
    {
      "name": "icon-trash",
      "type": "registry:component",
      "title": "Trash icon",
      "description": "The lid lifts off its left hinge and hangs open while hovered.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/trash.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/trash.tsx"
        }
      ]
    },
    {
      "name": "icon-trending-down",
      "type": "registry:component",
      "title": "Trending Down icon",
      "description": "Falling ↔ rising. The trend flips through its flat midpoint to its mirror image and the arrowhead turns with the line's end. `active` = rising.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/trending-down.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/trending-down.tsx"
        }
      ]
    },
    {
      "name": "icon-trending-up",
      "type": "registry:component",
      "title": "Trending Up icon",
      "description": "The trend is drawn upward and the arrowhead is pushed out ahead of it.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/trending-up.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/trending-up.tsx"
        }
      ]
    },
    {
      "name": "icon-triangle",
      "type": "registry:component",
      "title": "Triangle icon",
      "description": "A third of a turn: the triangle tightens, rotates one corner on and lands on its own outline. Rest is 120° so leaving mid-turn completes forwards.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/triangle.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/triangle.tsx"
        }
      ]
    },
    {
      "name": "icon-trophy",
      "type": "registry:component",
      "title": "Trophy icon",
      "description": "Unearned ↔ earned. The cup fills from the bottom up, then the trophy hops and lands on its base with a settle; giving it back drains the cup. `active` = earned.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/trophy.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/trophy.tsx"
        }
      ]
    },
    {
      "name": "icon-truck",
      "type": "registry:component",
      "title": "Truck icon",
      "description": "Dispatch: the truck rocks back, surges forward nose-up as speed lines streak off its tail, then rolls back onto its mark.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/truck.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/truck.tsx"
        }
      ]
    },
    {
      "name": "icon-tv",
      "type": "registry:component",
      "title": "Tv icon",
      "description": "Finding a channel: the antenna is nudged one way and the other until the picture settles.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/tv.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/tv.tsx"
        }
      ]
    },
    {
      "name": "icon-type",
      "type": "registry:component",
      "title": "Type icon",
      "description": "Typesetting: the crossbar is ruled out from the stem to both serifs, then the foot is set beneath it.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/type.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/type.tsx"
        }
      ]
    },
    {
      "name": "icon-umbrella",
      "type": "registry:component",
      "title": "Umbrella icon",
      "description": "Shaking off the rain: the canopy furls tight around the shaft, then snaps back open and flicks a drop off each rib end.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/umbrella.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/umbrella.tsx"
        }
      ]
    },
    {
      "name": "icon-underline",
      "type": "registry:component",
      "title": "Underline icon",
      "description": "The rule is struck beneath the letter from left to right while the letter lifts to make room, then settles onto it.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/underline.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/underline.tsx"
        }
      ]
    },
    {
      "name": "icon-undo",
      "type": "registry:component",
      "title": "Undo icon",
      "description": "Undo ↔ redo. The arrow turns over like a card on its vertical axis, so the head and the hook trade sides; holding Shift in an editor is the natural trigger. Toggling mid-turn turns it back. `active` = redo.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/undo.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/undo.tsx"
        }
      ]
    },
    {
      "name": "icon-unlink",
      "type": "registry:component",
      "title": "Unlink icon",
      "description": "Linked ↔ unlinked, for links and locked aspect ratios. The bar snaps and the halves spring apart, throwing sparks from the break; relinking pulls them back together and the bar rejoins them. `active` = unlinked.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/unlink.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/unlink.tsx"
        }
      ]
    },
    {
      "name": "icon-upload",
      "type": "registry:component",
      "title": "Upload icon",
      "description": "The tray pushes, the arrow launches out of the top and a new one rises from the tray.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/upload.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/upload.tsx"
        }
      ]
    },
    {
      "name": "icon-usb",
      "type": "registry:component",
      "title": "Usb icon",
      "description": "Plugging in: the connector pushes up into the port and eases back.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/usb.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/usb.tsx"
        }
      ]
    },
    {
      "name": "icon-user-check",
      "type": "registry:component",
      "title": "User Check icon",
      "description": "Verified: the check is signed off beside the person, lands with a small settle, and the person nods.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/user-check.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/user-check.tsx"
        }
      ]
    },
    {
      "name": "icon-user-cog",
      "type": "registry:component",
      "title": "User Cog icon",
      "description": "Account settings: the cog beside the person turns one tooth on and the person nods.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/user-cog.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/user-cog.tsx"
        }
      ]
    },
    {
      "name": "icon-user-minus",
      "type": "registry:component",
      "title": "User Minus icon",
      "description": "Removing someone: the minus is struck toward the person, who steps back and fades before returning.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/user-minus.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/user-minus.tsx"
        }
      ]
    },
    {
      "name": "icon-user-pen",
      "type": "registry:component",
      "title": "User Pen icon",
      "description": "Edit profile: the pen beside the person scribbles and the person nods.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/user-pen.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/user-pen.tsx"
        }
      ]
    },
    {
      "name": "icon-user-plus",
      "type": "registry:component",
      "title": "User Plus icon",
      "description": "Invite → invited. The plus swings into a check and the person gives a welcoming nod. `active` = invited.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/user-plus.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/user-plus.tsx"
        }
      ]
    },
    {
      "name": "icon-user-search",
      "type": "registry:component",
      "title": "User Search icon",
      "description": "Finding someone: the lens beside the person looks up and down and the person nods.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/user-search.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/user-search.tsx"
        }
      ]
    },
    {
      "name": "icon-user-shield",
      "type": "registry:component",
      "title": "User Shield icon",
      "description": "Protected account: the shield beside the person braces and springs back, and the person nods.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/user-shield.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/user-shield.tsx"
        }
      ]
    },
    {
      "name": "icon-user-x",
      "type": "registry:component",
      "title": "User X icon",
      "description": "Remove someone. The × turns a quarter beside the person, tucking in as it goes, while the person leans back from it and rights again.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/user-x.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/user-x.tsx"
        }
      ]
    },
    {
      "name": "icon-user",
      "type": "registry:component",
      "title": "User icon",
      "description": "A small nod: the head dips and comes back up, and the shoulders follow through a beat later.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/user.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/user.tsx"
        }
      ]
    },
    {
      "name": "icon-users",
      "type": "registry:component",
      "title": "Users icon",
      "description": "The group acknowledges you: a nod runs from the front person to the one behind.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/users.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/users.tsx"
        }
      ]
    },
    {
      "name": "icon-variable",
      "type": "registry:component",
      "title": "Variable icon",
      "description": "The brackets close in on the x as it turns a quarter, then let go.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/variable.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/variable.tsx"
        }
      ]
    },
    {
      "name": "icon-vault",
      "type": "registry:component",
      "title": "Vault icon",
      "description": "Cracking the combination: the wheel turns one way, back the other, and settles.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/vault.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/vault.tsx"
        }
      ]
    },
    {
      "name": "icon-verified",
      "type": "registry:component",
      "title": "Verified icon",
      "description": "Unverified ↔ verified, for accounts and publishers. The plain badge crimps into a rosette with a stamp's twist and the check is inked inside it; revoking erases the check and smooths the rosette back into a circle. `active` = verified.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/verified.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/verified.tsx"
        }
      ]
    },
    {
      "name": "icon-video",
      "type": "registry:component",
      "title": "Video icon",
      "description": "Camera on ↔ off. The lens blinks shut as the feed cuts and a slash is drawn through, with a matching gap masked behind it. Turning it back on pulls the slash out and the lens blinks open. `active` = off.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/video.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/video.tsx"
        }
      ]
    },
    {
      "name": "icon-voicemail",
      "type": "registry:component",
      "title": "Voicemail icon",
      "description": "The message plays: the two reels draw in on the tape and let it out again.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/voicemail.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/voicemail.tsx"
        }
      ]
    },
    {
      "name": "icon-volume",
      "type": "registry:component",
      "title": "Volume icon",
      "description": "Volume ↔ muted. The sound waves retract outermost-first, then the × is crossed out stroke by stroke. Unmuting plays it back in reverse order.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/volume.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/volume.tsx"
        }
      ]
    },
    {
      "name": "icon-wallet",
      "type": "registry:component",
      "title": "Wallet icon",
      "description": "Paying from the wallet: the clasp tab slips open and a card slides up out of the top at a tilt, held while hovered.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/wallet.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/wallet.tsx"
        }
      ]
    },
    {
      "name": "icon-wand",
      "type": "registry:component",
      "title": "Wand icon",
      "description": "A flick of the wand: it swings from the wrist, the star at its tip spins a quarter turn, and two glints wink on in its wake. Rest is the quarter turn, so leaving mid-spin finishes forwards.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/wand.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/wand.tsx"
        }
      ]
    },
    {
      "name": "icon-watch",
      "type": "registry:component",
      "title": "Watch icon",
      "description": "Setting the time: the crown pulls out, the minute hand sweeps a full hour, and the crown clicks back in. Rest is 360° so leaving mid-sweep finishes the turn forwards.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/watch.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/watch.tsx"
        }
      ]
    },
    {
      "name": "icon-waves",
      "type": "registry:component",
      "title": "Waves icon",
      "description": "Waves ↔ calm, for sea state, noise and vibration. The waves smooth out line by line from the top until the water is flat; stirring it raises them again from the bottom. `active` = calm.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/waves.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/waves.tsx"
        }
      ]
    },
    {
      "name": "icon-webcam",
      "type": "registry:component",
      "title": "Webcam icon",
      "description": "The lens looks around the room, left then right, and comes back to you.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/webcam.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/webcam.tsx"
        }
      ]
    },
    {
      "name": "icon-webhook",
      "type": "registry:component",
      "title": "Webhook icon",
      "description": "An event is delivered: the payload is handed from hook to hook around the loop, each one re-traced as it arrives.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/webhook.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/webhook.tsx"
        }
      ]
    },
    {
      "name": "icon-wifi-off",
      "type": "registry:component",
      "title": "Wifi Off icon",
      "description": "Offline ↔ online. The slash is pulled out and the gap closes, then the signal comes back from the source outward, one arc at a time; dropping the connection strikes the slash back through. `active` = online.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/wifi-off.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/wifi-off.tsx"
        }
      ]
    },
    {
      "name": "icon-wifi",
      "type": "registry:component",
      "title": "Wifi icon",
      "description": "Searching for signal: the arcs go dark, then light up from the source outward.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/wifi.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/wifi.tsx"
        }
      ]
    },
    {
      "name": "icon-wind",
      "type": "registry:component",
      "title": "Wind icon",
      "description": "A gust: each stream is blown through, its tail running off into the curl, and a fresh stream blows in from the left behind it, one after another.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/wind.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/wind.tsx"
        }
      ]
    },
    {
      "name": "icon-workflow",
      "type": "registry:component",
      "title": "Workflow icon",
      "description": "A run: the first step presses, the connector carries the signal down and across, and the next step lights up as it arrives.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/workflow.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/workflow.tsx"
        }
      ]
    },
    {
      "name": "icon-wrap-text",
      "type": "registry:component",
      "title": "Wrap Text icon",
      "description": "No wrap ↔ wrap, for editors and code views. The overflowing line curls down at the margin and runs back along the next line, and an arrowhead lands at its end; unwrapping erases the head and straightens the line out to the edge. `active` = wrap.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/wrap-text.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/wrap-text.tsx"
        }
      ]
    },
    {
      "name": "icon-wrench",
      "type": "registry:component",
      "title": "Wrench icon",
      "description": "A ratchet turn: the wrench swings on the nut in its jaw, a quick pull and a precise return, dipping in scale so the handle never leaves the grid.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/wrench.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/wrench.tsx"
        }
      ]
    },
    {
      "name": "icon-x",
      "type": "registry:component",
      "title": "X icon",
      "description": "Close. The cross turns a quarter on its center, tucking in as it goes, and lands on its own silhouette.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/x.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/x.tsx"
        }
      ]
    },
    {
      "name": "icon-yen",
      "type": "registry:component",
      "title": "Yen icon",
      "description": "Money in yen: the arms are written again down to the stem.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/yen.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/yen.tsx"
        }
      ]
    },
    {
      "name": "icon-zap",
      "type": "registry:component",
      "title": "Zap icon",
      "description": "A charge runs the length of the bolt as it is redrawn from the top, and the bolt kicks down with the strike.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/zap.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/zap.tsx"
        }
      ]
    },
    {
      "name": "icon-zoom-in",
      "type": "registry:component",
      "title": "Zoom In icon",
      "description": "Zoom in ↔ zoom out. The lens pulls back a touch as the plus folds its upright into the crossbar; zooming in again pushes the lens forward and the upright springs back out of the center. `active` = zoom out.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/zoom-in.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/zoom-in.tsx"
        }
      ]
    },
    {
      "name": "icon-zoom-out",
      "type": "registry:component",
      "title": "Zoom Out icon",
      "description": "Zoom out. The lens pulls back a step while the minus narrows and widens again.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/zoom-out.tsx",
          "type": "registry:component",
          "target": "components/youj/icons/zoom-out.tsx"
        }
      ]
    },
    {
      "name": "icons",
      "type": "registry:component",
      "title": "Youj icon set",
      "description": "All 511 animated icons, YoujIcon and the engine, with an index that exports them plus an `icons` array.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-engine.json",
        "https://www.youj.dev/r/youj-icon.json",
        "https://www.youj.dev/r/icon-swap.json",
        "https://www.youj.dev/r/icon-morph.json",
        "https://www.youj.dev/r/use-icon-state.json",
        "https://www.youj.dev/r/icon-accessibility.json",
        "https://www.youj.dev/r/icon-activity.json",
        "https://www.youj.dev/r/icon-alarm-clock.json",
        "https://www.youj.dev/r/icon-alert-triangle.json",
        "https://www.youj.dev/r/icon-align-center-horizontal.json",
        "https://www.youj.dev/r/icon-align-center-vertical.json",
        "https://www.youj.dev/r/icon-align-center.json",
        "https://www.youj.dev/r/icon-align-end-horizontal.json",
        "https://www.youj.dev/r/icon-align-end-vertical.json",
        "https://www.youj.dev/r/icon-align-justify.json",
        "https://www.youj.dev/r/icon-align-left.json",
        "https://www.youj.dev/r/icon-align-right.json",
        "https://www.youj.dev/r/icon-align-start-horizontal.json",
        "https://www.youj.dev/r/icon-align-start-vertical.json",
        "https://www.youj.dev/r/icon-anchor.json",
        "https://www.youj.dev/r/icon-aperture.json",
        "https://www.youj.dev/r/icon-app-window.json",
        "https://www.youj.dev/r/icon-archive-restore.json",
        "https://www.youj.dev/r/icon-archive.json",
        "https://www.youj.dev/r/icon-arrow-down-left.json",
        "https://www.youj.dev/r/icon-arrow-down-right.json",
        "https://www.youj.dev/r/icon-arrow-down-to-line.json",
        "https://www.youj.dev/r/icon-arrow-down.json",
        "https://www.youj.dev/r/icon-arrow-left-right.json",
        "https://www.youj.dev/r/icon-arrow-left.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-arrow-up-down.json",
        "https://www.youj.dev/r/icon-arrow-up-left.json",
        "https://www.youj.dev/r/icon-arrow-up-right.json",
        "https://www.youj.dev/r/icon-arrow-up-to-line.json",
        "https://www.youj.dev/r/icon-arrow-up.json",
        "https://www.youj.dev/r/icon-asterisk.json",
        "https://www.youj.dev/r/icon-at-sign.json",
        "https://www.youj.dev/r/icon-audio-lines.json",
        "https://www.youj.dev/r/icon-award.json",
        "https://www.youj.dev/r/icon-backspace.json",
        "https://www.youj.dev/r/icon-badge-check.json",
        "https://www.youj.dev/r/icon-badge-percent.json",
        "https://www.youj.dev/r/icon-ban.json",
        "https://www.youj.dev/r/icon-banknote.json",
        "https://www.youj.dev/r/icon-bar-chart.json",
        "https://www.youj.dev/r/icon-baseline.json",
        "https://www.youj.dev/r/icon-battery-charging.json",
        "https://www.youj.dev/r/icon-battery-low.json",
        "https://www.youj.dev/r/icon-battery.json",
        "https://www.youj.dev/r/icon-bell-dot.json",
        "https://www.youj.dev/r/icon-bell-off.json",
        "https://www.youj.dev/r/icon-bell-plus.json",
        "https://www.youj.dev/r/icon-bell.json",
        "https://www.youj.dev/r/icon-bike.json",
        "https://www.youj.dev/r/icon-binary.json",
        "https://www.youj.dev/r/icon-bluetooth.json",
        "https://www.youj.dev/r/icon-bold.json",
        "https://www.youj.dev/r/icon-book-open.json",
        "https://www.youj.dev/r/icon-book.json",
        "https://www.youj.dev/r/icon-bookmark-plus.json",
        "https://www.youj.dev/r/icon-bookmark.json",
        "https://www.youj.dev/r/icon-bot.json",
        "https://www.youj.dev/r/icon-braces.json",
        "https://www.youj.dev/r/icon-brand-discord.json",
        "https://www.youj.dev/r/icon-brand-figma.json",
        "https://www.youj.dev/r/icon-brand-github.json",
        "https://www.youj.dev/r/icon-brand-linkedin.json",
        "https://www.youj.dev/r/icon-brand-x.json",
        "https://www.youj.dev/r/icon-briefcase.json",
        "https://www.youj.dev/r/icon-brightness.json",
        "https://www.youj.dev/r/icon-brush.json",
        "https://www.youj.dev/r/icon-bug.json",
        "https://www.youj.dev/r/icon-building.json",
        "https://www.youj.dev/r/icon-bus.json",
        "https://www.youj.dev/r/icon-calculator.json",
        "https://www.youj.dev/r/icon-calendar-check.json",
        "https://www.youj.dev/r/icon-calendar-clock.json",
        "https://www.youj.dev/r/icon-calendar-minus.json",
        "https://www.youj.dev/r/icon-calendar-plus.json",
        "https://www.youj.dev/r/icon-calendar-range.json",
        "https://www.youj.dev/r/icon-calendar-x.json",
        "https://www.youj.dev/r/icon-calendar.json",
        "https://www.youj.dev/r/icon-camera-off.json",
        "https://www.youj.dev/r/icon-camera.json",
        "https://www.youj.dev/r/icon-caps-lock.json",
        "https://www.youj.dev/r/icon-captions.json",
        "https://www.youj.dev/r/icon-car.json",
        "https://www.youj.dev/r/icon-case-sensitive.json",
        "https://www.youj.dev/r/icon-cast.json",
        "https://www.youj.dev/r/icon-chart-area.json",
        "https://www.youj.dev/r/icon-chart-candlestick.json",
        "https://www.youj.dev/r/icon-chart-donut.json",
        "https://www.youj.dev/r/icon-chart-scatter.json",
        "https://www.youj.dev/r/icon-chart-spline.json",
        "https://www.youj.dev/r/icon-check-check.json",
        "https://www.youj.dev/r/icon-check-circle.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-chevron-down.json",
        "https://www.youj.dev/r/icon-chevron-left.json",
        "https://www.youj.dev/r/icon-chevron-right.json",
        "https://www.youj.dev/r/icon-chevron-up.json",
        "https://www.youj.dev/r/icon-chevrons-down.json",
        "https://www.youj.dev/r/icon-chevrons-left-right.json",
        "https://www.youj.dev/r/icon-chevrons-left.json",
        "https://www.youj.dev/r/icon-chevrons-right.json",
        "https://www.youj.dev/r/icon-chevrons-up-down.json",
        "https://www.youj.dev/r/icon-chevrons-up.json",
        "https://www.youj.dev/r/icon-circle-alert.json",
        "https://www.youj.dev/r/icon-circle-arrow-down.json",
        "https://www.youj.dev/r/icon-circle-arrow-left.json",
        "https://www.youj.dev/r/icon-circle-arrow-right.json",
        "https://www.youj.dev/r/icon-circle-arrow-up.json",
        "https://www.youj.dev/r/icon-circle-dashed.json",
        "https://www.youj.dev/r/icon-circle-dollar.json",
        "https://www.youj.dev/r/icon-circle-dot.json",
        "https://www.youj.dev/r/icon-circle-help.json",
        "https://www.youj.dev/r/icon-circle-minus.json",
        "https://www.youj.dev/r/icon-circle-pause.json",
        "https://www.youj.dev/r/icon-circle-play.json",
        "https://www.youj.dev/r/icon-circle-plus.json",
        "https://www.youj.dev/r/icon-circle-user.json",
        "https://www.youj.dev/r/icon-circle-x.json",
        "https://www.youj.dev/r/icon-circle.json",
        "https://www.youj.dev/r/icon-clapperboard.json",
        "https://www.youj.dev/r/icon-clipboard-list.json",
        "https://www.youj.dev/r/icon-clipboard.json",
        "https://www.youj.dev/r/icon-clock.json",
        "https://www.youj.dev/r/icon-cloud-download.json",
        "https://www.youj.dev/r/icon-cloud-fog.json",
        "https://www.youj.dev/r/icon-cloud-lightning.json",
        "https://www.youj.dev/r/icon-cloud-moon.json",
        "https://www.youj.dev/r/icon-cloud-off.json",
        "https://www.youj.dev/r/icon-cloud-rain.json",
        "https://www.youj.dev/r/icon-cloud-snow.json",
        "https://www.youj.dev/r/icon-cloud-sun.json",
        "https://www.youj.dev/r/icon-cloud-upload.json",
        "https://www.youj.dev/r/icon-cloud.json",
        "https://www.youj.dev/r/icon-code-xml.json",
        "https://www.youj.dev/r/icon-code.json",
        "https://www.youj.dev/r/icon-coffee.json",
        "https://www.youj.dev/r/icon-coins.json",
        "https://www.youj.dev/r/icon-columns.json",
        "https://www.youj.dev/r/icon-command.json",
        "https://www.youj.dev/r/icon-compass.json",
        "https://www.youj.dev/r/icon-contact.json",
        "https://www.youj.dev/r/icon-container.json",
        "https://www.youj.dev/r/icon-contrast.json",
        "https://www.youj.dev/r/icon-cookie.json",
        "https://www.youj.dev/r/icon-copy-plus.json",
        "https://www.youj.dev/r/icon-copy.json",
        "https://www.youj.dev/r/icon-corner-down-left.json",
        "https://www.youj.dev/r/icon-corner-down-right.json",
        "https://www.youj.dev/r/icon-corner-up-left.json",
        "https://www.youj.dev/r/icon-corner-up-right.json",
        "https://www.youj.dev/r/icon-cpu.json",
        "https://www.youj.dev/r/icon-credit-card.json",
        "https://www.youj.dev/r/icon-crop.json",
        "https://www.youj.dev/r/icon-crosshair.json",
        "https://www.youj.dev/r/icon-crown.json",
        "https://www.youj.dev/r/icon-database.json",
        "https://www.youj.dev/r/icon-disc.json",
        "https://www.youj.dev/r/icon-divide.json",
        "https://www.youj.dev/r/icon-dollar-sign.json",
        "https://www.youj.dev/r/icon-door.json",
        "https://www.youj.dev/r/icon-dot.json",
        "https://www.youj.dev/r/icon-download.json",
        "https://www.youj.dev/r/icon-droplet.json",
        "https://www.youj.dev/r/icon-droplets.json",
        "https://www.youj.dev/r/icon-eject.json",
        "https://www.youj.dev/r/icon-ellipsis-vertical.json",
        "https://www.youj.dev/r/icon-ellipsis.json",
        "https://www.youj.dev/r/icon-equal.json",
        "https://www.youj.dev/r/icon-eraser.json",
        "https://www.youj.dev/r/icon-euro.json",
        "https://www.youj.dev/r/icon-external-link.json",
        "https://www.youj.dev/r/icon-eye-closed.json",
        "https://www.youj.dev/r/icon-eye-off.json",
        "https://www.youj.dev/r/icon-eye.json",
        "https://www.youj.dev/r/icon-factory.json",
        "https://www.youj.dev/r/icon-fast-forward.json",
        "https://www.youj.dev/r/icon-file-archive.json",
        "https://www.youj.dev/r/icon-file-audio.json",
        "https://www.youj.dev/r/icon-file-check.json",
        "https://www.youj.dev/r/icon-file-code.json",
        "https://www.youj.dev/r/icon-file-diff.json",
        "https://www.youj.dev/r/icon-file-image.json",
        "https://www.youj.dev/r/icon-file-json.json",
        "https://www.youj.dev/r/icon-file-lock.json",
        "https://www.youj.dev/r/icon-file-minus.json",
        "https://www.youj.dev/r/icon-file-pen.json",
        "https://www.youj.dev/r/icon-file-plus.json",
        "https://www.youj.dev/r/icon-file-search.json",
        "https://www.youj.dev/r/icon-file-spreadsheet.json",
        "https://www.youj.dev/r/icon-file-terminal.json",
        "https://www.youj.dev/r/icon-file-text.json",
        "https://www.youj.dev/r/icon-file-video.json",
        "https://www.youj.dev/r/icon-file-x.json",
        "https://www.youj.dev/r/icon-file.json",
        "https://www.youj.dev/r/icon-files.json",
        "https://www.youj.dev/r/icon-film.json",
        "https://www.youj.dev/r/icon-filter.json",
        "https://www.youj.dev/r/icon-fingerprint.json",
        "https://www.youj.dev/r/icon-flag.json",
        "https://www.youj.dev/r/icon-flame.json",
        "https://www.youj.dev/r/icon-flask.json",
        "https://www.youj.dev/r/icon-flip-horizontal.json",
        "https://www.youj.dev/r/icon-flip-vertical.json",
        "https://www.youj.dev/r/icon-folder-check.json",
        "https://www.youj.dev/r/icon-folder-input.json",
        "https://www.youj.dev/r/icon-folder-lock.json",
        "https://www.youj.dev/r/icon-folder-minus.json",
        "https://www.youj.dev/r/icon-folder-open.json",
        "https://www.youj.dev/r/icon-folder-plus.json",
        "https://www.youj.dev/r/icon-folder-search.json",
        "https://www.youj.dev/r/icon-folder-tree.json",
        "https://www.youj.dev/r/icon-folder.json",
        "https://www.youj.dev/r/icon-folders.json",
        "https://www.youj.dev/r/icon-forward.json",
        "https://www.youj.dev/r/icon-frame.json",
        "https://www.youj.dev/r/icon-frown.json",
        "https://www.youj.dev/r/icon-fuel.json",
        "https://www.youj.dev/r/icon-function.json",
        "https://www.youj.dev/r/icon-funnel.json",
        "https://www.youj.dev/r/icon-gamepad.json",
        "https://www.youj.dev/r/icon-gauge.json",
        "https://www.youj.dev/r/icon-gem.json",
        "https://www.youj.dev/r/icon-gift.json",
        "https://www.youj.dev/r/icon-git-branch.json",
        "https://www.youj.dev/r/icon-git-commit.json",
        "https://www.youj.dev/r/icon-git-compare.json",
        "https://www.youj.dev/r/icon-git-fork.json",
        "https://www.youj.dev/r/icon-git-merge.json",
        "https://www.youj.dev/r/icon-git-pull-request-closed.json",
        "https://www.youj.dev/r/icon-git-pull-request-draft.json",
        "https://www.youj.dev/r/icon-git-pull-request.json",
        "https://www.youj.dev/r/icon-globe.json",
        "https://www.youj.dev/r/icon-grid.json",
        "https://www.youj.dev/r/icon-grip-horizontal.json",
        "https://www.youj.dev/r/icon-grip.json",
        "https://www.youj.dev/r/icon-hammer.json",
        "https://www.youj.dev/r/icon-hand.json",
        "https://www.youj.dev/r/icon-hard-drive.json",
        "https://www.youj.dev/r/icon-hash.json",
        "https://www.youj.dev/r/icon-heading.json",
        "https://www.youj.dev/r/icon-headphones.json",
        "https://www.youj.dev/r/icon-headset.json",
        "https://www.youj.dev/r/icon-heart.json",
        "https://www.youj.dev/r/icon-hexagon.json",
        "https://www.youj.dev/r/icon-highlighter.json",
        "https://www.youj.dev/r/icon-history.json",
        "https://www.youj.dev/r/icon-home.json",
        "https://www.youj.dev/r/icon-hourglass.json",
        "https://www.youj.dev/r/icon-id-card.json",
        "https://www.youj.dev/r/icon-image-plus.json",
        "https://www.youj.dev/r/icon-image.json",
        "https://www.youj.dev/r/icon-images.json",
        "https://www.youj.dev/r/icon-inbox.json",
        "https://www.youj.dev/r/icon-indent.json",
        "https://www.youj.dev/r/icon-infinity.json",
        "https://www.youj.dev/r/icon-info.json",
        "https://www.youj.dev/r/icon-italic.json",
        "https://www.youj.dev/r/icon-kanban.json",
        "https://www.youj.dev/r/icon-key.json",
        "https://www.youj.dev/r/icon-keyboard.json",
        "https://www.youj.dev/r/icon-landmark.json",
        "https://www.youj.dev/r/icon-languages.json",
        "https://www.youj.dev/r/icon-laptop.json",
        "https://www.youj.dev/r/icon-lasso.json",
        "https://www.youj.dev/r/icon-layers.json",
        "https://www.youj.dev/r/icon-layout-dashboard.json",
        "https://www.youj.dev/r/icon-layout-grid.json",
        "https://www.youj.dev/r/icon-layout-list.json",
        "https://www.youj.dev/r/icon-leaf.json",
        "https://www.youj.dev/r/icon-library.json",
        "https://www.youj.dev/r/icon-life-buoy.json",
        "https://www.youj.dev/r/icon-lightbulb.json",
        "https://www.youj.dev/r/icon-line-chart.json",
        "https://www.youj.dev/r/icon-link.json",
        "https://www.youj.dev/r/icon-list-checks.json",
        "https://www.youj.dev/r/icon-list-collapse.json",
        "https://www.youj.dev/r/icon-list-music.json",
        "https://www.youj.dev/r/icon-list-ordered.json",
        "https://www.youj.dev/r/icon-list-plus.json",
        "https://www.youj.dev/r/icon-list.json",
        "https://www.youj.dev/r/icon-loader-dots.json",
        "https://www.youj.dev/r/icon-loader-ring.json",
        "https://www.youj.dev/r/icon-lock-open.json",
        "https://www.youj.dev/r/icon-lock.json",
        "https://www.youj.dev/r/icon-log-in.json",
        "https://www.youj.dev/r/icon-log-out.json",
        "https://www.youj.dev/r/icon-logs.json",
        "https://www.youj.dev/r/icon-magnet.json",
        "https://www.youj.dev/r/icon-mail-check.json",
        "https://www.youj.dev/r/icon-mail-open.json",
        "https://www.youj.dev/r/icon-mail-plus.json",
        "https://www.youj.dev/r/icon-mail.json",
        "https://www.youj.dev/r/icon-mailbox.json",
        "https://www.youj.dev/r/icon-map-pin-off.json",
        "https://www.youj.dev/r/icon-map-pin-plus.json",
        "https://www.youj.dev/r/icon-map-pin.json",
        "https://www.youj.dev/r/icon-map.json",
        "https://www.youj.dev/r/icon-maximize.json",
        "https://www.youj.dev/r/icon-megaphone.json",
        "https://www.youj.dev/r/icon-meh.json",
        "https://www.youj.dev/r/icon-memory-stick.json",
        "https://www.youj.dev/r/icon-menu.json",
        "https://www.youj.dev/r/icon-message-dots.json",
        "https://www.youj.dev/r/icon-message-heart.json",
        "https://www.youj.dev/r/icon-message-plus.json",
        "https://www.youj.dev/r/icon-message-question.json",
        "https://www.youj.dev/r/icon-message-sparkle.json",
        "https://www.youj.dev/r/icon-message.json",
        "https://www.youj.dev/r/icon-messages.json",
        "https://www.youj.dev/r/icon-mic.json",
        "https://www.youj.dev/r/icon-minimize.json",
        "https://www.youj.dev/r/icon-minus.json",
        "https://www.youj.dev/r/icon-monitor.json",
        "https://www.youj.dev/r/icon-moon.json",
        "https://www.youj.dev/r/icon-more-horizontal.json",
        "https://www.youj.dev/r/icon-more-vertical.json",
        "https://www.youj.dev/r/icon-mountain.json",
        "https://www.youj.dev/r/icon-mouse-pointer.json",
        "https://www.youj.dev/r/icon-mouse.json",
        "https://www.youj.dev/r/icon-move.json",
        "https://www.youj.dev/r/icon-music.json",
        "https://www.youj.dev/r/icon-navigation.json",
        "https://www.youj.dev/r/icon-network.json",
        "https://www.youj.dev/r/icon-newspaper.json",
        "https://www.youj.dev/r/icon-nfc.json",
        "https://www.youj.dev/r/icon-notebook.json",
        "https://www.youj.dev/r/icon-octagon-alert.json",
        "https://www.youj.dev/r/icon-package.json",
        "https://www.youj.dev/r/icon-paint-bucket.json",
        "https://www.youj.dev/r/icon-paint-roller.json",
        "https://www.youj.dev/r/icon-palette.json",
        "https://www.youj.dev/r/icon-panel-bottom.json",
        "https://www.youj.dev/r/icon-panel-right.json",
        "https://www.youj.dev/r/icon-paperclip.json",
        "https://www.youj.dev/r/icon-party-popper.json",
        "https://www.youj.dev/r/icon-pen-tool.json",
        "https://www.youj.dev/r/icon-pencil.json",
        "https://www.youj.dev/r/icon-percent.json",
        "https://www.youj.dev/r/icon-phone-call.json",
        "https://www.youj.dev/r/icon-phone-incoming.json",
        "https://www.youj.dev/r/icon-phone-missed.json",
        "https://www.youj.dev/r/icon-phone-off.json",
        "https://www.youj.dev/r/icon-phone-outgoing.json",
        "https://www.youj.dev/r/icon-phone.json",
        "https://www.youj.dev/r/icon-picture-in-picture.json",
        "https://www.youj.dev/r/icon-pie-chart.json",
        "https://www.youj.dev/r/icon-piggy-bank.json",
        "https://www.youj.dev/r/icon-pilcrow.json",
        "https://www.youj.dev/r/icon-pin-off.json",
        "https://www.youj.dev/r/icon-pin.json",
        "https://www.youj.dev/r/icon-pipette.json",
        "https://www.youj.dev/r/icon-plane.json",
        "https://www.youj.dev/r/icon-play.json",
        "https://www.youj.dev/r/icon-plug.json",
        "https://www.youj.dev/r/icon-plus-minus.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/icon-podcast.json",
        "https://www.youj.dev/r/icon-pound-sterling.json",
        "https://www.youj.dev/r/icon-power.json",
        "https://www.youj.dev/r/icon-presentation.json",
        "https://www.youj.dev/r/icon-printer.json",
        "https://www.youj.dev/r/icon-puzzle.json",
        "https://www.youj.dev/r/icon-qr-code.json",
        "https://www.youj.dev/r/icon-quote.json",
        "https://www.youj.dev/r/icon-radar.json",
        "https://www.youj.dev/r/icon-radio.json",
        "https://www.youj.dev/r/icon-rainbow.json",
        "https://www.youj.dev/r/icon-receipt.json",
        "https://www.youj.dev/r/icon-record.json",
        "https://www.youj.dev/r/icon-rectangle-horizontal.json",
        "https://www.youj.dev/r/icon-redo.json",
        "https://www.youj.dev/r/icon-refresh.json",
        "https://www.youj.dev/r/icon-regex.json",
        "https://www.youj.dev/r/icon-remove-formatting.json",
        "https://www.youj.dev/r/icon-repeat.json",
        "https://www.youj.dev/r/icon-replace.json",
        "https://www.youj.dev/r/icon-reply.json",
        "https://www.youj.dev/r/icon-responsive.json",
        "https://www.youj.dev/r/icon-rewind.json",
        "https://www.youj.dev/r/icon-rocket.json",
        "https://www.youj.dev/r/icon-rotate-ccw.json",
        "https://www.youj.dev/r/icon-rotate-cw.json",
        "https://www.youj.dev/r/icon-route.json",
        "https://www.youj.dev/r/icon-router.json",
        "https://www.youj.dev/r/icon-rows-2.json",
        "https://www.youj.dev/r/icon-rows.json",
        "https://www.youj.dev/r/icon-rss.json",
        "https://www.youj.dev/r/icon-ruler.json",
        "https://www.youj.dev/r/icon-save.json",
        "https://www.youj.dev/r/icon-scan-barcode.json",
        "https://www.youj.dev/r/icon-scan-face.json",
        "https://www.youj.dev/r/icon-scissors.json",
        "https://www.youj.dev/r/icon-screen-share.json",
        "https://www.youj.dev/r/icon-search-x.json",
        "https://www.youj.dev/r/icon-search.json",
        "https://www.youj.dev/r/icon-send.json",
        "https://www.youj.dev/r/icon-server.json",
        "https://www.youj.dev/r/icon-settings.json",
        "https://www.youj.dev/r/icon-shapes.json",
        "https://www.youj.dev/r/icon-share.json",
        "https://www.youj.dev/r/icon-shield-alert.json",
        "https://www.youj.dev/r/icon-shield-check.json",
        "https://www.youj.dev/r/icon-shield-off.json",
        "https://www.youj.dev/r/icon-shield-plus.json",
        "https://www.youj.dev/r/icon-shield-x.json",
        "https://www.youj.dev/r/icon-shield.json",
        "https://www.youj.dev/r/icon-ship.json",
        "https://www.youj.dev/r/icon-shopping-bag.json",
        "https://www.youj.dev/r/icon-shopping-basket.json",
        "https://www.youj.dev/r/icon-shopping-cart.json",
        "https://www.youj.dev/r/icon-shuffle.json",
        "https://www.youj.dev/r/icon-sidebar.json",
        "https://www.youj.dev/r/icon-sigma.json",
        "https://www.youj.dev/r/icon-signal.json",
        "https://www.youj.dev/r/icon-signature.json",
        "https://www.youj.dev/r/icon-signpost.json",
        "https://www.youj.dev/r/icon-siren.json",
        "https://www.youj.dev/r/icon-skip-back.json",
        "https://www.youj.dev/r/icon-skip-forward.json",
        "https://www.youj.dev/r/icon-sliders.json",
        "https://www.youj.dev/r/icon-smartphone.json",
        "https://www.youj.dev/r/icon-smile-plus.json",
        "https://www.youj.dev/r/icon-smile.json",
        "https://www.youj.dev/r/icon-snowflake.json",
        "https://www.youj.dev/r/icon-sort.json",
        "https://www.youj.dev/r/icon-sparkle.json",
        "https://www.youj.dev/r/icon-sparkles.json",
        "https://www.youj.dev/r/icon-speaker.json",
        "https://www.youj.dev/r/icon-spline.json",
        "https://www.youj.dev/r/icon-sprout.json",
        "https://www.youj.dev/r/icon-square-check.json",
        "https://www.youj.dev/r/icon-square-dashed.json",
        "https://www.youj.dev/r/icon-square-minus.json",
        "https://www.youj.dev/r/icon-square-pen.json",
        "https://www.youj.dev/r/icon-square-plus.json",
        "https://www.youj.dev/r/icon-square-x.json",
        "https://www.youj.dev/r/icon-square.json",
        "https://www.youj.dev/r/icon-star-half.json",
        "https://www.youj.dev/r/icon-star.json",
        "https://www.youj.dev/r/icon-sticky-note.json",
        "https://www.youj.dev/r/icon-store.json",
        "https://www.youj.dev/r/icon-strikethrough.json",
        "https://www.youj.dev/r/icon-subscript.json",
        "https://www.youj.dev/r/icon-sun.json",
        "https://www.youj.dev/r/icon-sunrise.json",
        "https://www.youj.dev/r/icon-superscript.json",
        "https://www.youj.dev/r/icon-table.json",
        "https://www.youj.dev/r/icon-tablet.json",
        "https://www.youj.dev/r/icon-tag.json",
        "https://www.youj.dev/r/icon-tags.json",
        "https://www.youj.dev/r/icon-target.json",
        "https://www.youj.dev/r/icon-terminal.json",
        "https://www.youj.dev/r/icon-text-cursor-input.json",
        "https://www.youj.dev/r/icon-text-search.json",
        "https://www.youj.dev/r/icon-text-sparkle.json",
        "https://www.youj.dev/r/icon-theme.json",
        "https://www.youj.dev/r/icon-thermometer.json",
        "https://www.youj.dev/r/icon-thumbs-down.json",
        "https://www.youj.dev/r/icon-thumbs-up.json",
        "https://www.youj.dev/r/icon-ticket.json",
        "https://www.youj.dev/r/icon-timer.json",
        "https://www.youj.dev/r/icon-toggle.json",
        "https://www.youj.dev/r/icon-tornado.json",
        "https://www.youj.dev/r/icon-train.json",
        "https://www.youj.dev/r/icon-trash.json",
        "https://www.youj.dev/r/icon-trending-down.json",
        "https://www.youj.dev/r/icon-trending-up.json",
        "https://www.youj.dev/r/icon-triangle.json",
        "https://www.youj.dev/r/icon-trophy.json",
        "https://www.youj.dev/r/icon-truck.json",
        "https://www.youj.dev/r/icon-tv.json",
        "https://www.youj.dev/r/icon-type.json",
        "https://www.youj.dev/r/icon-umbrella.json",
        "https://www.youj.dev/r/icon-underline.json",
        "https://www.youj.dev/r/icon-undo.json",
        "https://www.youj.dev/r/icon-unlink.json",
        "https://www.youj.dev/r/icon-upload.json",
        "https://www.youj.dev/r/icon-usb.json",
        "https://www.youj.dev/r/icon-user-check.json",
        "https://www.youj.dev/r/icon-user-cog.json",
        "https://www.youj.dev/r/icon-user-minus.json",
        "https://www.youj.dev/r/icon-user-pen.json",
        "https://www.youj.dev/r/icon-user-plus.json",
        "https://www.youj.dev/r/icon-user-search.json",
        "https://www.youj.dev/r/icon-user-shield.json",
        "https://www.youj.dev/r/icon-user-x.json",
        "https://www.youj.dev/r/icon-user.json",
        "https://www.youj.dev/r/icon-users.json",
        "https://www.youj.dev/r/icon-variable.json",
        "https://www.youj.dev/r/icon-vault.json",
        "https://www.youj.dev/r/icon-verified.json",
        "https://www.youj.dev/r/icon-video.json",
        "https://www.youj.dev/r/icon-voicemail.json",
        "https://www.youj.dev/r/icon-volume.json",
        "https://www.youj.dev/r/icon-wallet.json",
        "https://www.youj.dev/r/icon-wand.json",
        "https://www.youj.dev/r/icon-watch.json",
        "https://www.youj.dev/r/icon-waves.json",
        "https://www.youj.dev/r/icon-webcam.json",
        "https://www.youj.dev/r/icon-webhook.json",
        "https://www.youj.dev/r/icon-wifi-off.json",
        "https://www.youj.dev/r/icon-wifi.json",
        "https://www.youj.dev/r/icon-wind.json",
        "https://www.youj.dev/r/icon-workflow.json",
        "https://www.youj.dev/r/icon-wrap-text.json",
        "https://www.youj.dev/r/icon-wrench.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/icon-yen.json",
        "https://www.youj.dev/r/icon-zap.json",
        "https://www.youj.dev/r/icon-zoom-in.json",
        "https://www.youj.dev/r/icon-zoom-out.json"
      ],
      "files": [
        {
          "path": "src/components/youj/icons/index.ts",
          "type": "registry:component",
          "target": "components/youj/icons/index.ts"
        }
      ]
    },
    {
      "name": "iso-scene",
      "type": "registry:component",
      "title": "Iso Scene",
      "description": "The stage for the isometric graphics kit: an SVG that frames its shapes' projected extent (exploded state included), paints them far to near (isoSort), keeps a callout rail beside the drawing, and shares one separation spring (explode, or explode on hover), one assemble-in (shapes drop in on the settle spring) and one float clock that pauses offscreen. The projection maths (project, boxFaces, isoEllipse, sceneViewBox) and the face shading from theme tokens (faceVars) ride along. Decorative by default; reduced motion draws the final state.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/iso.ts",
          "type": "registry:lib",
          "target": "components/youj/graphics/iso.ts"
        },
        {
          "path": "src/components/youj/graphics/tones.ts",
          "type": "registry:lib",
          "target": "components/youj/graphics/tones.ts"
        },
        {
          "path": "src/components/youj/graphics/iso-scene.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/iso-scene.tsx"
        }
      ]
    },
    {
      "name": "iso-shapes",
      "type": "registry:component",
      "title": "Iso Shapes",
      "description": "IsoBox, IsoCylinder and IsoPlatform for an IsoScene: faces shaded from the theme in both schemes (neutral, raised, sunken, accent and status tones, or any CSS colour), solid, wireframe with dashed hidden edges, or a dashed ghost for a place something will go. Tiles and discs at no height, children drawn on the top face, float and lift.",
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/iso-scene.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/iso-box.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/iso-box.tsx"
        },
        {
          "path": "src/components/youj/graphics/iso-cylinder.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/iso-cylinder.tsx"
        },
        {
          "path": "src/components/youj/graphics/iso-platform.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/iso-platform.tsx"
        }
      ]
    },
    {
      "name": "iso-stack",
      "type": "registry:component",
      "title": "Iso Stack",
      "description": "An exploded view for an IsoScene: slabs or disks that part along an axis with the scene's separation, the top travelling furthest, with callouts (hairline leaders to the scene's rail, mono capital labels and a detail line) fading in as they part. A lit layer takes the accent; IsoCallout marks any other point.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/iso-stack.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/iso-stack.tsx"
        },
        {
          "path": "src/components/youj/graphics/iso-callout.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/iso-callout.tsx"
        }
      ]
    },
    {
      "name": "illustrations",
      "type": "registry:component",
      "title": "Illustrations",
      "description": "Ready-made isometric scenes for product moments (data, infrastructure, app and lifecycle, and the everyday, from commerce, food and travel to sports, weather, pets and science: a database, a shop front, a jar of savings, a rocket on its pad, a missing tile…), each a composition of the graphics kit framed to one shared volume, so any scene swaps for any other. They assemble as they come into view, their hero part floats, and explode on hover parts them or raises the lit part. Listed by id in `illustrations`, and drawn by id with `<Illustration scene=\"deploy\" />`, which is what a block's `illustration` prop takes. Decorative unless titled; reduced motion draws them finished and still.",
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/iso-shapes.json",
        "https://www.youj.dev/r/iso-stack.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/kit.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/kit.tsx"
        },
        {
          "path": "src/components/youj/graphics/illustrations/data.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/data.tsx"
        },
        {
          "path": "src/components/youj/graphics/illustrations/infrastructure.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/infrastructure.tsx"
        },
        {
          "path": "src/components/youj/graphics/illustrations/app.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/app.tsx"
        },
        {
          "path": "src/components/youj/graphics/illustrations/lifecycle.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/lifecycle.tsx"
        },
        {
          "path": "src/components/youj/graphics/illustrations/commerce.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/commerce.tsx"
        },
        {
          "path": "src/components/youj/graphics/illustrations/finance.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/finance.tsx"
        },
        {
          "path": "src/components/youj/graphics/illustrations/health.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/health.tsx"
        },
        {
          "path": "src/components/youj/graphics/illustrations/education.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/education.tsx"
        },
        {
          "path": "src/components/youj/graphics/illustrations/travel.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/travel.tsx"
        },
        {
          "path": "src/components/youj/graphics/illustrations/food.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/food.tsx"
        },
        {
          "path": "src/components/youj/graphics/illustrations/media.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/media.tsx"
        },
        {
          "path": "src/components/youj/graphics/illustrations/social.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/social.tsx"
        },
        {
          "path": "src/components/youj/graphics/illustrations/home.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/home.tsx"
        },
        {
          "path": "src/components/youj/graphics/illustrations/work.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/work.tsx"
        },
        {
          "path": "src/components/youj/graphics/illustrations/sports.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/sports.tsx"
        },
        {
          "path": "src/components/youj/graphics/illustrations/play.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/play.tsx"
        },
        {
          "path": "src/components/youj/graphics/illustrations/events.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/events.tsx"
        },
        {
          "path": "src/components/youj/graphics/illustrations/pets.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/pets.tsx"
        },
        {
          "path": "src/components/youj/graphics/illustrations/weather.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/weather.tsx"
        },
        {
          "path": "src/components/youj/graphics/illustrations/nature.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/nature.tsx"
        },
        {
          "path": "src/components/youj/graphics/illustrations/energy.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/energy.tsx"
        },
        {
          "path": "src/components/youj/graphics/illustrations/transport.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/transport.tsx"
        },
        {
          "path": "src/components/youj/graphics/illustrations/places.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/places.tsx"
        },
        {
          "path": "src/components/youj/graphics/illustrations/outdoors.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/outdoors.tsx"
        },
        {
          "path": "src/components/youj/graphics/illustrations/science.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/science.tsx"
        },
        {
          "path": "src/components/youj/graphics/illustrations/security.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/security.tsx"
        },
        {
          "path": "src/components/youj/graphics/illustrations/devices.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/devices.tsx"
        },
        {
          "path": "src/components/youj/graphics/illustrations/business.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/business.tsx"
        },
        {
          "path": "src/components/youj/graphics/illustrations/categories.ts",
          "type": "registry:lib",
          "target": "components/youj/graphics/illustrations/categories.ts"
        },
        {
          "path": "src/components/youj/graphics/illustrations/registry.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/registry.tsx"
        }
      ]
    },
    {
      "name": "grid-backdrops",
      "type": "registry:component",
      "title": "Grid Backdrops",
      "description": "Drafting paper from the tokens: DotGrid, LineGrid (major lines and registration crosses) and IsoGrid, each filling its container behind the content and fading toward its edges, plus IsoFloor, an IsoScene's own floor grid in its units. Static and decorative.",
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/iso-scene.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/grids.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/grids.tsx"
        }
      ]
    },
    {
      "name": "illustration-kit",
      "type": "registry:component",
      "title": "Illustration kit",
      "description": "What every illustration is drawn with: the stage (one volume for every scene, so any scene swaps for any other), groups that move as one object, turned and extruded solids (Lathe, Prism), marks on a face, links between points, and the inks they're drawn in. Each illustration-<id> item installs one scene on top of it.",
      "registryDependencies": [
        "https://www.youj.dev/r/iso-scene.json"
      ],
      "dependencies": [],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/kit.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/kit.tsx"
        }
      ]
    },
    {
      "name": "illustration-database",
      "type": "registry:component",
      "title": "Database illustration",
      "description": "Three disks on a turntable and, hovering over them, the next one in the accent, about to be written. One isometric scene from the Data illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "data"
      ],
      "meta": {
        "scene": "database",
        "component": "IllustrationDatabase",
        "category": "data",
        "tags": [
          "sql",
          "records",
          "table",
          "query",
          "storage"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json",
        "https://www.youj.dev/r/iso-stack.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/database.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/database.tsx"
        }
      ]
    },
    {
      "name": "illustration-warehouse",
      "type": "registry:component",
      "title": "Data warehouse illustration",
      "description": "A floor of tables at their own heights, and over the one bay left, the last table landing. One isometric scene from the Data illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "data"
      ],
      "meta": {
        "scene": "warehouse",
        "component": "IllustrationWarehouse",
        "category": "data",
        "tags": [
          "analytics",
          "etl",
          "tables",
          "lake",
          "reporting"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/warehouse.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/warehouse.tsx"
        }
      ]
    },
    {
      "name": "illustration-pipeline",
      "type": "registry:component",
      "title": "Pipeline illustration",
      "description": "Packets riding a track through three stages: a source, a transform in the accent, and the store they end in. One isometric scene from the Data illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "data"
      ],
      "meta": {
        "scene": "pipeline",
        "component": "IllustrationPipeline",
        "category": "data",
        "tags": [
          "etl",
          "stream",
          "sync",
          "workflow",
          "integration"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/pipeline.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/pipeline.tsx"
        }
      ]
    },
    {
      "name": "illustration-storage",
      "type": "registry:component",
      "title": "Storage illustration",
      "description": "A cabinet of drawers with one pulled out in the accent, and a file hovering over it, about to go in. One isometric scene from the Data illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "data"
      ],
      "meta": {
        "scene": "storage",
        "component": "IllustrationStorage",
        "category": "data",
        "tags": [
          "files",
          "archive",
          "cabinet",
          "drawer",
          "uploads"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/storage.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/storage.tsx"
        }
      ]
    },
    {
      "name": "illustration-backups",
      "type": "registry:component",
      "title": "Backups illustration",
      "description": "Snapshots stepping back in time, each a little further off and fainter, the newest in the accent with a clock on its face. One isometric scene from the Data illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "data"
      ],
      "meta": {
        "scene": "backups",
        "component": "IllustrationBackups",
        "category": "data",
        "tags": [
          "snapshot",
          "restore",
          "history",
          "versions",
          "recovery"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/backups.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/backups.tsx"
        }
      ]
    },
    {
      "name": "illustration-server-rack",
      "type": "registry:component",
      "title": "Server rack illustration",
      "description": "Two racks on a plinth, one blade drawn out of the taller in the accent. One isometric scene from the Infrastructure illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "infrastructure"
      ],
      "meta": {
        "scene": "server-rack",
        "component": "IllustrationServerRack",
        "category": "infrastructure",
        "tags": [
          "servers",
          "hosting",
          "datacenter",
          "hardware",
          "compute"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/server-rack.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/server-rack.tsx"
        }
      ]
    },
    {
      "name": "illustration-cloud",
      "type": "registry:component",
      "title": "Cloud regions illustration",
      "description": "Three regions on their own plinths, one lit, and over them the cloud they share, wired down to each. One isometric scene from the Infrastructure illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "infrastructure"
      ],
      "meta": {
        "scene": "cloud",
        "component": "IllustrationCloud",
        "category": "infrastructure",
        "tags": [
          "regions",
          "hosting",
          "global",
          "availability",
          "zones"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/cloud.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/cloud.tsx"
        }
      ]
    },
    {
      "name": "illustration-network",
      "type": "registry:component",
      "title": "Network illustration",
      "description": "A hub in the accent and the nodes round it, each wired to the hub and its neighbors along the floor. One isometric scene from the Infrastructure illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "infrastructure"
      ],
      "meta": {
        "scene": "network",
        "component": "IllustrationNetwork",
        "category": "infrastructure",
        "tags": [
          "nodes",
          "connections",
          "graph",
          "mesh",
          "topology"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/network.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/network.tsx"
        }
      ]
    },
    {
      "name": "illustration-load-balancer",
      "type": "registry:component",
      "title": "Load balancer illustration",
      "description": "A balancer in the accent at the back, its traffic routed square along the floor to a row of three servers, a packet on each route. One isometric scene from the Infrastructure illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "infrastructure"
      ],
      "meta": {
        "scene": "load-balancer",
        "component": "IllustrationLoadBalancer",
        "category": "infrastructure",
        "tags": [
          "traffic",
          "routing",
          "scaling",
          "proxy",
          "requests"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/load-balancer.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/load-balancer.tsx"
        }
      ]
    },
    {
      "name": "illustration-edge",
      "type": "registry:component",
      "title": "Edge network illustration",
      "description": "An origin in the accent at the center, and the edge round it: nodes on a ring, a fainter ring further out. One isometric scene from the Infrastructure illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "infrastructure"
      ],
      "meta": {
        "scene": "edge",
        "component": "IllustrationEdge",
        "category": "infrastructure",
        "tags": [
          "cdn",
          "latency",
          "global",
          "caching",
          "distribution"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/edge.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/edge.tsx"
        }
      ]
    },
    {
      "name": "illustration-mail",
      "type": "registry:component",
      "title": "Mail illustration",
      "description": "An envelope standing open, and the letter in the accent rising out of it. Hovered, it lifts clear. One isometric scene from the App illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "app"
      ],
      "meta": {
        "scene": "mail",
        "component": "IllustrationMail",
        "category": "app",
        "tags": [
          "email",
          "inbox",
          "message",
          "letter",
          "newsletter"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/mail.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/mail.tsx"
        }
      ]
    },
    {
      "name": "illustration-calendar",
      "type": "registry:component",
      "title": "Calendar illustration",
      "description": "A month on an easel with today in the accent, and the day's one event lifting off it. One isometric scene from the App illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "app"
      ],
      "meta": {
        "scene": "calendar",
        "component": "IllustrationCalendar",
        "category": "app",
        "tags": [
          "schedule",
          "event",
          "date",
          "meeting",
          "booking"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/calendar.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/calendar.tsx"
        }
      ]
    },
    {
      "name": "illustration-documents",
      "type": "registry:component",
      "title": "Documents illustration",
      "description": "Three pages fanned out on edge, the front one lifting, its corner folded and its title in the accent. One isometric scene from the App illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "app"
      ],
      "meta": {
        "scene": "documents",
        "component": "IllustrationDocuments",
        "category": "app",
        "tags": [
          "files",
          "pages",
          "docs",
          "paper",
          "notes"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-scene.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/documents.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/documents.tsx"
        }
      ]
    },
    {
      "name": "illustration-analytics",
      "type": "registry:component",
      "title": "Analytics illustration",
      "description": "Bars in front of a gridded back wall, rising to the last in the accent, with its reading hovering over it. One isometric scene from the App illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "app"
      ],
      "meta": {
        "scene": "analytics",
        "component": "IllustrationAnalytics",
        "category": "app",
        "tags": [
          "chart",
          "metrics",
          "stats",
          "reporting",
          "growth"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/analytics.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/analytics.tsx"
        }
      ]
    },
    {
      "name": "illustration-search",
      "type": "registry:component",
      "title": "Search illustration",
      "description": "Results laid out on the desk and a lens hovering over the one that matches, lit in the accent. One isometric scene from the App illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "app"
      ],
      "meta": {
        "scene": "search",
        "component": "IllustrationSearch",
        "category": "app",
        "tags": [
          "find",
          "lookup",
          "results",
          "magnifier",
          "query"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/search.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/search.tsx"
        }
      ]
    },
    {
      "name": "illustration-notifications",
      "type": "registry:component",
      "title": "Notifications illustration",
      "description": "A bell hovering over its plinth, the ring of its ping on the floor, and its badge in the accent. One isometric scene from the App illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "app"
      ],
      "meta": {
        "scene": "notifications",
        "component": "IllustrationNotifications",
        "category": "app",
        "tags": [
          "bell",
          "alerts",
          "reminder",
          "ping",
          "badge"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/notifications.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/notifications.tsx"
        }
      ]
    },
    {
      "name": "illustration-deploy",
      "type": "registry:component",
      "title": "Deploy illustration",
      "description": "A rocket hovering over its pad on a flame, its band in the accent. Hovered, it lifts off. One isometric scene from the Lifecycle illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "lifecycle"
      ],
      "meta": {
        "scene": "deploy",
        "component": "IllustrationDeploy",
        "category": "lifecycle",
        "tags": [
          "launch",
          "rocket",
          "release",
          "ship",
          "startup"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/deploy.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/deploy.tsx"
        }
      ]
    },
    {
      "name": "illustration-security",
      "type": "registry:component",
      "title": "Security illustration",
      "description": "A vault with its round door and dial, and over it a seal in the accent. One isometric scene from the Lifecycle illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "lifecycle"
      ],
      "meta": {
        "scene": "security",
        "component": "IllustrationSecurity",
        "category": "lifecycle",
        "tags": [
          "vault",
          "lock",
          "safe",
          "privacy",
          "protection"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/security.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/security.tsx"
        }
      ]
    },
    {
      "name": "illustration-team",
      "type": "registry:component",
      "title": "Team illustration",
      "description": "Four people round a table, one in the accent, and the work they share on it. One isometric scene from the Lifecycle illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "lifecycle"
      ],
      "meta": {
        "scene": "team",
        "component": "IllustrationTeam",
        "category": "lifecycle",
        "tags": [
          "people",
          "collaboration",
          "members",
          "meeting",
          "group"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/team.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/team.tsx"
        }
      ]
    },
    {
      "name": "illustration-success",
      "type": "registry:component",
      "title": "Success illustration",
      "description": "A coin in the accent with a check on its face, hovering over a plinth, with a few bits of confetti round it. One isometric scene from the Lifecycle illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "lifecycle"
      ],
      "meta": {
        "scene": "success",
        "component": "IllustrationSuccess",
        "category": "lifecycle",
        "tags": [
          "done",
          "complete",
          "check",
          "celebration",
          "confetti"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/success.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/success.tsx"
        }
      ]
    },
    {
      "name": "illustration-not-found",
      "type": "registry:component",
      "title": "Not found illustration",
      "description": "A floor of tiles with one gone, its outline dashed, and the missing tile hovering over the gap in the accent. One isometric scene from the Lifecycle illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "lifecycle"
      ],
      "meta": {
        "scene": "not-found",
        "component": "IllustrationNotFound",
        "category": "lifecycle",
        "tags": [
          "404",
          "missing",
          "error",
          "lost",
          "gap"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/not-found.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/not-found.tsx"
        }
      ]
    },
    {
      "name": "illustration-empty",
      "type": "registry:component",
      "title": "Empty illustration",
      "description": "An open box with its flaps folded out and nothing inside, and a dashed ghost of the first thing hovering over it. One isometric scene from the Lifecycle illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "lifecycle"
      ],
      "meta": {
        "scene": "empty",
        "component": "IllustrationEmpty",
        "category": "lifecycle",
        "tags": [
          "blank",
          "nothing",
          "zero",
          "box",
          "placeholder"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/empty.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/empty.tsx"
        }
      ]
    },
    {
      "name": "illustration-storefront",
      "type": "registry:component",
      "title": "Shop front illustration",
      "description": "A shop with its window and door, and over them an awning striped in the accent. Hovered, the awning rolls up. One isometric scene from the Commerce illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "commerce"
      ],
      "meta": {
        "scene": "storefront",
        "component": "IllustrationStorefront",
        "category": "commerce",
        "tags": [
          "store",
          "retail",
          "boutique",
          "market",
          "awning"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/storefront.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/storefront.tsx"
        }
      ]
    },
    {
      "name": "illustration-shopping-bag",
      "type": "registry:component",
      "title": "Shopping bag illustration",
      "description": "A shopping bag, handles up, and the day's find rising out of it in the accent. One isometric scene from the Commerce illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "commerce"
      ],
      "meta": {
        "scene": "shopping-bag",
        "component": "IllustrationShoppingBag",
        "category": "commerce",
        "tags": [
          "purchase",
          "retail",
          "order",
          "buy",
          "fashion"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/shopping-bag.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/shopping-bag.tsx"
        }
      ]
    },
    {
      "name": "illustration-delivery",
      "type": "registry:component",
      "title": "Delivery illustration",
      "description": "Parcels stacked at the end of their dashed route across the floor, taped and labeled, the newest landing on top in the accent. One isometric scene from the Commerce illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "commerce"
      ],
      "meta": {
        "scene": "delivery",
        "component": "IllustrationDelivery",
        "category": "commerce",
        "tags": [
          "shipping",
          "parcel",
          "package",
          "courier",
          "logistics"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/delivery.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/delivery.tsx"
        }
      ]
    },
    {
      "name": "illustration-payment",
      "type": "registry:component",
      "title": "Payment illustration",
      "description": "A card reader with its screen and keys, and over it a card in the accent, about to tap. One isometric scene from the Finance illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "finance"
      ],
      "meta": {
        "scene": "payment",
        "component": "IllustrationPayment",
        "category": "finance",
        "tags": [
          "card",
          "checkout",
          "terminal",
          "contactless",
          "pay"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/payment.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/payment.tsx"
        }
      ]
    },
    {
      "name": "illustration-wallet",
      "type": "registry:component",
      "title": "Wallet illustration",
      "description": "A wallet standing on its edge, its strap snapped, one card tucked in and the other drawn out of it in the accent. One isometric scene from the Finance illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "finance"
      ],
      "meta": {
        "scene": "wallet",
        "component": "IllustrationWallet",
        "category": "finance",
        "tags": [
          "cards",
          "money",
          "cash",
          "coins",
          "balance"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/wallet.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/wallet.tsx"
        }
      ]
    },
    {
      "name": "illustration-savings",
      "type": "registry:component",
      "title": "Savings illustration",
      "description": "A jar of coins, seen through the glass, and the next coin, in the accent, standing on edge over the slot in its lid. One isometric scene from the Finance illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "finance"
      ],
      "meta": {
        "scene": "savings",
        "component": "IllustrationSavings",
        "category": "finance",
        "tags": [
          "jar",
          "coins",
          "budget",
          "piggy",
          "money"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/savings.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/savings.tsx"
        }
      ]
    },
    {
      "name": "illustration-heart-rate",
      "type": "registry:component",
      "title": "Heart rate illustration",
      "description": "A monitor tracing one beat across its screen, and the heart beside it in the accent. One isometric scene from the Health illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "health"
      ],
      "meta": {
        "scene": "heart-rate",
        "component": "IllustrationHeartRate",
        "category": "health",
        "tags": [
          "pulse",
          "monitor",
          "cardio",
          "heartbeat",
          "vitals"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/heart-rate.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/heart-rate.tsx"
        }
      ]
    },
    {
      "name": "illustration-fitness",
      "type": "registry:component",
      "title": "Fitness illustration",
      "description": "A dumbbell mid-rep over its mat, the end of the mat still rolled, the grip in the accent. One isometric scene from the Health illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "health"
      ],
      "meta": {
        "scene": "fitness",
        "component": "IllustrationFitness",
        "category": "health",
        "tags": [
          "gym",
          "workout",
          "dumbbell",
          "exercise",
          "training"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/fitness.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/fitness.tsx"
        }
      ]
    },
    {
      "name": "illustration-first-aid",
      "type": "registry:component",
      "title": "First aid illustration",
      "description": "A first-aid kit with its handle and latches, and over it the cross, in the accent. One isometric scene from the Health illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "health"
      ],
      "meta": {
        "scene": "first-aid",
        "component": "IllustrationFirstAid",
        "category": "health",
        "tags": [
          "medical",
          "emergency",
          "care",
          "doctor",
          "kit"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/first-aid.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/first-aid.tsx"
        }
      ]
    },
    {
      "name": "illustration-books",
      "type": "registry:component",
      "title": "Books illustration",
      "description": "A stack of books, the top one in the accent lifting off it, and a pencil in front. One isometric scene from the Education illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "education"
      ],
      "meta": {
        "scene": "books",
        "component": "IllustrationBooks",
        "category": "education",
        "tags": [
          "reading",
          "library",
          "study",
          "learning",
          "pencil"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-scene.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/books.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/books.tsx"
        }
      ]
    },
    {
      "name": "illustration-graduation",
      "type": "registry:component",
      "title": "Graduation illustration",
      "description": "A mortarboard in the accent over the rolled diploma, its tassel hanging off one corner. One isometric scene from the Education illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "education"
      ],
      "meta": {
        "scene": "graduation",
        "component": "IllustrationGraduation",
        "category": "education",
        "tags": [
          "diploma",
          "school",
          "degree",
          "cap",
          "university"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/graduation.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/graduation.tsx"
        }
      ]
    },
    {
      "name": "illustration-idea",
      "type": "registry:component",
      "title": "Idea illustration",
      "description": "A bulb hovering over its plinth, lit in the accent, its light on the floor and rays round it. One isometric scene from the Education illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "education"
      ],
      "meta": {
        "scene": "idea",
        "component": "IllustrationIdea",
        "category": "education",
        "tags": [
          "lightbulb",
          "insight",
          "brainstorm",
          "inspiration",
          "tip"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/idea.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/idea.tsx"
        }
      ]
    },
    {
      "name": "illustration-suitcase",
      "type": "registry:component",
      "title": "Suitcase illustration",
      "description": "A suitcase on its wheels, handle up, ribbed, and its luggage tag in the accent. One isometric scene from the Travel illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "travel"
      ],
      "meta": {
        "scene": "suitcase",
        "component": "IllustrationSuitcase",
        "category": "travel",
        "tags": [
          "luggage",
          "trip",
          "baggage",
          "vacation",
          "packing"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/suitcase.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/suitcase.tsx"
        }
      ]
    },
    {
      "name": "illustration-flight",
      "type": "registry:component",
      "title": "Flight illustration",
      "description": "A plane in the accent climbing off its runway, the dashed path it took behind it, its shadow still on the ground. One isometric scene from the Travel illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "travel"
      ],
      "meta": {
        "scene": "flight",
        "component": "IllustrationFlight",
        "category": "travel",
        "tags": [
          "plane",
          "airport",
          "trip",
          "booking",
          "departure"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/flight.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/flight.tsx"
        }
      ]
    },
    {
      "name": "illustration-map",
      "type": "registry:component",
      "title": "Map illustration",
      "description": "A map folded like a concertina, a road or two across it, and a pin in the accent where the dashed route ends. One isometric scene from the Travel illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "travel"
      ],
      "meta": {
        "scene": "map",
        "component": "IllustrationMap",
        "category": "travel",
        "tags": [
          "route",
          "directions",
          "location",
          "pin",
          "navigation"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/map.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/map.tsx"
        }
      ]
    },
    {
      "name": "illustration-coffee",
      "type": "registry:component",
      "title": "Coffee illustration",
      "description": "A cup of coffee in the accent on its saucer, steam rising off it. One isometric scene from the Food illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "food"
      ],
      "meta": {
        "scene": "coffee",
        "component": "IllustrationCoffee",
        "category": "food",
        "tags": [
          "cafe",
          "drink",
          "cup",
          "break",
          "morning"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-scene.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/coffee.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/coffee.tsx"
        }
      ]
    },
    {
      "name": "illustration-restaurant",
      "type": "registry:component",
      "title": "Restaurant illustration",
      "description": "A table set for one, and the cloche over the plate in the accent, about to lift. Hovered, it does. One isometric scene from the Food illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "food"
      ],
      "meta": {
        "scene": "restaurant",
        "component": "IllustrationRestaurant",
        "category": "food",
        "tags": [
          "dining",
          "meal",
          "table",
          "dinner",
          "reservation"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/restaurant.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/restaurant.tsx"
        }
      ]
    },
    {
      "name": "illustration-groceries",
      "type": "registry:component",
      "title": "Groceries illustration",
      "description": "A basket of groceries, a bottle and a box standing in it, and an apple in the accent dropping in. One isometric scene from the Food illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "food"
      ],
      "meta": {
        "scene": "groceries",
        "component": "IllustrationGroceries",
        "category": "food",
        "tags": [
          "basket",
          "shopping",
          "produce",
          "market",
          "apple"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/groceries.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/groceries.tsx"
        }
      ]
    },
    {
      "name": "illustration-camera",
      "type": "registry:component",
      "title": "Camera illustration",
      "description": "A camera hovering over its plinth, its lens barrel in the accent. One isometric scene from the Media illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "media"
      ],
      "meta": {
        "scene": "camera",
        "component": "IllustrationCamera",
        "category": "media",
        "tags": [
          "photo",
          "photography",
          "lens",
          "picture",
          "snapshot"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/camera.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/camera.tsx"
        }
      ]
    },
    {
      "name": "illustration-music",
      "type": "registry:component",
      "title": "Music illustration",
      "description": "A record on its turntable, the arm on its edge, and a note in the accent rising off it. One isometric scene from the Media illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "media"
      ],
      "meta": {
        "scene": "music",
        "component": "IllustrationMusic",
        "category": "media",
        "tags": [
          "record",
          "vinyl",
          "audio",
          "song",
          "playlist"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/music.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/music.tsx"
        }
      ]
    },
    {
      "name": "illustration-video",
      "type": "registry:component",
      "title": "Video illustration",
      "description": "A screen on its stand, and its round play button in the accent lifting off it toward you. One isometric scene from the Media illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "media"
      ],
      "meta": {
        "scene": "video",
        "component": "IllustrationVideo",
        "category": "media",
        "tags": [
          "play",
          "player",
          "screen",
          "stream",
          "movie"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/video.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/video.tsx"
        }
      ]
    },
    {
      "name": "illustration-chat",
      "type": "registry:component",
      "title": "Chat illustration",
      "description": "A message, its lines of text, and in front of it the reply being typed, in the accent. One isometric scene from the Social illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "social"
      ],
      "meta": {
        "scene": "chat",
        "component": "IllustrationChat",
        "category": "social",
        "tags": [
          "message",
          "conversation",
          "reply",
          "typing",
          "support"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/chat.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/chat.tsx"
        }
      ]
    },
    {
      "name": "illustration-video-call",
      "type": "registry:component",
      "title": "Video call illustration",
      "description": "A laptop on a call, four faces on its screen, and the one speaking in the accent, lifting out of the grid. One isometric scene from the Social illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "social"
      ],
      "meta": {
        "scene": "video-call",
        "component": "IllustrationVideoCall",
        "category": "social",
        "tags": [
          "meeting",
          "conference",
          "laptop",
          "remote",
          "webcam"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/video-call.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/video-call.tsx"
        }
      ]
    },
    {
      "name": "illustration-announcement",
      "type": "registry:component",
      "title": "Announcement illustration",
      "description": "A megaphone in the accent hovering over its plinth, the rings of what it's saying spreading ahead of it. One isometric scene from the Social illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "social"
      ],
      "meta": {
        "scene": "announcement",
        "component": "IllustrationAnnouncement",
        "category": "social",
        "tags": [
          "megaphone",
          "news",
          "broadcast",
          "launch",
          "marketing"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/announcement.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/announcement.tsx"
        }
      ]
    },
    {
      "name": "illustration-home",
      "type": "registry:component",
      "title": "Home illustration",
      "description": "A house with its door and windows, a tree beside it, and its roof in the accent. Hovered, the roof lifts off. One isometric scene from the Home illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "home"
      ],
      "meta": {
        "scene": "home",
        "component": "IllustrationHome",
        "category": "home",
        "tags": [
          "house",
          "property",
          "tree",
          "roof",
          "living"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/home.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/home.tsx"
        }
      ]
    },
    {
      "name": "illustration-plant",
      "type": "registry:component",
      "title": "Plant illustration",
      "description": "A pot hovering over its saucer, and the first shoot in the accent, two leaves unfolding. Hovered, it grows. One isometric scene from the Home illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "home"
      ],
      "meta": {
        "scene": "plant",
        "component": "IllustrationPlant",
        "category": "home",
        "tags": [
          "pot",
          "sprout",
          "growth",
          "garden",
          "nature"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/plant.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/plant.tsx"
        }
      ]
    },
    {
      "name": "illustration-gift",
      "type": "registry:component",
      "title": "Gift illustration",
      "description": "A present tied with a ribbon in the accent, its lid and bow rising off it. Hovered, it opens. One isometric scene from the Home illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "home"
      ],
      "meta": {
        "scene": "gift",
        "component": "IllustrationGift",
        "category": "home",
        "tags": [
          "present",
          "reward",
          "birthday",
          "ribbon",
          "surprise"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/gift.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/gift.tsx"
        }
      ]
    },
    {
      "name": "illustration-checklist",
      "type": "registry:component",
      "title": "Checklist illustration",
      "description": "A clipboard with its list, two items ticked, the third's tick landing in the accent, and a pencil beside it. One isometric scene from the Work illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "work"
      ],
      "meta": {
        "scene": "checklist",
        "component": "IllustrationChecklist",
        "category": "work",
        "tags": [
          "tasks",
          "todo",
          "clipboard",
          "done",
          "checkbox"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/checklist.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/checklist.tsx"
        }
      ]
    },
    {
      "name": "illustration-briefcase",
      "type": "registry:component",
      "title": "Briefcase illustration",
      "description": "A briefcase in the accent hovering over its shadow, handle up, latches shut. One isometric scene from the Work illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "work"
      ],
      "meta": {
        "scene": "briefcase",
        "component": "IllustrationBriefcase",
        "category": "work",
        "tags": [
          "job",
          "business",
          "career",
          "office",
          "portfolio"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/briefcase.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/briefcase.tsx"
        }
      ]
    },
    {
      "name": "illustration-trophy",
      "type": "registry:component",
      "title": "Trophy illustration",
      "description": "A trophy in the accent over its podium, the name plate on the front. One isometric scene from the Work illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "work"
      ],
      "meta": {
        "scene": "trophy",
        "component": "IllustrationTrophy",
        "category": "work",
        "tags": [
          "award",
          "winner",
          "achievement",
          "prize",
          "podium"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/trophy.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/trophy.tsx"
        }
      ]
    },
    {
      "name": "illustration-bicycle",
      "type": "registry:component",
      "title": "Bicycle illustration",
      "description": "A bicycle in the accent hovering over its lane, its shadow on the road. Hovered, it hops. One isometric scene from the Sports illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "sports"
      ],
      "meta": {
        "scene": "bicycle",
        "component": "IllustrationBicycle",
        "category": "sports",
        "tags": [
          "bike",
          "cycling",
          "ride",
          "commute"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/bicycle.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/bicycle.tsx"
        }
      ]
    },
    {
      "name": "illustration-basketball",
      "type": "registry:component",
      "title": "Basketball illustration",
      "description": "A hoop on its pole, the ball in the accent over the rim. Hovered, it drops through the net. One isometric scene from the Sports illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "sports"
      ],
      "meta": {
        "scene": "basketball",
        "component": "IllustrationBasketball",
        "category": "sports",
        "tags": [
          "hoop",
          "ball",
          "court",
          "score",
          "game"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-scene.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/basketball.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/basketball.tsx"
        }
      ]
    },
    {
      "name": "illustration-stopwatch",
      "type": "registry:component",
      "title": "Stopwatch illustration",
      "description": "A stopwatch hovering on its edge, the time so far swept in the accent and its button in the accent on top. Hovered, the button clicks. One isometric scene from the Sports illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "sports"
      ],
      "meta": {
        "scene": "stopwatch",
        "component": "IllustrationStopwatch",
        "category": "sports",
        "tags": [
          "timer",
          "time",
          "race",
          "lap",
          "speed"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/stopwatch.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/stopwatch.tsx"
        }
      ]
    },
    {
      "name": "illustration-tennis",
      "type": "registry:component",
      "title": "Tennis illustration",
      "description": "A racket lying on the court, and a ball in the accent over its strings. Hovered, it bounces up off them. One isometric scene from the Sports illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "sports"
      ],
      "meta": {
        "scene": "tennis",
        "component": "IllustrationTennis",
        "category": "sports",
        "tags": [
          "racket",
          "ball",
          "court",
          "match"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-scene.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/tennis.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/tennis.tsx"
        }
      ]
    },
    {
      "name": "illustration-game-controller",
      "type": "registry:component",
      "title": "Game controller illustration",
      "description": "A gamepad in the accent hovering over its shadow, pad and buttons up. Hovered, it's picked up. One isometric scene from the Play illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "play"
      ],
      "meta": {
        "scene": "game-controller",
        "component": "IllustrationGameController",
        "category": "play",
        "tags": [
          "gamepad",
          "gaming",
          "console",
          "joystick"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/game-controller.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/game-controller.tsx"
        }
      ]
    },
    {
      "name": "illustration-arcade",
      "type": "registry:component",
      "title": "Arcade illustration",
      "description": "An arcade cabinet, stick and buttons on its panel, and a pixel heart in the accent coming out of the screen. Hovered, it jumps clear. One isometric scene from the Play illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "play"
      ],
      "meta": {
        "scene": "arcade",
        "component": "IllustrationArcade",
        "category": "play",
        "tags": [
          "cabinet",
          "retro",
          "pixel",
          "gaming",
          "coin"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/arcade.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/arcade.tsx"
        }
      ]
    },
    {
      "name": "illustration-dice",
      "type": "registry:component",
      "title": "Dice illustration",
      "description": "A die at rest and another in the accent in the air over its shadow. Hovered, it's thrown higher. One isometric scene from the Play illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "play"
      ],
      "meta": {
        "scene": "dice",
        "component": "IllustrationDice",
        "category": "play",
        "tags": [
          "roll",
          "luck",
          "chance",
          "board",
          "random"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/dice.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/dice.tsx"
        }
      ]
    },
    {
      "name": "illustration-puzzle",
      "type": "registry:component",
      "title": "Puzzle illustration",
      "description": "A jigsaw with its middle piece missing, and the piece in the accent hovering over the gap. Hovered, it drops into place. One isometric scene from the Play illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "play"
      ],
      "meta": {
        "scene": "puzzle",
        "component": "IllustrationPuzzle",
        "category": "play",
        "tags": [
          "jigsaw",
          "piece",
          "fit",
          "solve"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/puzzle.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/puzzle.tsx"
        }
      ]
    },
    {
      "name": "illustration-party",
      "type": "registry:component",
      "title": "Party illustration",
      "description": "Three balloons tied to a weight among the confetti, the one in the accent slipping its string. Hovered, it floats off. One isometric scene from the Events illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "events"
      ],
      "meta": {
        "scene": "party",
        "component": "IllustrationParty",
        "category": "events",
        "tags": [
          "balloons",
          "birthday",
          "celebrate",
          "confetti"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/party.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/party.tsx"
        }
      ]
    },
    {
      "name": "illustration-ticket",
      "type": "registry:component",
      "title": "Ticket illustration",
      "description": "A roll of tickets unwinding across the floor, perforated between each, and the last one in the accent torn off it. Hovered, it's taken. One isometric scene from the Events illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "events"
      ],
      "meta": {
        "scene": "ticket",
        "component": "IllustrationTicket",
        "category": "events",
        "tags": [
          "admission",
          "pass",
          "concert",
          "booking",
          "entry"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/ticket.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/ticket.tsx"
        }
      ]
    },
    {
      "name": "illustration-stage",
      "type": "registry:component",
      "title": "Stage illustration",
      "description": "A stage behind its arch, its curtain in the accent just off the boards, a spotlight on the microphone waiting behind it. Hovered, the curtain goes up. One isometric scene from the Events illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "events"
      ],
      "meta": {
        "scene": "stage",
        "component": "IllustrationShowStage",
        "category": "events",
        "tags": [
          "theatre",
          "curtain",
          "show",
          "spotlight",
          "performance"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/stage.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/stage.tsx"
        }
      ]
    },
    {
      "name": "illustration-cake",
      "type": "registry:component",
      "title": "Cake illustration",
      "description": "A cake on its stand, candles lit, a quarter cut showing its layers and the slice in the accent lifting out. Hovered, it's served. One isometric scene from the Events illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "events"
      ],
      "meta": {
        "scene": "cake",
        "component": "IllustrationCake",
        "category": "events",
        "tags": [
          "birthday",
          "celebration",
          "candles",
          "anniversary"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/cake.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/cake.tsx"
        }
      ]
    },
    {
      "name": "illustration-dog-house",
      "type": "registry:component",
      "title": "Dog house illustration",
      "description": "A kennel with its arched door, a bone on its gable and its roof in the accent. Hovered, the roof lifts to show inside. One isometric scene from the Pets illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "pets"
      ],
      "meta": {
        "scene": "dog-house",
        "component": "IllustrationDogHouse",
        "category": "pets",
        "tags": [
          "dog",
          "kennel",
          "puppy",
          "yard"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/dog-house.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/dog-house.tsx"
        }
      ]
    },
    {
      "name": "illustration-fish-bowl",
      "type": "registry:component",
      "title": "Fish bowl illustration",
      "description": "A glass bowl of water, a ripple on it, and a goldfish in the accent swimming inside. Hovered, it leaps out. One isometric scene from the Pets illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "pets"
      ],
      "meta": {
        "scene": "fish-bowl",
        "component": "IllustrationFishBowl",
        "category": "pets",
        "tags": [
          "fish",
          "goldfish",
          "aquarium",
          "water"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/fish-bowl.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/fish-bowl.tsx"
        }
      ]
    },
    {
      "name": "illustration-pet-bowl",
      "type": "registry:component",
      "title": "Pet bowl illustration",
      "description": "A food bowl of kibble and a water bowl on their mat, and a bone-shaped treat in the accent over the food. Hovered, it drops in. One isometric scene from the Pets illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "pets"
      ],
      "meta": {
        "scene": "pet-bowl",
        "component": "IllustrationPetBowl",
        "category": "pets",
        "tags": [
          "food",
          "treat",
          "feeding",
          "dog",
          "cat"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/pet-bowl.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/pet-bowl.tsx"
        }
      ]
    },
    {
      "name": "illustration-cat-tree",
      "type": "registry:component",
      "title": "Cat tree illustration",
      "description": "A cat tree: a cubby, a post wound in sisal, the cat up on the top deck and its toy in the accent hanging below. Hovered, it's batted up. One isometric scene from the Pets illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "pets"
      ],
      "meta": {
        "scene": "cat-tree",
        "component": "IllustrationCatTree",
        "category": "pets",
        "tags": [
          "cat",
          "kitten",
          "scratching",
          "toy"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/cat-tree.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/cat-tree.tsx"
        }
      ]
    },
    {
      "name": "illustration-sun-cloud",
      "type": "registry:component",
      "title": "Sun and cloud illustration",
      "description": "The sun in the accent, its rays round it, half behind a cloud. Hovered, it comes out. One isometric scene from the Weather illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "weather"
      ],
      "meta": {
        "scene": "sun-cloud",
        "component": "IllustrationSunCloud",
        "category": "weather",
        "tags": [
          "sunny",
          "cloudy",
          "forecast",
          "sky",
          "day"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-scene.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/sun-cloud.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/sun-cloud.tsx"
        }
      ]
    },
    {
      "name": "illustration-rain",
      "type": "registry:component",
      "title": "Rain illustration",
      "description": "Drops in the accent falling from a cloud toward the rings of a puddle. Hovered, they fall. One isometric scene from the Weather illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "weather"
      ],
      "meta": {
        "scene": "rain",
        "component": "IllustrationRain",
        "category": "weather",
        "tags": [
          "rainy",
          "drops",
          "shower",
          "forecast",
          "wet"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/rain.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/rain.tsx"
        }
      ]
    },
    {
      "name": "illustration-snowflake",
      "type": "registry:component",
      "title": "Snowflake illustration",
      "description": "A snowflake in the accent over the snow lying on the ground. Hovered, it settles. One isometric scene from the Weather illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "weather"
      ],
      "meta": {
        "scene": "snowflake",
        "component": "IllustrationSnowflake",
        "category": "weather",
        "tags": [
          "snow",
          "winter",
          "cold",
          "frost",
          "forecast"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/snowflake.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/snowflake.tsx"
        }
      ]
    },
    {
      "name": "illustration-lightning",
      "type": "registry:component",
      "title": "Lightning illustration",
      "description": "A storm cloud with a bolt in the accent out of it, and the ground it's about to hit. Hovered, it strikes. One isometric scene from the Weather illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "weather"
      ],
      "meta": {
        "scene": "lightning",
        "component": "IllustrationLightning",
        "category": "weather",
        "tags": [
          "storm",
          "thunder",
          "bolt",
          "flash",
          "forecast"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/lightning.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/lightning.tsx"
        }
      ]
    },
    {
      "name": "illustration-tree",
      "type": "registry:component",
      "title": "Tree illustration",
      "description": "An apple tree, its crown four puffs, and an apple in the accent hanging under it. Hovered, it falls. One isometric scene from the Nature illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "nature"
      ],
      "meta": {
        "scene": "tree",
        "component": "IllustrationTree",
        "category": "nature",
        "tags": [
          "apple",
          "park",
          "garden",
          "forest",
          "outdoors"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/tree.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/tree.tsx"
        }
      ]
    },
    {
      "name": "illustration-mountain",
      "type": "registry:component",
      "title": "Mountain illustration",
      "description": "Two snow-capped peaks, and a flag in the accent on the taller one's summit. Hovered, it's run up the pole. One isometric scene from the Nature illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "nature"
      ],
      "meta": {
        "scene": "mountain",
        "component": "IllustrationMountain",
        "category": "nature",
        "tags": [
          "peak",
          "summit",
          "hiking",
          "climb",
          "goal"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-scene.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/mountain.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/mountain.tsx"
        }
      ]
    },
    {
      "name": "illustration-island",
      "type": "registry:component",
      "title": "Island illustration",
      "description": "An island of sand in the sea, a palm leaning over it, and a boat offshore, its sail in the accent. Hovered, a swell lifts it. One isometric scene from the Nature illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "nature"
      ],
      "meta": {
        "scene": "island",
        "component": "IllustrationIsland",
        "category": "nature",
        "tags": [
          "beach",
          "palm",
          "sea",
          "holiday",
          "tropical"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/island.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/island.tsx"
        }
      ]
    },
    {
      "name": "illustration-flower",
      "type": "registry:component",
      "title": "Flower illustration",
      "description": "A daisy in the accent standing in a glass vase, two leaves on its stem. Hovered, it's lifted out. One isometric scene from the Nature illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "nature"
      ],
      "meta": {
        "scene": "flower",
        "component": "IllustrationFlower",
        "category": "nature",
        "tags": [
          "bloom",
          "daisy",
          "vase",
          "spring",
          "garden"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/flower.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/flower.tsx"
        }
      ]
    },
    {
      "name": "illustration-recycling",
      "type": "registry:component",
      "title": "Recycling illustration",
      "description": "A recycling bin with its mark, and a bottle in the accent over the opening. Hovered, it drops in. One isometric scene from the Nature illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "nature"
      ],
      "meta": {
        "scene": "recycling",
        "component": "IllustrationRecycling",
        "category": "nature",
        "tags": [
          "recycle",
          "bin",
          "waste",
          "bottle",
          "sustainability"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/recycling.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/recycling.tsx"
        }
      ]
    },
    {
      "name": "illustration-greenhouse",
      "type": "registry:component",
      "title": "Greenhouse illustration",
      "description": "A greenhouse, glass on a low wall, seedlings in pots in rows, and one of them in the accent. Hovered, it shoots up. One isometric scene from the Nature illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "nature"
      ],
      "meta": {
        "scene": "greenhouse",
        "component": "IllustrationGreenhouse",
        "category": "nature",
        "tags": [
          "garden",
          "seedlings",
          "grow",
          "glass",
          "plants"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-scene.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/greenhouse.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/greenhouse.tsx"
        }
      ]
    },
    {
      "name": "illustration-water-drop",
      "type": "registry:component",
      "title": "Water drop illustration",
      "description": "One drop of water in the accent over the rings it's about to make. Hovered, it falls. One isometric scene from the Nature illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "nature"
      ],
      "meta": {
        "scene": "water-drop",
        "component": "IllustrationWaterDrop",
        "category": "nature",
        "tags": [
          "water",
          "droplet",
          "ripple",
          "liquid",
          "hydration"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/water-drop.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/water-drop.tsx"
        }
      ]
    },
    {
      "name": "illustration-solar-panel",
      "type": "registry:component",
      "title": "Solar panel illustration",
      "description": "A solar panel in the accent between its posts, its cells ruled across it. Hovered, it tilts to face the sun. One isometric scene from the Energy illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "energy"
      ],
      "meta": {
        "scene": "solar-panel",
        "component": "IllustrationSolarPanel",
        "category": "energy",
        "tags": [
          "solar",
          "sun",
          "renewable",
          "power",
          "electricity"
        ]
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-scene.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/solar-panel.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/solar-panel.tsx"
        }
      ]
    },
    {
      "name": "illustration-wind-turbine",
      "type": "registry:component",
      "title": "Wind turbine illustration",
      "description": "A wind turbine on its mast, its blades in the accent turning slowly. Hovered, a gust spins them up. One isometric scene from the Energy illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "energy"
      ],
      "meta": {
        "scene": "wind-turbine",
        "component": "IllustrationWindTurbine",
        "category": "energy",
        "tags": [
          "wind",
          "windmill",
          "renewable",
          "power",
          "electricity"
        ]
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-scene.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/wind-turbine.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/wind-turbine.tsx"
        }
      ]
    },
    {
      "name": "illustration-battery",
      "type": "registry:component",
      "title": "Battery illustration",
      "description": "A battery lying down, its case glass: three bars of charge in it and the fourth in the accent over its place. Hovered, it drops in. One isometric scene from the Energy illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "energy"
      ],
      "meta": {
        "scene": "battery",
        "component": "IllustrationBattery",
        "category": "energy",
        "tags": [
          "charge",
          "charging",
          "power",
          "level",
          "storage"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/battery.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/battery.tsx"
        }
      ]
    },
    {
      "name": "illustration-ev-charger",
      "type": "registry:component",
      "title": "EV charger illustration",
      "description": "A charging post with its screen, a bay marked out in front of it, and its plug in the accent sitting in the holster. Hovered, it's lifted out. One isometric scene from the Energy illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "energy"
      ],
      "meta": {
        "scene": "ev-charger",
        "component": "IllustrationEvCharger",
        "category": "energy",
        "tags": [
          "electric",
          "car",
          "charging",
          "plug",
          "station"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-scene.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/ev-charger.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/ev-charger.tsx"
        }
      ]
    },
    {
      "name": "illustration-car",
      "type": "registry:component",
      "title": "Car illustration",
      "description": "A car in the accent parked in its bay, its wheels on the ground. Hovered, it rises on its springs, ready to go. One isometric scene from the Transport illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "transport"
      ],
      "meta": {
        "scene": "car",
        "component": "IllustrationCar",
        "category": "transport",
        "tags": [
          "vehicle",
          "drive",
          "ride",
          "parking",
          "road"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-scene.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/car.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/car.tsx"
        }
      ]
    },
    {
      "name": "illustration-bus",
      "type": "registry:component",
      "title": "Bus illustration",
      "description": "A bus pulled in to its stop, its livery and destination lit in the accent, the sign and a bench on the curb. Hovered, it rises on its springs. One isometric scene from the Transport illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "transport"
      ],
      "meta": {
        "scene": "bus",
        "component": "IllustrationBus",
        "category": "transport",
        "tags": [
          "transit",
          "commute",
          "stop",
          "public",
          "city"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/bus.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/bus.tsx"
        }
      ]
    },
    {
      "name": "illustration-train",
      "type": "registry:component",
      "title": "Train illustration",
      "description": "A train on its rails, sleepers under them, its long nose in the accent. Hovered, it rises on its springs. One isometric scene from the Transport illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "transport"
      ],
      "meta": {
        "scene": "train",
        "component": "IllustrationTrain",
        "category": "transport",
        "tags": [
          "rail",
          "railway",
          "transit",
          "commute",
          "station"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-scene.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/train.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/train.tsx"
        }
      ]
    },
    {
      "name": "illustration-scooter",
      "type": "registry:component",
      "title": "Scooter illustration",
      "description": "A kick scooter mid-hop over its shadow: deck, stem and bar in the accent, on two small wheels. Hovered, it kicks up higher. One isometric scene from the Transport illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "transport"
      ],
      "meta": {
        "scene": "scooter",
        "component": "IllustrationScooter",
        "category": "transport",
        "tags": [
          "kick",
          "ride",
          "electric",
          "commute",
          "city"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/scooter.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/scooter.tsx"
        }
      ]
    },
    {
      "name": "illustration-ship",
      "type": "registry:component",
      "title": "Ship illustration",
      "description": "A container ship out on the water, the hull in the accent, boxes stacked on deck and the bridge at the stern. Hovered, it rides up the swell. One isometric scene from the Transport illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "transport"
      ],
      "meta": {
        "scene": "ship",
        "component": "IllustrationShip",
        "category": "transport",
        "tags": [
          "boat",
          "cargo",
          "shipping",
          "freight",
          "sea",
          "port"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/ship.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/ship.tsx"
        }
      ]
    },
    {
      "name": "illustration-office-tower",
      "type": "registry:component",
      "title": "Office tower illustration",
      "description": "A glass tower of ribbon windows between two lower blocks, and its crown in the accent. Hovered, the crown lifts off. One isometric scene from the Places illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "places"
      ],
      "meta": {
        "scene": "office-tower",
        "component": "IllustrationOfficeTower",
        "category": "places",
        "tags": [
          "building",
          "office",
          "skyscraper",
          "city",
          "business"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/office-tower.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/office-tower.tsx"
        }
      ]
    },
    {
      "name": "illustration-bank",
      "type": "registry:component",
      "title": "Bank illustration",
      "description": "A bank behind its four columns on a flight of steps, its name across the frieze, and a coin in the accent over the pediment. Hovered, the coin lifts. One isometric scene from the Places illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "places"
      ],
      "meta": {
        "scene": "bank",
        "component": "IllustrationBank",
        "category": "places",
        "tags": [
          "money",
          "finance",
          "building",
          "branch",
          "deposit"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/bank.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/bank.tsx"
        }
      ]
    },
    {
      "name": "illustration-hospital",
      "type": "registry:component",
      "title": "Hospital illustration",
      "description": "A hospital with its cross over the doors and a pad on the roof, and a helicopter in the accent over it. Hovered, it takes off. One isometric scene from the Places illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "places"
      ],
      "meta": {
        "scene": "hospital",
        "component": "IllustrationHospital",
        "category": "places",
        "tags": [
          "health",
          "medical",
          "clinic",
          "emergency",
          "helicopter"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/hospital.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/hospital.tsx"
        }
      ]
    },
    {
      "name": "illustration-school",
      "type": "registry:component",
      "title": "School illustration",
      "description": "A schoolhouse: two floors of windows, the tower over its door with the clock on it, and the flag in the accent at the foot of its pole. Hovered, it runs up. One isometric scene from the Places illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "places"
      ],
      "meta": {
        "scene": "school",
        "component": "IllustrationSchool",
        "category": "places",
        "tags": [
          "education",
          "class",
          "campus",
          "building",
          "flag"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/school.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/school.tsx"
        }
      ]
    },
    {
      "name": "illustration-museum",
      "type": "registry:component",
      "title": "Museum illustration",
      "description": "A gallery corner: a painting on the wall, a rope in front, and on its plinth an amphora in the accent. Hovered, it lifts for a closer look. One isometric scene from the Places illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "places"
      ],
      "meta": {
        "scene": "museum",
        "component": "IllustrationMuseum",
        "category": "places",
        "tags": [
          "gallery",
          "art",
          "exhibit",
          "culture",
          "history"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/museum.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/museum.tsx"
        }
      ]
    },
    {
      "name": "illustration-lighthouse",
      "type": "registry:component",
      "title": "Lighthouse illustration",
      "description": "A lighthouse on its rock, banded, rings on the water round it, and the lantern in the accent shining out. Hovered, the lantern lifts. One isometric scene from the Places illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "places"
      ],
      "meta": {
        "scene": "lighthouse",
        "component": "IllustrationLighthouse",
        "category": "places",
        "tags": [
          "coast",
          "sea",
          "beacon",
          "light",
          "harbour"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/lighthouse.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/lighthouse.tsx"
        }
      ]
    },
    {
      "name": "illustration-tent",
      "type": "registry:component",
      "title": "Tent illustration",
      "description": "A tent pitched on its patch, guyed out, door open, and the campfire in front with its flame in the accent. Hovered, the fire flares up. One isometric scene from the Outdoors illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "outdoors"
      ],
      "meta": {
        "scene": "tent",
        "component": "IllustrationTent",
        "category": "outdoors",
        "tags": [
          "camping",
          "campfire",
          "trip",
          "nature",
          "night"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/tent.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/tent.tsx"
        }
      ]
    },
    {
      "name": "illustration-compass",
      "type": "registry:component",
      "title": "Compass illustration",
      "description": "A compass with its dial and bail, and over the dial its needle, the north half in the accent. Hovered, it lifts to find north. One isometric scene from the Outdoors illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "outdoors"
      ],
      "meta": {
        "scene": "compass",
        "component": "IllustrationCompass",
        "category": "outdoors",
        "tags": [
          "direction",
          "navigation",
          "north",
          "explore",
          "hiking"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/compass.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/compass.tsx"
        }
      ]
    },
    {
      "name": "illustration-binoculars",
      "type": "registry:component",
      "title": "Binoculars illustration",
      "description": "Binoculars hovering over their shadow, the lens barrels facing you in the accent. Hovered, they're raised to take a look. One isometric scene from the Outdoors illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "outdoors"
      ],
      "meta": {
        "scene": "binoculars",
        "component": "IllustrationBinoculars",
        "category": "outdoors",
        "tags": [
          "look",
          "explore",
          "birdwatching",
          "view",
          "discover"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/binoculars.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/binoculars.tsx"
        }
      ]
    },
    {
      "name": "illustration-hot-air-balloon",
      "type": "registry:component",
      "title": "Hot-air balloon illustration",
      "description": "A hot-air balloon going up over its landing field, the envelope in the accent, the basket hanging under it. Hovered, it climbs. One isometric scene from the Outdoors illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "outdoors"
      ],
      "meta": {
        "scene": "hot-air-balloon",
        "component": "IllustrationHotAirBalloon",
        "category": "outdoors",
        "tags": [
          "balloon",
          "flight",
          "sky",
          "adventure",
          "travel"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/hot-air-balloon.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/hot-air-balloon.tsx"
        }
      ]
    },
    {
      "name": "illustration-beach",
      "type": "registry:component",
      "title": "Beach illustration",
      "description": "A day at the beach: the sea lapping at the sand, a striped towel laid out, and the umbrella in the accent over it. Hovered, a gust lifts it. One isometric scene from the Outdoors illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "outdoors"
      ],
      "meta": {
        "scene": "beach",
        "component": "IllustrationBeach",
        "category": "outdoors",
        "tags": [
          "holiday",
          "summer",
          "umbrella",
          "towel",
          "sand",
          "vacation"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/beach.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/beach.tsx"
        }
      ]
    },
    {
      "name": "illustration-microscope",
      "type": "registry:component",
      "title": "Microscope illustration",
      "description": "A microscope on its foot, a slide on the stage, its tube in the accent. Hovered, it racks up to focus. One isometric scene from the Science illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "science"
      ],
      "meta": {
        "scene": "microscope",
        "component": "IllustrationMicroscope",
        "category": "science",
        "tags": [
          "lab",
          "research",
          "biology",
          "zoom",
          "sample"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-scene.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/microscope.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/microscope.tsx"
        }
      ]
    },
    {
      "name": "illustration-lab-flask",
      "type": "registry:component",
      "title": "Lab flask illustration",
      "description": "A flask hovering over its plinth, the liquid in it lit in the accent, bubbles rising off it. Hovered, it lifts and they float away. One isometric scene from the Science illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "science"
      ],
      "meta": {
        "scene": "lab-flask",
        "component": "IllustrationLabFlask",
        "category": "science",
        "tags": [
          "chemistry",
          "experiment",
          "lab",
          "beta",
          "test"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-scene.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/lab-flask.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/lab-flask.tsx"
        }
      ]
    },
    {
      "name": "illustration-atom",
      "type": "registry:component",
      "title": "Atom illustration",
      "description": "An atom over its plinth: its nucleus in the accent inside three orbits, one electron on each. Hovered, it lifts. One isometric scene from the Science illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "science"
      ],
      "meta": {
        "scene": "atom",
        "component": "IllustrationAtom",
        "category": "science",
        "tags": [
          "physics",
          "energy",
          "particle",
          "electron",
          "nuclear"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-scene.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/atom.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/atom.tsx"
        }
      ]
    },
    {
      "name": "illustration-telescope",
      "type": "registry:component",
      "title": "Telescope illustration",
      "description": "A telescope on its tripod, trained on a star in the accent. Hovered, the star rises. One isometric scene from the Science illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "science"
      ],
      "meta": {
        "scene": "telescope",
        "component": "IllustrationTelescope",
        "category": "science",
        "tags": [
          "astronomy",
          "space",
          "stars",
          "discover",
          "observe"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-scene.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/telescope.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/telescope.tsx"
        }
      ]
    },
    {
      "name": "illustration-dna",
      "type": "registry:component",
      "title": "DNA illustration",
      "description": "A double helix on its stand, seen side on: two backbones twisting round each other, one lit in the accent, paired by their rungs. Hovered, the lit strand lifts away: it unzips. One isometric scene from the Science illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "science"
      ],
      "meta": {
        "scene": "dna",
        "component": "IllustrationDna",
        "category": "science",
        "tags": [
          "genetics",
          "biology",
          "helix",
          "gene",
          "health"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-scene.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/dna.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/dna.tsx"
        }
      ]
    },
    {
      "name": "illustration-padlock",
      "type": "registry:component",
      "title": "Padlock illustration",
      "description": "A padlock with its keyhole, its shackle in the accent. Hovered, the shackle springs open. One isometric scene from the Security illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "security"
      ],
      "meta": {
        "scene": "padlock",
        "component": "IllustrationPadlock",
        "category": "security",
        "tags": [
          "lock",
          "locked",
          "unlock",
          "privacy",
          "secure"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/padlock.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/padlock.tsx"
        }
      ]
    },
    {
      "name": "illustration-key",
      "type": "registry:component",
      "title": "Key illustration",
      "description": "A key in the accent hanging over the lock it fits, the slot cut in the plate below. Hovered, it drops toward it. One isometric scene from the Security illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "security"
      ],
      "meta": {
        "scene": "key",
        "component": "IllustrationKey",
        "category": "security",
        "tags": [
          "access",
          "password",
          "unlock",
          "credentials",
          "login"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/key.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/key.tsx"
        }
      ]
    },
    {
      "name": "illustration-fingerprint",
      "type": "registry:component",
      "title": "Fingerprint illustration",
      "description": "A reader standing on its plinth, its glass lit, and a print in the accent lifting off it. Hovered, it's read. One isometric scene from the Security illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "security"
      ],
      "meta": {
        "scene": "fingerprint",
        "component": "IllustrationFingerprint",
        "category": "security",
        "tags": [
          "biometric",
          "identity",
          "touch",
          "scan",
          "login"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/fingerprint.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/fingerprint.tsx"
        }
      ]
    },
    {
      "name": "illustration-shield",
      "type": "registry:component",
      "title": "Shield illustration",
      "description": "A shield in the accent standing guard over its plinth, a check on its face. Hovered, it rises. One isometric scene from the Security illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "security"
      ],
      "meta": {
        "scene": "shield",
        "component": "IllustrationShield",
        "category": "security",
        "tags": [
          "protection",
          "antivirus",
          "safe",
          "guard",
          "verified"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/shield.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/shield.tsx"
        }
      ]
    },
    {
      "name": "illustration-vault",
      "type": "registry:component",
      "title": "Vault illustration",
      "description": "A safe on its feet with its door swung wide on its bolts, gold stacked inside, and one bar in the accent drawn out. Hovered, it lifts clear. One isometric scene from the Security illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "security"
      ],
      "meta": {
        "scene": "vault",
        "component": "IllustrationVault",
        "category": "security",
        "tags": [
          "safe",
          "gold",
          "valuables",
          "secure",
          "savings"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/vault.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/vault.tsx"
        }
      ]
    },
    {
      "name": "illustration-phone",
      "type": "registry:component",
      "title": "Phone illustration",
      "description": "A phone standing on its plinth, its home screen on, and a notification in the accent lifting off it. Hovered, it rises clear. One isometric scene from the Devices illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "devices"
      ],
      "meta": {
        "scene": "phone",
        "component": "IllustrationPhone",
        "category": "devices",
        "tags": [
          "mobile",
          "smartphone",
          "app",
          "notification",
          "cell"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/phone.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/phone.tsx"
        }
      ]
    },
    {
      "name": "illustration-laptop",
      "type": "registry:component",
      "title": "Laptop illustration",
      "description": "A laptop open on its plinth, facing the other way from the call's, a window of code on its screen and one in the accent lifting off it. Hovered, it comes clear. One isometric scene from the Devices illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "devices"
      ],
      "meta": {
        "scene": "laptop",
        "component": "IllustrationLaptop",
        "category": "devices",
        "tags": [
          "computer",
          "notebook",
          "desktop",
          "code",
          "screen"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/laptop.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/laptop.tsx"
        }
      ]
    },
    {
      "name": "illustration-smartwatch",
      "type": "registry:component",
      "title": "Smartwatch illustration",
      "description": "A watch hovering over its charger, its strap up and down, and the ring on its screen closing in the accent. Hovered, it lifts off. One isometric scene from the Devices illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "devices"
      ],
      "meta": {
        "scene": "smartwatch",
        "component": "IllustrationSmartwatch",
        "category": "devices",
        "tags": [
          "watch",
          "wearable",
          "fitness",
          "time",
          "activity"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/smartwatch.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/smartwatch.tsx"
        }
      ]
    },
    {
      "name": "illustration-vr-headset",
      "type": "registry:component",
      "title": "VR headset illustration",
      "description": "A headset resting on its plinth, and over it the world it shows: a wireframe cube in the accent. Hovered, the cube rises. One isometric scene from the Devices illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "devices"
      ],
      "meta": {
        "scene": "vr-headset",
        "component": "IllustrationVrHeadset",
        "category": "devices",
        "tags": [
          "virtual",
          "reality",
          "goggles",
          "immersive",
          "3d"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/vr-headset.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/vr-headset.tsx"
        }
      ]
    },
    {
      "name": "illustration-printer",
      "type": "registry:component",
      "title": "Printer illustration",
      "description": "A printer with its paper standing in the feed, and the page it just printed on the tray in the accent. Hovered, the page lifts off. One isometric scene from the Devices illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "devices"
      ],
      "meta": {
        "scene": "printer",
        "component": "IllustrationPrinter",
        "category": "devices",
        "tags": [
          "print",
          "paper",
          "office",
          "document",
          "page"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/printer.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/printer.tsx"
        }
      ]
    },
    {
      "name": "illustration-drone",
      "type": "registry:component",
      "title": "Drone illustration",
      "description": "A drone in the accent hovering over its landing pad, its rotors a blur. Hovered, it climbs. One isometric scene from the Devices illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "devices"
      ],
      "meta": {
        "scene": "drone",
        "component": "IllustrationDrone",
        "category": "devices",
        "tags": [
          "quadcopter",
          "flying",
          "aerial",
          "camera",
          "delivery"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/drone.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/drone.tsx"
        }
      ]
    },
    {
      "name": "illustration-handshake",
      "type": "registry:component",
      "title": "Handshake illustration",
      "description": "Two arms meeting over a round plinth, sleeves and cuffs, and the clasp of their hands in the accent. The pair bobs as a shake does; hovered, it rises. One isometric scene from the Business illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "business"
      ],
      "meta": {
        "scene": "handshake",
        "component": "IllustrationHandshake",
        "category": "business",
        "tags": [
          "deal",
          "agreement",
          "partner",
          "welcome",
          "trust"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/handshake.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/handshake.tsx"
        }
      ]
    },
    {
      "name": "illustration-presentation",
      "type": "registry:component",
      "title": "Presentation illustration",
      "description": "A pitch on an easel: bullet points and a pie, its key slice in the accent coming off the board. Hovered, it lifts out. One isometric scene from the Business illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "business"
      ],
      "meta": {
        "scene": "presentation",
        "component": "IllustrationPresentation",
        "category": "business",
        "tags": [
          "pitch",
          "slides",
          "easel",
          "chart",
          "meeting"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/presentation.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/presentation.tsx"
        }
      ]
    },
    {
      "name": "illustration-meeting",
      "type": "registry:component",
      "title": "Meeting illustration",
      "description": "A boardroom table, chairs drawn up round it and a paper at each place, and over it what's being said, in the accent. Hovered, it rises. One isometric scene from the Business illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "business"
      ],
      "meta": {
        "scene": "meeting",
        "component": "IllustrationMeeting",
        "category": "business",
        "tags": [
          "boardroom",
          "conference",
          "table",
          "chairs",
          "discussion"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/meeting.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/meeting.tsx"
        }
      ]
    },
    {
      "name": "illustration-org-chart",
      "type": "registry:component",
      "title": "Org chart illustration",
      "description": "An org chart on a standing board: the team, their two leads, and at the top the head in the accent, lifting off it. One isometric scene from the Business illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "business"
      ],
      "meta": {
        "scene": "org-chart",
        "component": "IllustrationOrgChart",
        "category": "business",
        "tags": [
          "hierarchy",
          "team",
          "structure",
          "company",
          "people"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/org-chart.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/org-chart.tsx"
        }
      ]
    },
    {
      "name": "illustration-target",
      "type": "registry:component",
      "title": "Target illustration",
      "description": "A target on the floor in rings, and a dart in the accent over the bullseye: point, barrel, shaft and crossed flights, the far vane first. Hovered, it lands. One isometric scene from the Business illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "business"
      ],
      "meta": {
        "scene": "target",
        "component": "IllustrationTarget",
        "category": "business",
        "tags": [
          "goal",
          "aim",
          "bullseye",
          "dart",
          "focus"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/target.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/target.tsx"
        }
      ]
    },
    {
      "name": "illustration-contract",
      "type": "registry:component",
      "title": "Contract illustration",
      "description": "A contract on the desk, a copy under it, and the pen in the accent over the line it's just signed. Hovered, the pen lifts. One isometric scene from the Business illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "business"
      ],
      "meta": {
        "scene": "contract",
        "component": "IllustrationContract",
        "category": "business",
        "tags": [
          "agreement",
          "sign",
          "signature",
          "document",
          "legal"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/contract.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/contract.tsx"
        }
      ]
    },
    {
      "name": "illustration-scales",
      "type": "registry:component",
      "title": "Scales illustration",
      "description": "A balance on its post, a pan hanging from each end of the beam, and a weight in the accent over the near one. Hovered, it's set down. One isometric scene from the Business illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "business"
      ],
      "meta": {
        "scene": "scales",
        "component": "IllustrationScales",
        "category": "business",
        "tags": [
          "justice",
          "balance",
          "law",
          "legal",
          "fair",
          "weigh"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/scales.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/scales.tsx"
        }
      ]
    },
    {
      "name": "illustration-stock-chart",
      "type": "registry:component",
      "title": "Stock chart illustration",
      "description": "Candles climbing a chart, falling days darker, each on its wick, the trend dashed through their closes, and the last in the accent breaking out. Hovered, it jumps. One isometric scene from the Finance illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "finance"
      ],
      "meta": {
        "scene": "stock-chart",
        "component": "IllustrationStockChart",
        "category": "finance",
        "tags": [
          "stocks",
          "trading",
          "market",
          "candles",
          "invest"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/stock-chart.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/stock-chart.tsx"
        }
      ]
    },
    {
      "name": "illustration-calculator",
      "type": "registry:component",
      "title": "Calculator illustration",
      "description": "A calculator on the desk, its display and keys, and its tall equals key in the accent springing up out of its place. Hovered, it rises. One isometric scene from the Finance illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "finance"
      ],
      "meta": {
        "scene": "calculator",
        "component": "IllustrationCalculator",
        "category": "finance",
        "tags": [
          "math",
          "budget",
          "accounting",
          "sum",
          "tax"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/calculator.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/calculator.tsx"
        }
      ]
    },
    {
      "name": "illustration-coins",
      "type": "registry:component",
      "title": "Coins illustration",
      "description": "Coins stacked in three piles, a few loose, and the next coin in the accent over the tallest. Hovered, it drops onto the pile. One isometric scene from the Finance illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "finance"
      ],
      "meta": {
        "scene": "coins",
        "component": "IllustrationCoins",
        "category": "finance",
        "tags": [
          "money",
          "cash",
          "change",
          "savings",
          "earnings"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/coins.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/coins.tsx"
        }
      ]
    },
    {
      "name": "illustration-invoice",
      "type": "registry:component",
      "title": "Invoice illustration",
      "description": "A till with its screen and keys, and the invoice in the accent printing out of the slot at its back. Hovered, more of it comes out. One isometric scene from the Finance illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "finance"
      ],
      "meta": {
        "scene": "invoice",
        "component": "IllustrationInvoice",
        "category": "finance",
        "tags": [
          "bill",
          "receipt",
          "billing",
          "payment",
          "print"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/invoice.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/invoice.tsx"
        }
      ]
    },
    {
      "name": "illustration-phone-call",
      "type": "registry:component",
      "title": "Phone call illustration",
      "description": "A desk phone with its dial, and the handset in the accent over its cradle. Hovered, it's picked up. One isometric scene from the Social illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "social"
      ],
      "meta": {
        "scene": "phone-call",
        "component": "IllustrationPhoneCall",
        "category": "social",
        "tags": [
          "call",
          "ring",
          "telephone",
          "support",
          "contact"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/phone-call.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/phone-call.tsx"
        }
      ]
    },
    {
      "name": "illustration-newsletter",
      "type": "registry:component",
      "title": "Newsletter illustration",
      "description": "A mailbox on its post, the day's newsletter rolled in its open door, and its flag in the accent up. Hovered, the flag rises. One isometric scene from the Social illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "social"
      ],
      "meta": {
        "scene": "newsletter",
        "component": "IllustrationNewsletter",
        "category": "social",
        "tags": [
          "subscribe",
          "mailbox",
          "news",
          "updates",
          "inbox"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/newsletter.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/newsletter.tsx"
        }
      ]
    },
    {
      "name": "illustration-podcast",
      "type": "registry:component",
      "title": "Podcast illustration",
      "description": "A studio mic on its stand, its capsule in the accent, and headphones standing beside it. Hovered, the mic rises. One isometric scene from the Social illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "social"
      ],
      "meta": {
        "scene": "podcast",
        "component": "IllustrationPodcast",
        "category": "social",
        "tags": [
          "mic",
          "microphone",
          "audio",
          "record",
          "show"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/podcast.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/podcast.tsx"
        }
      ]
    },
    {
      "name": "illustration-community",
      "type": "registry:component",
      "title": "Community illustration",
      "description": "People holding hands in a circle, and over the place kept for them the one joining, in the accent. Hovered, they step in and the circle closes. One isometric scene from the Social illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "social"
      ],
      "meta": {
        "scene": "community",
        "component": "IllustrationCommunity",
        "category": "social",
        "tags": [
          "people",
          "group",
          "gathering",
          "members",
          "campfire"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/community.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/community.tsx"
        }
      ]
    },
    {
      "name": "illustration-reactions",
      "type": "registry:component",
      "title": "Reactions illustration",
      "description": "A post and the reactions under it, and a heart in the accent rising off them. Hovered, it floats up. One isometric scene from the Social illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "social"
      ],
      "meta": {
        "scene": "reactions",
        "component": "IllustrationReactions",
        "category": "social",
        "tags": [
          "like",
          "heart",
          "emoji",
          "feedback",
          "post"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/reactions.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/reactions.tsx"
        }
      ]
    },
    {
      "name": "illustration-pizza",
      "type": "registry:component",
      "title": "Pizza illustration",
      "description": "A pizza on its board, cut in six, and the slice in the accent lifted out of it. Hovered, it rises away. One isometric scene from the Food illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "food"
      ],
      "meta": {
        "scene": "pizza",
        "component": "IllustrationPizza",
        "category": "food",
        "tags": [
          "slice",
          "takeaway",
          "dinner",
          "order"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/pizza.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/pizza.tsx"
        }
      ]
    },
    {
      "name": "illustration-bakery",
      "type": "registry:component",
      "title": "Bakery illustration",
      "description": "A loaf on its board with the bread knife in front, and its first slice in the accent falling away. Hovered, it lifts off. One isometric scene from the Food illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "food"
      ],
      "meta": {
        "scene": "bakery",
        "component": "IllustrationBakery",
        "category": "food",
        "tags": [
          "bread",
          "loaf",
          "toast",
          "breakfast"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/bakery.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/bakery.tsx"
        }
      ]
    },
    {
      "name": "illustration-cocktail",
      "type": "registry:component",
      "title": "Cocktail illustration",
      "description": "A cocktail on its stem, and over it a cherry in the accent. Hovered, it drops in. One isometric scene from the Food illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "food"
      ],
      "meta": {
        "scene": "cocktail",
        "component": "IllustrationCocktail",
        "category": "food",
        "tags": [
          "drink",
          "bar",
          "glass",
          "party"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/cocktail.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/cocktail.tsx"
        }
      ]
    },
    {
      "name": "illustration-cooking",
      "type": "registry:component",
      "title": "Cooking illustration",
      "description": "A pot on the hob, the empty ring beside it, and its lid in the accent rattling on a head of steam. Hovered, it lifts. One isometric scene from the Food illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "food"
      ],
      "meta": {
        "scene": "cooking",
        "component": "IllustrationCooking",
        "category": "food",
        "tags": [
          "pot",
          "stove",
          "kitchen",
          "recipe",
          "steam"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-scene.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/cooking.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/cooking.tsx"
        }
      ]
    },
    {
      "name": "illustration-pills",
      "type": "registry:component",
      "title": "Pills illustration",
      "description": "An open pill bottle with its label, the cap on its side and two tablets by it, and a capsule in the accent rising out. Hovered, it rises further. One isometric scene from the Health illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "health"
      ],
      "meta": {
        "scene": "pills",
        "component": "IllustrationPills",
        "category": "health",
        "tags": [
          "medicine",
          "pharmacy",
          "prescription",
          "capsule"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/pills.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/pills.tsx"
        }
      ]
    },
    {
      "name": "illustration-stethoscope",
      "type": "registry:component",
      "title": "Stethoscope illustration",
      "description": "A stethoscope laid on the table, its tubing looped round, and its chest piece in the accent. Hovered, it's picked up to listen. One isometric scene from the Health illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "health"
      ],
      "meta": {
        "scene": "stethoscope",
        "component": "IllustrationStethoscope",
        "category": "health",
        "tags": [
          "doctor",
          "checkup",
          "clinic",
          "medical"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/stethoscope.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/stethoscope.tsx"
        }
      ]
    },
    {
      "name": "illustration-tooth",
      "type": "registry:component",
      "title": "Tooth illustration",
      "description": "A tooth in the accent, shining, over the brush that keeps it so. Hovered, it rises. One isometric scene from the Health illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "health"
      ],
      "meta": {
        "scene": "tooth",
        "component": "IllustrationTooth",
        "category": "health",
        "tags": [
          "dentist",
          "dental",
          "teeth",
          "toothbrush"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/tooth.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/tooth.tsx"
        }
      ]
    },
    {
      "name": "illustration-yoga",
      "type": "registry:component",
      "title": "Yoga illustration",
      "description": "Someone meditating, cut from the accent like a standee: crossed legs, hands on the knees. It floats over the mat, a block beside it. Hovered, it rises. One isometric scene from the Health illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "health"
      ],
      "meta": {
        "scene": "yoga",
        "component": "IllustrationYoga",
        "category": "health",
        "tags": [
          "meditation",
          "mindfulness",
          "wellness",
          "calm",
          "mat"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/yoga.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/yoga.tsx"
        }
      ]
    },
    {
      "name": "illustration-globe",
      "type": "registry:component",
      "title": "Globe illustration",
      "description": "A desk globe: the sphere in the accent, tilted on its axis in a half ring over its stand, its lines of latitude and longitude on it. Hovered, it lifts out. One isometric scene from the Education illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "education"
      ],
      "meta": {
        "scene": "globe",
        "component": "IllustrationGlobe",
        "category": "education",
        "tags": [
          "world",
          "geography",
          "earth",
          "international",
          "language"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/globe.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/globe.tsx"
        }
      ]
    },
    {
      "name": "illustration-school-backpack",
      "type": "registry:component",
      "title": "School backpack illustration",
      "description": "A school backpack in the accent, zipped, its front pocket and handle, a pencil on the floor in front. Hovered, it's picked up. One isometric scene from the Education illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "education"
      ],
      "meta": {
        "scene": "school-backpack",
        "component": "IllustrationBackpack",
        "category": "education",
        "tags": [
          "bag",
          "student",
          "kids",
          "homework"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/school-backpack.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/school-backpack.tsx"
        }
      ]
    },
    {
      "name": "illustration-library",
      "type": "registry:component",
      "title": "Library illustration",
      "description": "A bookcase of two shelves, books standing in rows, a stack lying flat and a plant at the ends, and one book in the accent taken out, hovering by its gap. Hovered, it rises. One isometric scene from the Education illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "education"
      ],
      "meta": {
        "scene": "library",
        "component": "IllustrationLibrary",
        "category": "education",
        "tags": [
          "bookcase",
          "shelf",
          "reading",
          "books",
          "catalog"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/library.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/library.tsx"
        }
      ]
    },
    {
      "name": "illustration-abacus",
      "type": "registry:component",
      "title": "Abacus illustration",
      "description": "An abacus standing on its feet, beads on its rods, and two in the accent on their way up to the beam. Hovered, they're counted. One isometric scene from the Education illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "education"
      ],
      "meta": {
        "scene": "abacus",
        "component": "IllustrationAbacus",
        "category": "education",
        "tags": [
          "counting",
          "math",
          "numbers",
          "beads"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/abacus.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/abacus.tsx"
        }
      ]
    },
    {
      "name": "illustration-easel",
      "type": "registry:component",
      "title": "Easel illustration",
      "description": "A canvas on its easel with a landscape on it, and the palette in the accent with its paints and brush. Hovered, it's picked up. One isometric scene from the Media illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "media"
      ],
      "meta": {
        "scene": "easel",
        "component": "IllustrationEasel",
        "category": "media",
        "tags": [
          "painting",
          "art",
          "canvas",
          "palette",
          "creative"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/easel.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/easel.tsx"
        }
      ]
    },
    {
      "name": "illustration-guitar",
      "type": "registry:component",
      "title": "Guitar illustration",
      "description": "An acoustic guitar in the accent, leaning as if on a stand, its amp behind it. Hovered, it's picked up. One isometric scene from the Media illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "media"
      ],
      "meta": {
        "scene": "guitar",
        "component": "IllustrationGuitar",
        "category": "media",
        "tags": [
          "music",
          "instrument",
          "amp",
          "band"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/guitar.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/guitar.tsx"
        }
      ]
    },
    {
      "name": "illustration-film-reel",
      "type": "registry:component",
      "title": "Film reel illustration",
      "description": "A film reel in the accent standing on its edge, the film wound between its flanges and run out across the floor. Hovered, it lifts. One isometric scene from the Media illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "media"
      ],
      "meta": {
        "scene": "film-reel",
        "component": "IllustrationFilmReel",
        "category": "media",
        "tags": [
          "movie",
          "cinema",
          "film",
          "video"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/film-reel.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/film-reel.tsx"
        }
      ]
    },
    {
      "name": "illustration-design-tools",
      "type": "registry:component",
      "title": "Design tools illustration",
      "description": "A curve being drawn across the table, its anchors and handles out, a set square and a ruler by it, and the pen nib in the accent over its last point. Hovered, it lifts off the stroke. One isometric scene from the Media illustrations, on its own: it assembles as it comes into view, its hero part floats, and it comes apart on hover. Decorative unless titled; reduced motion draws it finished and still.",
      "categories": [
        "illustrations",
        "media"
      ],
      "meta": {
        "scene": "design-tools",
        "component": "IllustrationDesignTools",
        "category": "media",
        "tags": [
          "pen",
          "vector",
          "ruler",
          "drawing",
          "bezier"
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/illustration-kit.json",
        "https://www.youj.dev/r/iso-shapes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/graphics/illustrations/scenes/design-tools.tsx",
          "type": "registry:component",
          "target": "components/youj/graphics/illustrations/scenes/design-tools.tsx"
        }
      ]
    },
    {
      "name": "loader-prism",
      "type": "registry:component",
      "title": "Prism loader",
      "description": "A ray of light crosses a wireframe prism and comes out as a fan of three colors, each landing on a screen as a band; the prism sways and the bands sweep. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "color"
      ],
      "meta": {
        "loader": "prism",
        "component": "LoaderPrism",
        "category": "color",
        "technique": "lines",
        "order": 1,
        "title": "Prism",
        "tags": [
          "light",
          "ray",
          "dispersion",
          "spectrum",
          "optics",
          "refraction",
          "wireframe"
        ],
        "beats": 5,
        "colors": [
          {
            "part": "First ray",
            "mono": "ink"
          },
          {
            "part": "Second ray",
            "mono": "ink"
          },
          {
            "part": "Third ray",
            "mono": "ink",
            "role": "c4"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/color/prism.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/color/prism.tsx"
        }
      ]
    },
    {
      "name": "loader-overprint",
      "type": "registry:component",
      "title": "Overprint loader",
      "description": "Three print plates, each a square in its own color, slide in from three sides and settle into register, their tints overlapping into one; the registration mark flashes in the accent, and the plates drift apart again. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "color"
      ],
      "meta": {
        "loader": "overprint",
        "component": "LoaderOverprint",
        "category": "color",
        "technique": "planes",
        "order": 2,
        "title": "Overprint",
        "tags": [
          "print",
          "registration",
          "plates",
          "layers",
          "tint",
          "press",
          "cmyk"
        ],
        "beats": 5,
        "colors": [
          {
            "part": "First plate",
            "mono": "ink"
          },
          {
            "part": "Second plate",
            "mono": "ink"
          },
          {
            "part": "Third plate",
            "mono": "ink",
            "role": "c4"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/color/overprint.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/color/overprint.tsx"
        }
      ]
    },
    {
      "name": "loader-spectrum",
      "type": "registry:component",
      "title": "Spectrum loader",
      "description": "An isometric grid of the brand’s square particles, a gradient sliding through it once a loop: each square lifts and passes from the ink through two colors and back, the accent corner leading. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "color"
      ],
      "meta": {
        "loader": "spectrum",
        "component": "LoaderSpectrum",
        "category": "color",
        "technique": "particles",
        "order": 3,
        "title": "Spectrum",
        "tags": [
          "gradient",
          "hue",
          "wave",
          "grid",
          "isometric",
          "swatch",
          "shimmer"
        ],
        "beats": 4,
        "colors": [
          {
            "part": "Leading hue",
            "mono": "ink"
          },
          {
            "part": "Trailing hue",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/color/spectrum.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/color/spectrum.tsx"
        }
      ]
    },
    {
      "name": "loader-gyre",
      "type": "registry:component",
      "title": "Gyre loader",
      "description": "Three tilted rings turn around the accent particle, each carrying particles in a color of its own, crossing in depth so the colors weave through each other. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "color"
      ],
      "meta": {
        "loader": "gyre",
        "component": "LoaderGyre",
        "category": "color",
        "technique": "particles",
        "order": 4,
        "title": "Gyre",
        "tags": [
          "orbit",
          "rings",
          "atom",
          "gyroscope",
          "weave",
          "depth",
          "particles"
        ],
        "beats": 5,
        "colors": [
          {
            "part": "First ring",
            "mono": "ink"
          },
          {
            "part": "Second ring",
            "mono": "ink"
          },
          {
            "part": "Third ring",
            "mono": "ink",
            "role": "c4"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/color/gyre.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/color/gyre.tsx"
        }
      ]
    },
    {
      "name": "loader-bloom",
      "type": "registry:component",
      "title": "Bloom loader",
      "description": "The accent particle drops onto a grid of tiles and color spreads out from it like dye in water, separating into an inner and an outer ring, then fades back to the ink before the next drop. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "color"
      ],
      "meta": {
        "loader": "bloom",
        "component": "LoaderBloom",
        "category": "color",
        "technique": "planes",
        "order": 5,
        "title": "Bloom",
        "tags": [
          "dye",
          "diffuse",
          "spread",
          "drop",
          "chromatography",
          "grid",
          "ink"
        ],
        "beats": 5,
        "colors": [
          {
            "part": "Core",
            "mono": "ink"
          },
          {
            "part": "Edge",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/color/bloom.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/color/bloom.tsx"
        }
      ]
    },
    {
      "name": "loader-litmus",
      "type": "registry:component",
      "title": "Litmus loader",
      "description": "A test strip dips into a glass of reagent; color wicks up the paper and turns as the reaction completes, the strip lifts, an accent marker reads the result, and the color fades for the next test. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "color"
      ],
      "meta": {
        "loader": "litmus",
        "component": "LoaderLitmus",
        "category": "color",
        "technique": "planes",
        "order": 7,
        "title": "Litmus",
        "tags": [
          "test strip",
          "reaction",
          "indicator",
          "chemistry",
          "wick",
          "dip",
          "result"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Reagent",
            "mono": "ink"
          },
          {
            "part": "Reaction",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/color/litmus.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/color/litmus.tsx"
        }
      ]
    },
    {
      "name": "loader-weave",
      "type": "registry:component",
      "title": "Weave loader",
      "description": "A loom in the isometric view: warp threads in one color part into a shed, the accent shuttle carries a weft thread of another color across, the reed beats it in, and the cloth grows row by row. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "color"
      ],
      "meta": {
        "loader": "weave",
        "component": "LoaderWeave",
        "category": "color",
        "technique": "lines",
        "order": 8,
        "title": "Weave",
        "tags": [
          "loom",
          "textile",
          "warp",
          "weft",
          "shuttle",
          "interlace",
          "cloth"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Warp",
            "mono": "ink"
          },
          {
            "part": "Weft",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/color/weave.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/color/weave.tsx"
        }
      ]
    },
    {
      "name": "loader-swatch",
      "type": "registry:component",
      "title": "Swatch loader",
      "description": "A fan deck of swatch cards, each a ramp of chips from the ink to one of the theme’s colors, fans open around its pin, holds, and closes; the top card’s tab is the accent. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "color"
      ],
      "meta": {
        "loader": "swatch",
        "component": "LoaderSwatch",
        "category": "color",
        "technique": "planes",
        "order": 9,
        "title": "Swatch",
        "tags": [
          "palette",
          "swatches",
          "fan deck",
          "color",
          "tones",
          "design",
          "chips"
        ],
        "beats": 5,
        "colors": [
          {
            "part": "First ramp",
            "mono": "ink"
          },
          {
            "part": "Second ramp",
            "mono": "ink"
          },
          {
            "part": "Third ramp",
            "mono": "ink",
            "role": "c4"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/color/swatch.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/color/swatch.tsx"
        }
      ]
    },
    {
      "name": "loader-beacon",
      "type": "registry:component",
      "title": "Beacon loader",
      "description": "A column of status lights works through its jobs one by one: each waits as an outline, pulses while it runs, and settles into done, the accent pointing at the one at work, until the column clears for the next run. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "color"
      ],
      "meta": {
        "loader": "beacon",
        "component": "LoaderBeacon",
        "category": "color",
        "technique": "planes",
        "order": 10,
        "title": "Beacon",
        "tags": [
          "status",
          "queue",
          "steps",
          "jobs",
          "progress",
          "checklist",
          "state"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Running",
            "mono": "ink"
          },
          {
            "part": "Done",
            "mono": "ink",
            "role": "success"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/color/beacon.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/color/beacon.tsx"
        }
      ]
    },
    {
      "name": "loader-chord",
      "type": "registry:component",
      "title": "Chord loader",
      "description": "Three sine waves on stacked planes, each in a color of its own, and their sum in ink in front, the amplitudes breathing in turn; the accent rides the sum’s crest. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "color"
      ],
      "meta": {
        "loader": "chord",
        "component": "LoaderChord",
        "category": "color",
        "technique": "paths",
        "order": 11,
        "title": "Chord",
        "tags": [
          "waves",
          "sum",
          "harmonics",
          "interference",
          "layers",
          "signal",
          "audio"
        ],
        "beats": 4.5,
        "colors": [
          {
            "part": "Low tone",
            "mono": "ink"
          },
          {
            "part": "Middle tone",
            "mono": "ink"
          },
          {
            "part": "High tone",
            "mono": "ink",
            "role": "c4"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/color/chord.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/color/chord.tsx"
        }
      ]
    },
    {
      "name": "loader-isotherm",
      "type": "registry:component",
      "title": "Isotherm loader",
      "description": "A terrain drawn in contour lines, stacked in perspective at their heights and graded in color from the valleys to the peaks, while a warm front passes across it; the accent marks the summit. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "color"
      ],
      "meta": {
        "loader": "isotherm",
        "component": "LoaderIsotherm",
        "category": "color",
        "technique": "lines",
        "order": 12,
        "title": "Isotherm",
        "tags": [
          "contour",
          "terrain",
          "topography",
          "height",
          "map",
          "front",
          "isometric"
        ],
        "beats": 5.5,
        "colors": [
          {
            "part": "Peaks",
            "mono": "ink"
          },
          {
            "part": "Valleys",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/color/isotherm.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/color/isotherm.tsx"
        }
      ]
    },
    {
      "name": "loader-tittle",
      "type": "registry:component",
      "title": "Tittle loader",
      "description": "The youj o, built in particles and given depth, turns and lands while the j’s square tittle orbits it in the accent, passing behind the letter and through its counter. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "depth"
      ],
      "meta": {
        "loader": "tittle",
        "component": "LoaderTittle",
        "category": "depth",
        "technique": "particles",
        "order": 1,
        "title": "Tittle",
        "tags": [
          "brand",
          "letter",
          "o",
          "orbit",
          "3d",
          "logo",
          "particle"
        ],
        "beats": 4,
        "colors": [
          {
            "part": "Letter",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/depth/tittle.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/depth/tittle.tsx"
        }
      ]
    },
    {
      "name": "loader-drop",
      "type": "registry:component",
      "title": "Drop loader",
      "description": "The brand’s square particle falls onto an isometric floor of particles, and a ring runs out through it, lifting each particle it passes before the floor settles. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "depth"
      ],
      "meta": {
        "loader": "drop",
        "component": "LoaderDrop",
        "category": "depth",
        "technique": "particles",
        "order": 2,
        "title": "Drop",
        "tags": [
          "ripple",
          "floor",
          "isometric",
          "impact",
          "wave",
          "particle",
          "grid"
        ],
        "beats": 3.5,
        "colors": [
          {
            "part": "Ripple",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/depth/drop.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/depth/drop.tsx"
        }
      ]
    },
    {
      "name": "loader-layers",
      "type": "registry:component",
      "title": "Layers loader",
      "description": "A card comes apart into what it’s made of, its surface, content, outline and accent, in an exploded view with construction lines, then closes again. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "depth"
      ],
      "meta": {
        "loader": "layers",
        "component": "LoaderLayers",
        "category": "depth",
        "technique": "mixed",
        "order": 3,
        "title": "Layers",
        "tags": [
          "card",
          "exploded",
          "stack",
          "build",
          "ui",
          "axonometric",
          "compose"
        ],
        "beats": 4.5,
        "colors": [
          {
            "part": "Content",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/depth/layers.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/depth/layers.tsx"
        }
      ]
    },
    {
      "name": "loader-corridor",
      "type": "registry:component",
      "title": "Corridor loader",
      "description": "The docs’ construction frame, repeated into the distance and flown through: dotted frames with registration marks twist past, the accent particle waiting at the vanishing point. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "depth"
      ],
      "meta": {
        "loader": "corridor",
        "component": "LoaderCorridor",
        "category": "depth",
        "technique": "mixed",
        "order": 4,
        "title": "Corridor",
        "tags": [
          "tunnel",
          "frames",
          "registration",
          "crop marks",
          "blueprint",
          "fly-through",
          "perspective"
        ],
        "beats": 2.25,
        "colors": [
          {
            "part": "Corridor",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/depth/corridor.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/depth/corridor.tsx"
        }
      ]
    },
    {
      "name": "loader-slice",
      "type": "registry:component",
      "title": "Slice loader",
      "description": "A cube of particles turns slowly while a scan plane sweeps up through it and back, each layer lighting up as the plane passes. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "depth"
      ],
      "meta": {
        "loader": "slice",
        "component": "LoaderSlice",
        "category": "depth",
        "technique": "mixed",
        "order": 5,
        "title": "Slice",
        "tags": [
          "scan",
          "lattice",
          "cube",
          "voxel",
          "section",
          "3d",
          "compute"
        ],
        "beats": 4.5,
        "colors": [
          {
            "part": "Scan",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/depth/slice.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/depth/slice.tsx"
        }
      ]
    },
    {
      "name": "loader-vortex",
      "type": "registry:component",
      "title": "Vortex loader",
      "description": "Particles stream down a funnel in three spiral arms, quickening and drawing streaks as they near the bottom, where the accent particle takes them in. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "depth"
      ],
      "meta": {
        "loader": "vortex",
        "component": "LoaderVortex",
        "category": "depth",
        "technique": "mixed",
        "order": 6,
        "title": "Vortex",
        "tags": [
          "funnel",
          "spiral",
          "drain",
          "gather",
          "sync",
          "download",
          "particle"
        ],
        "beats": 4,
        "colors": [
          {
            "part": "Arms",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/depth/vortex.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/depth/vortex.tsx"
        }
      ]
    },
    {
      "name": "loader-murmur",
      "type": "registry:component",
      "title": "Murmur loader",
      "description": "A flock of dots wheels and folds through space as one body, then gathers into the brand’s square, the tittle, in the accent, holds it a moment, and lets go again. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "depth"
      ],
      "meta": {
        "loader": "murmur",
        "component": "LoaderMurmur",
        "category": "depth",
        "technique": "particles",
        "order": 7,
        "title": "Murmur",
        "tags": [
          "flock",
          "swarm",
          "gather",
          "form",
          "square",
          "tittle",
          "organize"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Flock",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/depth/murmur.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/depth/murmur.tsx"
        }
      ]
    },
    {
      "name": "loader-reeve",
      "type": "registry:component",
      "title": "Reeve loader",
      "description": "A square shuttle threads two upright gates on an isometric circuit, its short ink wake passing through the openings and behind the lit jambs. It lands briefly at each square corner. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "depth"
      ],
      "meta": {
        "loader": "reeve",
        "component": "LoaderReeve",
        "category": "depth",
        "technique": "lines",
        "order": 8,
        "title": "Reeve",
        "tags": [
          "shuttle",
          "gate",
          "thread",
          "square",
          "circuit",
          "isometric",
          "occlusion"
        ],
        "beats": 4.5,
        "colors": [
          {
            "part": "Wake",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/depth/reeve.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/depth/reeve.tsx"
        }
      ]
    },
    {
      "name": "loader-nacre",
      "type": "registry:component",
      "title": "Nacre loader",
      "description": "A nacreous shell opens its overlapping, ridged scales in a wave from rim to throat. Articulated ribs follow the lift, a single accent seam slips around the revealed bore, and the scales settle back into their nested courses. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "nacre",
        "component": "LoaderNacre",
        "category": "geometry",
        "technique": "planes",
        "order": 1,
        "title": "Nacre",
        "tags": [
          "shell",
          "scales",
          "articulated",
          "choreography",
          "facets",
          "perspective",
          "hinges",
          "3d"
        ],
        "beats": 6.25,
        "colors": [
          {
            "part": "Scale edges",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/nacre.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/nacre.tsx"
        }
      ]
    },
    {
      "name": "loader-draft",
      "type": "registry:component",
      "title": "Draft loader",
      "description": "An isometric box goes from a dashed ghost to a drawing: the accent pen traces its outline in one stroke, the lit edges catch, light floods the faces and a dimension line is set, then it returns to its ghost. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "draft",
        "component": "LoaderDraft",
        "category": "geometry",
        "technique": "mixed",
        "order": 2,
        "title": "Draft",
        "tags": [
          "isometric",
          "box",
          "blueprint",
          "construction",
          "pen",
          "hidden line",
          "dimension"
        ],
        "beats": 6.5,
        "colors": [
          {
            "part": "Dimension",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/draft.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/draft.tsx"
        },
        {
          "path": "src/components/youj/loaders/geometry/drafting.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/drafting.ts"
        }
      ]
    },
    {
      "name": "loader-carton",
      "type": "registry:component",
      "title": "Carton loader",
      "description": "A cube’s net, drawn as a die-cut with dashed creases, folds up face by face into a box while the view closes in; the lid shuts on the accent square printed on it, then the box opens flat again. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "carton",
        "component": "LoaderCarton",
        "category": "geometry",
        "technique": "planes",
        "order": 3,
        "title": "Carton",
        "tags": [
          "cube",
          "net",
          "fold",
          "box",
          "package",
          "isometric",
          "crease"
        ],
        "beats": 6.5,
        "colors": [
          {
            "part": "Creases",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/carton.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/carton.tsx"
        },
        {
          "path": "src/components/youj/loaders/geometry/drafting.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/drafting.ts"
        }
      ]
    },
    {
      "name": "loader-extrude",
      "type": "registry:component",
      "title": "Extrude loader",
      "description": "Tiles on an isometric floor extrude into columns in square rings from an accent seed, stepping up into a ziggurat, then settle back flat in the same order. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "extrude",
        "component": "LoaderExtrude",
        "category": "geometry",
        "technique": "planes",
        "order": 4,
        "title": "Extrude",
        "tags": [
          "isometric",
          "columns",
          "grid",
          "ziggurat",
          "build",
          "blocks",
          "bar chart"
        ],
        "beats": 5,
        "colors": [
          {
            "part": "Columns",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/extrude.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/extrude.tsx"
        }
      ]
    },
    {
      "name": "loader-section",
      "type": "registry:component",
      "title": "Section loader",
      "description": "A wireframe cube stands on its corner, turning; a plane rises through it and leaves it solid, its cut face in the accent going from triangle to hexagon to triangle, and a second plane follows and returns it to lines. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "section",
        "component": "LoaderSection",
        "category": "geometry",
        "technique": "mixed",
        "order": 5,
        "title": "Section",
        "tags": [
          "cube",
          "slice",
          "cross-section",
          "hexagon",
          "scan",
          "print",
          "hidden line",
          "wireframe"
        ],
        "beats": 6.5,
        "colors": [
          {
            "part": "Hidden edges",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/section.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/section.tsx"
        },
        {
          "path": "src/components/youj/loaders/geometry/drafting.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/drafting.ts"
        }
      ]
    },
    {
      "name": "loader-ridge",
      "type": "registry:component",
      "title": "Ridge loader",
      "description": "A surface drawn only in profile lines, nearer ones hiding the farther: a squared swell runs through it toward the viewer, lifting each line into a plateau, with the accent square riding its crest. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "ridge",
        "component": "LoaderRidge",
        "category": "geometry",
        "technique": "lines",
        "order": 6,
        "title": "Ridge",
        "tags": [
          "wave",
          "sheet",
          "profile",
          "hidden line",
          "terrain",
          "signal",
          "plateau"
        ],
        "beats": 4.5,
        "colors": [
          {
            "part": "Ridges",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/ridge.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/ridge.tsx"
        }
      ]
    },
    {
      "name": "loader-contour",
      "type": "registry:component",
      "title": "Contour loader",
      "description": "A hill drawn only in contour lines, rounded squares stacked at their heights like a cut model: the contours climb toward the accent summit mark and close over it while the model turns a quarter turn. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "contour",
        "component": "LoaderContour",
        "category": "geometry",
        "technique": "lines",
        "order": 7,
        "title": "Contour",
        "tags": [
          "topography",
          "contour lines",
          "terrain",
          "map",
          "squircle",
          "survey",
          "hidden line"
        ],
        "beats": 6.5,
        "colors": [
          {
            "part": "Contours",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/contour.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/contour.tsx"
        }
      ]
    },
    {
      "name": "loader-pleat",
      "type": "registry:component",
      "title": "Pleat loader",
      "description": "A strip of square panels folds like an accordion, crease by crease from one end, into a tight stack, then opens out flat again; each panel is lit by where it faces, one of them in the accent. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "pleat",
        "component": "LoaderPleat",
        "category": "geometry",
        "technique": "planes",
        "order": 8,
        "title": "Pleat",
        "tags": [
          "fold",
          "accordion",
          "zigzag",
          "panels",
          "paper",
          "bellows",
          "origami"
        ],
        "beats": 5,
        "colors": [
          {
            "part": "Fold marks",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/pleat.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/pleat.tsx"
        }
      ]
    },
    {
      "name": "loader-lathe",
      "type": "registry:component",
      "title": "Lathe loader",
      "description": "A part is turned on a lathe: its profile, in the accent, revolves once about a chain-line axis and leaves the circles and meridians of a turned shape behind it, then revolves again and clears them. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "lathe",
        "component": "LoaderLathe",
        "category": "geometry",
        "technique": "paths",
        "order": 9,
        "title": "Lathe",
        "tags": [
          "revolve",
          "cad",
          "turned",
          "wireframe",
          "hidden line",
          "axis",
          "meridian"
        ],
        "beats": 6.5,
        "colors": [
          {
            "part": "Sweep",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/lathe.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/lathe.tsx"
        }
      ]
    },
    {
      "name": "loader-saddle",
      "type": "registry:component",
      "title": "Saddle loader",
      "description": "A square grid of straight lines flexes into a saddle and through to the opposite one, every line staying straight, on four posts like a hypar roof, while the accent line that generates it sweeps across. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "saddle",
        "component": "LoaderSaddle",
        "category": "geometry",
        "technique": "lines",
        "order": 10,
        "title": "Saddle",
        "tags": [
          "hyperbolic paraboloid",
          "hypar",
          "ruled surface",
          "grid",
          "roof",
          "flex",
          "wireframe"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Rulings",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/saddle.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/saddle.tsx"
        },
        {
          "path": "src/components/youj/loaders/geometry/drafting.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/drafting.ts"
        }
      ]
    },
    {
      "name": "loader-torsion",
      "type": "registry:component",
      "title": "Torsion loader",
      "description": "A square tower drawn in slices and edges takes a quarter turn from the base up, so it wrings into a twist and straightens again, its accent cap turning last; edges round the back are dashed. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "torsion",
        "component": "LoaderTorsion",
        "category": "geometry",
        "technique": "lines",
        "order": 11,
        "title": "Torsion",
        "tags": [
          "twist",
          "tower",
          "square",
          "prism",
          "helix",
          "wireframe",
          "hidden line"
        ],
        "beats": 5.5,
        "colors": [
          {
            "part": "Hidden lines",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/torsion.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/torsion.tsx"
        },
        {
          "path": "src/components/youj/loaders/geometry/drafting.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/drafting.ts"
        }
      ]
    },
    {
      "name": "loader-facet",
      "type": "registry:component",
      "title": "Facet loader",
      "description": "A cube cuts its corners in steps, through the cuboctahedron to the octahedron and back, every face lit by where it points; the facet cut into the near corner is edged in the accent. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "facet",
        "component": "LoaderFacet",
        "category": "geometry",
        "technique": "planes",
        "order": 12,
        "title": "Facet",
        "tags": [
          "polyhedron",
          "cube",
          "octahedron",
          "cuboctahedron",
          "truncate",
          "faceted",
          "solid"
        ],
        "beats": 6.5,
        "colors": [
          {
            "part": "Cuts",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/facet.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/facet.tsx"
        },
        {
          "path": "src/components/youj/loaders/geometry/drafting.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/drafting.ts"
        }
      ]
    },
    {
      "name": "loader-core",
      "type": "registry:component",
      "title": "Core loader",
      "description": "A cube parts into its eight corner blocks in an exploded view, showing a small accent cube turning at its heart, then closes over it and lands square. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "core",
        "component": "LoaderCore",
        "category": "geometry",
        "technique": "planes",
        "order": 13,
        "title": "Core",
        "tags": [
          "cube",
          "exploded view",
          "octants",
          "isometric",
          "reveal",
          "assemble",
          "blocks"
        ],
        "beats": 5.5,
        "colors": [
          {
            "part": "Exploded view",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/core.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/core.tsx"
        },
        {
          "path": "src/components/youj/loaders/geometry/drafting.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/drafting.ts"
        }
      ]
    },
    {
      "name": "loader-band",
      "type": "registry:component",
      "title": "Band loader",
      "description": "A band stands round a rounded square, the youj o’s plan, and a full roll travels round it: the wall turns over and back as the wave passes, its top edge tracing the twist in the accent. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "band",
        "component": "LoaderBand",
        "category": "geometry",
        "technique": "planes",
        "order": 14,
        "title": "Band",
        "tags": [
          "ribbon",
          "twist",
          "loop",
          "rim",
          "squircle",
          "roll",
          "wave"
        ],
        "beats": 5,
        "colors": [
          {
            "part": "Rail",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/band.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/band.tsx"
        }
      ]
    },
    {
      "name": "loader-curl",
      "type": "registry:component",
      "title": "Curl loader",
      "description": "A ruled sheet curls up from its far edge into a roll that travels toward you and stops on the accent line, then unrolls flat again; drawn only in its edges and rulings. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "curl",
        "component": "LoaderCurl",
        "category": "geometry",
        "technique": "lines",
        "order": 15,
        "title": "Curl",
        "tags": [
          "sheet",
          "roll",
          "scroll",
          "paper",
          "document",
          "spiral",
          "ruled"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Rulings",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/curl.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/curl.tsx"
        }
      ]
    },
    {
      "name": "loader-tenon",
      "type": "registry:component",
      "title": "Tenon loader",
      "description": "Two complementary stepped solids slide together into a square joint, the accent square riding the tongue. Flat-lit walls show the socket before it closes; the halves hold, then withdraw in reverse order. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "tenon",
        "component": "LoaderTenon",
        "category": "geometry",
        "technique": "planes",
        "order": 16,
        "title": "Tenon",
        "tags": [
          "join",
          "interlock",
          "solid",
          "assembly",
          "isometric",
          "blueprint",
          "tab"
        ],
        "beats": 5.5,
        "colors": [
          {
            "part": "Witness marks",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/tenon.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/tenon.tsx"
        }
      ]
    },
    {
      "name": "loader-selvedge",
      "type": "registry:component",
      "title": "Selvedge loader",
      "description": "A cloth fixed to a slender mast catches a travelling gust. Its woven lines bow through depth, its free hem lags behind the body, and a short accent stitch follows the fluttering corner. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "selvedge",
        "component": "LoaderSelvedge",
        "category": "geometry",
        "technique": "mixed",
        "order": 17,
        "title": "Selvedge",
        "tags": [
          "cloth",
          "wind",
          "fabric",
          "weave",
          "soft",
          "flag"
        ],
        "beats": 5,
        "colors": [
          {
            "part": "Hem",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/selvedge.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/selvedge.tsx"
        }
      ]
    },
    {
      "name": "loader-meniscus",
      "type": "registry:component",
      "title": "Meniscus loader",
      "description": "Liquid rises inside an open cylindrical vessel, holds while concentric ripples expand, then drains. A sloshing meniscus and the visible rear wall keep the changing level grounded in a real volume. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "meniscus",
        "component": "LoaderMeniscus",
        "category": "geometry",
        "technique": "lines",
        "order": 18,
        "title": "Meniscus",
        "tags": [
          "liquid",
          "fill",
          "vessel",
          "ripples",
          "volume",
          "fluid"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Liquid",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/meniscus.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/meniscus.tsx"
        }
      ]
    },
    {
      "name": "loader-atlas",
      "type": "registry:component",
      "title": "Atlas loader",
      "description": "Two journeys trace great circles over a wireframe globe. Meridians dim behind the sphere, route wakes brighten on the near hemisphere, and the whole graticule rocks gently as the journeys pass. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "atlas",
        "component": "LoaderAtlas",
        "category": "geometry",
        "technique": "lines",
        "order": 19,
        "title": "Atlas",
        "tags": [
          "globe",
          "cartography",
          "routes",
          "graticule",
          "great circle"
        ],
        "beats": 5.5,
        "colors": [
          {
            "part": "First journey",
            "mono": "ink"
          },
          {
            "part": "Second journey",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/atlas.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/atlas.tsx"
        }
      ]
    },
    {
      "name": "loader-arbor",
      "type": "registry:component",
      "title": "Arbor loader",
      "description": "A branching structure grows from its trunk to its finest forks, each generation waiting for the one below. It holds its canopy, then retracts from the tips back to the root while the view reveals the branches in depth. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "arbor",
        "component": "LoaderArbor",
        "category": "geometry",
        "technique": "lines",
        "order": 20,
        "title": "Arbor",
        "tags": [
          "tree",
          "branching",
          "recursion",
          "growth",
          "structure"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Growth",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/arbor.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/arbor.tsx"
        },
        {
          "path": "src/components/youj/loaders/geometry/drafting.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/drafting.ts"
        }
      ]
    },
    {
      "name": "loader-banyan",
      "type": "registry:component",
      "title": "Banyan loader",
      "description": "A great spatial canopy unfolds one generation at a time, breathes in a slow wind, and carries a single sap-light from its root to its finest tips before returning home. Its eighteen-beat cycle deliberately gives a pre-launch hero time to grow, hold and reward long viewing; reduced motion keeps the illuminated crown. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "banyan",
        "component": "LoaderBanyan",
        "category": "geometry",
        "technique": "paths",
        "order": 21.5,
        "title": "Banyan",
        "tags": [
          "tree",
          "canopy",
          "hero",
          "phyllotaxis",
          "growth",
          "sap",
          "depth"
        ],
        "beats": 18,
        "colors": [
          {
            "part": "Blossoms",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/banyan.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/banyan.tsx"
        }
      ]
    },
    {
      "name": "loader-tessera",
      "type": "registry:component",
      "title": "Tessera loader",
      "description": "Six triangular tiles share a hexagonal footprint. A travelling fold lifts their inner tips in sequence, showing both lit sides before each tile settles into the tessellation; one hinge catches the accent at the crest. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "tessera",
        "component": "LoaderTessera",
        "category": "geometry",
        "technique": "planes",
        "order": 22,
        "title": "Tessera",
        "tags": [
          "tessellation",
          "triangles",
          "hinges",
          "tiling",
          "wave"
        ],
        "beats": 5,
        "colors": [
          {
            "part": "Hinges",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/tessera.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/tessera.tsx"
        }
      ]
    },
    {
      "name": "loader-vault",
      "type": "registry:component",
      "title": "Vault loader",
      "description": "Wedge-shaped stones seat in pairs from the springings toward a final keystone. Extruded inner walls reveal the open arch; a short accent joint closes at the crown before the stones withdraw in reverse order. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "vault",
        "component": "LoaderVault",
        "category": "geometry",
        "technique": "planes",
        "order": 23,
        "title": "Vault",
        "tags": [
          "arch",
          "masonry",
          "voussoir",
          "keystone",
          "architecture",
          "assembly"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Centering",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/vault.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/vault.tsx"
        },
        {
          "path": "src/components/youj/loaders/geometry/drafting.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/drafting.ts"
        }
      ]
    },
    {
      "name": "loader-knead",
      "type": "registry:component",
      "title": "Knead loader",
      "description": "A guided platen compresses a gridded elastic volume against a bed. The body spreads sideways while preserving volume, its lit skin and meridians following the deformation, then regains its height as the platen rises. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "knead",
        "component": "LoaderKnead",
        "category": "geometry",
        "technique": "mixed",
        "order": 24,
        "title": "Knead",
        "tags": [
          "elastic",
          "soft body",
          "compression",
          "volume",
          "membrane",
          "press"
        ],
        "beats": 5,
        "colors": [
          {
            "part": "Grid",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/knead.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/knead.tsx"
        }
      ]
    },
    {
      "name": "loader-lacuna",
      "type": "registry:component",
      "title": "Lacuna loader",
      "description": "A recursive carpet of square wells opens from its central void into successively smaller courtyards. Lit inner walls descend beneath the fine rims; each generation waits for its parent, then the apertures contract from the outside inward. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "lacuna",
        "component": "LoaderLacuna",
        "category": "geometry",
        "technique": "lines",
        "order": 25,
        "title": "Lacuna",
        "tags": [
          "fractal",
          "carpet",
          "recursive",
          "void",
          "courtyard",
          "negative space"
        ],
        "beats": 5.5,
        "colors": [
          {
            "part": "Generations",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/lacuna.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/lacuna.tsx"
        }
      ]
    },
    {
      "name": "loader-stave",
      "type": "registry:component",
      "title": "Stave loader",
      "description": "Three floating compression struts open a tensegrity prism. Triangular cable crowns countertwist as the structure lengthens, the diagonal stays remain taut, and a brief accent travels between the tensioned upper joints. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "stave",
        "component": "LoaderStave",
        "category": "geometry",
        "technique": "lines",
        "order": 26,
        "title": "Stave",
        "tags": [
          "tensegrity",
          "cables",
          "prism",
          "struts",
          "tension",
          "structure"
        ],
        "beats": 5.75,
        "colors": [
          {
            "part": "Stays",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/stave.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/stave.tsx"
        },
        {
          "path": "src/components/youj/loaders/geometry/drafting.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/drafting.ts"
        }
      ]
    },
    {
      "name": "loader-suture",
      "type": "registry:component",
      "title": "Suture loader",
      "description": "Paired cross-stitches lace two separate strips together. Each upper thread passes over its partner in depth, loose arches tighten as the seam closes, and the stitches withdraw in reverse order while the strips ease apart. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "suture",
        "component": "LoaderSuture",
        "category": "geometry",
        "technique": "lines",
        "order": 27,
        "title": "Suture",
        "tags": [
          "stitch",
          "seam",
          "lacing",
          "thread",
          "textile",
          "tension"
        ],
        "beats": 6.25,
        "colors": [
          {
            "part": "Thread",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/suture.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/suture.tsx"
        }
      ]
    },
    {
      "name": "loader-ravel",
      "type": "registry:component",
      "title": "Ravel loader",
      "description": "Three cords exchange places in a travelling plait. Each crossing passes at its own depth, the strands open and tighten together, and a short accent filament rides one cord through the over-and-under structure. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "ravel",
        "component": "LoaderRavel",
        "category": "geometry",
        "technique": "lines",
        "order": 28,
        "title": "Ravel",
        "tags": [
          "braid",
          "cord",
          "textile",
          "interlace",
          "depth",
          "plait"
        ],
        "beats": 5,
        "colors": [
          {
            "part": "Cord",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/ravel.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/ravel.tsx"
        }
      ]
    },
    {
      "name": "loader-throat",
      "type": "registry:component",
      "title": "Throat loader",
      "description": "A soap-film throat stretches between two wire hoops. Their separation increases as the catenoid neck narrows; sparse meridians follow the minimal surface, the hoops return, and a short accent arc travels around the waist. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "throat",
        "component": "LoaderThroat",
        "category": "geometry",
        "technique": "lines",
        "order": 29,
        "title": "Throat",
        "tags": [
          "catenoid",
          "minimal surface",
          "soap film",
          "membrane",
          "neck",
          "rings"
        ],
        "beats": 5.5,
        "colors": [
          {
            "part": "Film",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/throat.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/throat.tsx"
        }
      ]
    },
    {
      "name": "loader-truss",
      "type": "registry:component",
      "title": "Truss loader",
      "description": "Two triangulated bridge frames assemble bay by bay and lock together with transverse ties. A small proof load rolls across the deck, revealing a restrained elastic deflection, then returns as the braces withdraw toward the abutments. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "truss",
        "component": "LoaderTruss",
        "category": "geometry",
        "technique": "lines",
        "order": 30,
        "title": "Truss",
        "tags": [
          "bridge",
          "structure",
          "space frame",
          "triangulation",
          "load",
          "architecture"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Members",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/truss.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/truss.tsx"
        },
        {
          "path": "src/components/youj/loaders/geometry/drafting.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/drafting.ts"
        }
      ]
    },
    {
      "name": "loader-mosaic",
      "type": "registry:component",
      "title": "Mosaic loader",
      "description": "A slab partitions into moving nearest-neighbour cells. Every shared boundary follows its two sites exactly; shallow cell walls rise in a circulating wave, and one short edge catches the accent as the tessellation relaxes back. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "mosaic",
        "component": "LoaderMosaic",
        "category": "geometry",
        "technique": "planes",
        "order": 31,
        "title": "Mosaic",
        "tags": [
          "voronoi",
          "cells",
          "partition",
          "tessellation",
          "nearest neighbour",
          "relaxation"
        ],
        "beats": 5,
        "colors": [
          {
            "part": "Cells",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/mosaic.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/mosaic.tsx"
        }
      ]
    },
    {
      "name": "loader-tributary",
      "type": "registry:component",
      "title": "Tributary loader",
      "description": "Two narrow streams descend a cut terrain model and meet in a wider channel. Paired flow fronts arrive together, become one double-width front at the junction, and continue downstream beneath the raised banks. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "tributary",
        "component": "LoaderTributary",
        "category": "geometry",
        "technique": "mixed",
        "order": 32,
        "title": "Tributary",
        "tags": [
          "river",
          "confluence",
          "channel",
          "terrain",
          "fluid",
          "cartography"
        ],
        "beats": 5,
        "colors": [
          {
            "part": "Streams",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/tributary.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/tributary.tsx"
        }
      ]
    },
    {
      "name": "loader-alveole",
      "type": "registry:component",
      "title": "Alveole loader",
      "description": "Four stitched membrane chambers inflate in a diagonal pressure wave. Their sealed borders stay flat while the skins rise into softly lit pillows; a narrow inlet seam carries the pressure onward as the preceding chamber relaxes. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "alveole",
        "component": "LoaderAlveole",
        "category": "geometry",
        "technique": "planes",
        "order": 33,
        "title": "Alveole",
        "tags": [
          "pneumatic",
          "quilt",
          "membrane",
          "chambers",
          "soft body",
          "3d"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Quilting",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/alveole.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/alveole.tsx"
        }
      ]
    },
    {
      "name": "loader-calyx",
      "type": "registry:component",
      "title": "Calyx loader",
      "description": "Six curved sepals peel away from a closed bud in a staggered spiral. Their central veins stay attached to the stalk, the tips open into a shallow crown, and the shells close in the same order around a fine accent stamen. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "calyx",
        "component": "LoaderCalyx",
        "category": "geometry",
        "technique": "planes",
        "order": 34,
        "title": "Calyx",
        "tags": [
          "botanical",
          "sepals",
          "shell",
          "unfurl",
          "veins",
          "3d"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Veins",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/calyx.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/calyx.tsx"
        }
      ]
    },
    {
      "name": "loader-quarry",
      "type": "registry:component",
      "title": "Quarry loader",
      "description": "A cutaway terrain block opens along a fault and one bank slips upward. Five continuous strata become offset across the exposed rock walls; the short accent fault trace climbs through the section before the banks settle back into register. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "quarry",
        "component": "LoaderQuarry",
        "category": "geometry",
        "technique": "lines",
        "order": 35,
        "title": "Quarry",
        "tags": [
          "geology",
          "fault",
          "strata",
          "cutaway",
          "terrain",
          "3d"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Marker bed",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/quarry.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/quarry.tsx"
        },
        {
          "path": "src/components/youj/loaders/geometry/drafting.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/drafting.ts"
        }
      ]
    },
    {
      "name": "loader-newel",
      "type": "registry:component",
      "title": "Newel loader",
      "description": "Cantilevered treads swing out around a slender central newel, ascending into a spiral stair. Each lit wedge seats before its outer handrail grows to meet the next; a brief accent nosing reaches the landing and the stair folds back into its core. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "newel",
        "component": "LoaderNewel",
        "category": "geometry",
        "technique": "planes",
        "order": 36,
        "title": "Newel",
        "tags": [
          "stair",
          "spiral",
          "architecture",
          "helix",
          "treads",
          "balustrade"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Handrail",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/newel.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/newel.tsx"
        },
        {
          "path": "src/components/youj/loaders/geometry/drafting.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/drafting.ts"
        }
      ]
    },
    {
      "name": "loader-infill",
      "type": "registry:component",
      "title": "Infill loader",
      "description": "An open square part builds in deposited courses. Each layer completes its outer and inner walls before alternating cross-hatched infill bridges the ring; the active bead follows the exact toolpath and the completed courses expose the central well in depth. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "infill",
        "component": "LoaderInfill",
        "category": "geometry",
        "technique": "mixed",
        "order": 37,
        "title": "Infill",
        "tags": [
          "fabrication",
          "additive",
          "toolpath",
          "layers",
          "hatch",
          "construction"
        ],
        "beats": 6.5,
        "colors": [
          {
            "part": "Toolpath",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/infill.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/infill.tsx"
        },
        {
          "path": "src/components/youj/loaders/geometry/drafting.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/drafting.ts"
        }
      ]
    },
    {
      "name": "loader-atrium",
      "type": "registry:component",
      "title": "Atrium loader",
      "description": "A courtyard plan becomes an open architectural shell. Paired piers rise along each side, their lintels seat only after the supports, and four gallery ledges register around the central opening before the building returns to its measured footprint. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "atrium",
        "component": "LoaderAtrium",
        "category": "geometry",
        "technique": "planes",
        "order": 38,
        "title": "Atrium",
        "tags": [
          "architecture",
          "courtyard",
          "plan",
          "walls",
          "lintel",
          "construction"
        ],
        "beats": 6.2,
        "colors": [
          {
            "part": "Piers",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/atrium.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/atrium.tsx"
        },
        {
          "path": "src/components/youj/loaders/geometry/fabric.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/fabric.ts"
        }
      ]
    },
    {
      "name": "loader-shingle",
      "type": "registry:component",
      "title": "Shingle loader",
      "description": "Paired roof panels seat course by course in alternating banks. Each new row tucks beneath the previous one, thin return edges expose the underlap, and a final ridge seam closes across the assembled roof before the panels lift in reverse order. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "shingle",
        "component": "LoaderShingle",
        "category": "geometry",
        "technique": "planes",
        "order": 39,
        "title": "Shingle",
        "tags": [
          "roof",
          "panels",
          "overlap",
          "architecture",
          "assembly",
          "construction"
        ],
        "beats": 6.5,
        "colors": [
          {
            "part": "Courses",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/shingle.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/shingle.tsx"
        },
        {
          "path": "src/components/youj/loaders/geometry/drafting.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/drafting.ts"
        }
      ]
    },
    {
      "name": "loader-carve",
      "type": "registry:component",
      "title": "Carve loader",
      "description": "A Boolean corner subtraction advances through a square stock in two measured cuts. The remaining L-shaped solid exposes two new lit inner walls, a wire operand marks the removed volume, and witness dimensions track the opening before the stock restores itself. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "carve",
        "component": "LoaderCarve",
        "category": "geometry",
        "technique": "planes",
        "order": 40,
        "title": "Carve",
        "tags": [
          "boolean",
          "difference",
          "solid",
          "modeling",
          "construction",
          "cutaway"
        ],
        "beats": 5.5,
        "colors": [
          {
            "part": "Operand",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/carve.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/carve.tsx"
        },
        {
          "path": "src/components/youj/loaders/geometry/drafting.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/drafting.ts"
        }
      ]
    },
    {
      "name": "loader-lamella",
      "type": "registry:component",
      "title": "Lamella loader",
      "description": "Waisted annular sheets register in alternating arrivals around an open bore. Their cut walls and top faces stay lit as each lamination seats, a short bond travels around the final rim, and the sheets peel away from the top course downward. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "lamella",
        "component": "LoaderLamella",
        "category": "geometry",
        "technique": "planes",
        "order": 41,
        "title": "Lamella",
        "tags": [
          "lamination",
          "sheets",
          "fabrication",
          "courses",
          "hollow",
          "assembly"
        ],
        "beats": 6.2,
        "colors": [
          {
            "part": "Bore",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/lamella.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/lamella.tsx"
        }
      ]
    },
    {
      "name": "loader-simplex",
      "type": "registry:component",
      "title": "Simplex loader",
      "description": "An irregular tetrahedral cell receives an interior sample. The sample rises from its barycentric foot, spokes connect it to all four vertices, and a sectional face opens to expose the four child volumes before the cell recombines. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "simplex",
        "component": "LoaderSimplex",
        "category": "geometry",
        "technique": "lines",
        "order": 42,
        "title": "Simplex",
        "tags": [
          "tetrahedron",
          "volume",
          "meshing",
          "triangulation",
          "insertion",
          "structure"
        ],
        "beats": 5.8,
        "colors": [
          {
            "part": "Spokes",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/simplex.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/simplex.tsx"
        }
      ]
    },
    {
      "name": "loader-ashlar",
      "type": "registry:component",
      "title": "Ashlar loader",
      "description": "A bonded masonry wall seats from its footing upward. Alternate courses bridge the joints below, paired stones enter from opposite sides, and a short accent bed joint certifies the last course before the wall releases from the top down. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "ashlar",
        "component": "LoaderAshlar",
        "category": "geometry",
        "technique": "planes",
        "order": 43,
        "title": "Ashlar",
        "tags": [
          "masonry",
          "bond",
          "wall",
          "courses",
          "construction",
          "assembly"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Stones",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/ashlar.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/ashlar.tsx"
        },
        {
          "path": "src/components/youj/loaders/geometry/fabric.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/fabric.ts"
        }
      ]
    },
    {
      "name": "loader-laminate",
      "type": "registry:component",
      "title": "Laminate loader",
      "description": "Three courses of slats lay in alternating grain directions. The open layers register above one another, their gaps close in sequence into a cross-laminated panel, and a narrow edge bond travels along the finished stock before the layers separate. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "laminate",
        "component": "LoaderLaminate",
        "category": "geometry",
        "technique": "planes",
        "order": 44,
        "title": "Laminate",
        "tags": [
          "lamination",
          "cross grain",
          "panel",
          "fabrication",
          "layers",
          "assembly"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Grain",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/laminate.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/laminate.tsx"
        },
        {
          "path": "src/components/youj/loaders/geometry/fabric.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/fabric.ts"
        }
      ]
    },
    {
      "name": "loader-loft",
      "type": "registry:component",
      "title": "Loft loader",
      "description": "Unequal transverse ribs erect along a curved keel, then longitudinal battens connect matching profile points into a lofted hull. A narrow lit skin advances between the ribs, exposing the hollow interior before the shell and its supporting profiles withdraw. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "loft",
        "component": "LoaderLoft",
        "category": "geometry",
        "technique": "lines",
        "order": 45,
        "title": "Loft",
        "tags": [
          "loft",
          "profiles",
          "hull",
          "ribs",
          "surface",
          "cad",
          "fabrication"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Battens",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/loft.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/loft.tsx"
        }
      ]
    },
    {
      "name": "loader-stayed",
      "type": "registry:component",
      "title": "Stayed loader",
      "description": "A twin-leg pylon erects above a registered crossing. Opposed deck segments advance from the tower in balanced pairs, each held by its own taut stay; a short closure seam joins the outer tips before the span withdraws toward its foundation. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "stayed",
        "component": "LoaderStayed",
        "category": "geometry",
        "technique": "lines",
        "order": 46,
        "title": "Stayed",
        "tags": [
          "construction",
          "cable",
          "bridge",
          "cantilever",
          "tension",
          "assembly"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Stays",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/stayed.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/stayed.tsx"
        },
        {
          "path": "src/components/youj/loaders/geometry/fabric.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/fabric.ts"
        }
      ]
    },
    {
      "name": "loader-reciprocal",
      "type": "registry:component",
      "title": "Reciprocal loader",
      "description": "Six sloping rafters erect around an open roof eye, each crossing above its neighbour and carrying the next. A temporary shore holds the first joint until the final rafter closes the support circuit, then drops away; it returns before the roof dismantles. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "reciprocal",
        "component": "LoaderReciprocal",
        "category": "geometry",
        "technique": "planes",
        "order": 47,
        "title": "Reciprocal",
        "tags": [
          "roof",
          "timber",
          "construction",
          "reciprocal frame",
          "oculus",
          "support"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Shore",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/reciprocal.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/reciprocal.tsx"
        },
        {
          "path": "src/components/youj/loaders/geometry/fabric.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/fabric.ts"
        }
      ]
    },
    {
      "name": "loader-envelope",
      "type": "registry:component",
      "title": "Envelope loader",
      "description": "A support ray tests inner samples and wraps the outermost sites into a convex boundary. Accepted edges join in order, the closed enclosure lifts on fine witness lines, and its perimeter unwrites back to the starting support. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "envelope",
        "component": "LoaderEnvelope",
        "category": "geometry",
        "technique": "lines",
        "order": 48,
        "title": "Envelope",
        "tags": [
          "convex hull",
          "boundary",
          "support",
          "spatial",
          "wrapping",
          "enclosure"
        ],
        "beats": 5.8,
        "colors": [
          {
            "part": "Boundary",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/envelope.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/envelope.tsx"
        }
      ]
    },
    {
      "name": "loader-retile",
      "type": "registry:component",
      "title": "Retile loader",
      "description": "A mesh legalizes its diagonals one quadrilateral at a time. Each long edge contracts to its crossing, the alternate edge opens into place, and the two new facets settle; circumcircle witnesses inspect the exchange before the mesh restores its original connectivity. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "retile",
        "component": "LoaderRetile",
        "category": "geometry",
        "technique": "lines",
        "order": 49,
        "title": "Retile",
        "tags": [
          "triangulation",
          "edge flip",
          "mesh",
          "legalization",
          "rendering",
          "optimization"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Flip",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/retile.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/retile.tsx"
        }
      ]
    },
    {
      "name": "loader-cupola",
      "type": "registry:component",
      "title": "Cupola loader",
      "description": "A triangulated dome erects from its circular footing. Meridian struts raise successive rings, diagonal braces close each bay, and lit panels settle along one open bank before the crown joins and the shell dismantles from the top. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "cupola",
        "component": "LoaderCupola",
        "category": "geometry",
        "technique": "mixed",
        "order": 50,
        "title": "Cupola",
        "tags": [
          "dome",
          "shell",
          "triangulation",
          "construction",
          "panels",
          "architecture"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Struts",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/cupola.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/cupola.tsx"
        }
      ]
    },
    {
      "name": "loader-coarea",
      "type": "registry:component",
      "title": "Coarea loader",
      "description": "Eight volume cells extract a common level surface from sampled scalar values. Interpolated tetrahedral sections register into one lit faceted body, the active cell exposes its crossing edges, and the surface releases in reverse cell order. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "coarea",
        "component": "LoaderCoarea",
        "category": "geometry",
        "technique": "mixed",
        "order": 51,
        "title": "Coarea",
        "tags": [
          "volume",
          "isosurface",
          "marching tetrahedra",
          "meshing",
          "samples",
          "reconstruction"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Crossing",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/coarea.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/coarea.tsx"
        }
      ]
    },
    {
      "name": "loader-corbel",
      "type": "registry:component",
      "title": "Corbel loader",
      "description": "Opposed horizontal courses step inward over an open portal. Each projecting stone waits for its supporting course, a cap bridges the remaining throat, and paired bearing witnesses travel down the completed corbels before the courses withdraw from the crown. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "corbel",
        "component": "LoaderCorbel",
        "category": "geometry",
        "technique": "planes",
        "order": 52,
        "title": "Corbel",
        "tags": [
          "construction",
          "cantilever",
          "masonry",
          "portal",
          "courses",
          "support"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Stones",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/corbel.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/corbel.tsx"
        },
        {
          "path": "src/components/youj/loaders/geometry/fabric.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/fabric.ts"
        }
      ]
    },
    {
      "name": "loader-notch",
      "type": "registry:component",
      "title": "Notch loader",
      "description": "A concave floor plan triangulates by removing one valid boundary ear at a time. Each accepted diagonal closes before its triangular floor plate seats, a fine inspection fan checks the next corner, and the four plates unseat in reverse order to restore the open plan. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "notch",
        "component": "LoaderNotch",
        "category": "geometry",
        "technique": "planes",
        "order": 53,
        "title": "Notch",
        "tags": [
          "triangulation",
          "concave",
          "plan",
          "mesh",
          "construction",
          "ear"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Diagonals",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/notch.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/notch.tsx"
        }
      ]
    },
    {
      "name": "loader-datum",
      "type": "registry:component",
      "title": "Datum loader",
      "description": "Paired bearings from a fixed baseline locate four survey corners. Their short range arcs meet at each measured site, the parcel perimeter closes, and height witnesses raise a two-facet terrain model before the survey lowers and releases in reverse order. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "datum",
        "component": "LoaderDatum",
        "category": "geometry",
        "technique": "lines",
        "order": 54,
        "title": "Datum",
        "tags": [
          "survey",
          "cartography",
          "triangulation",
          "map",
          "terrain",
          "measurement"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Bearings",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/datum.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/datum.tsx"
        }
      ]
    },
    {
      "name": "loader-arris",
      "type": "registry:component",
      "title": "Arris loader",
      "description": "Three finishing passes chamfer the three edge families of a solid blank. Every new bevel is the exact intersection of its cutting plane with the remaining stock; short witness strokes inspect the fresh facets before the edge families restore in reverse order. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "arris",
        "component": "LoaderArris",
        "category": "geometry",
        "technique": "planes",
        "order": 55,
        "title": "Arris",
        "tags": [
          "fabrication",
          "bevel",
          "chamfer",
          "finishing",
          "solid",
          "edges"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Witness",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/arris.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/arris.tsx"
        }
      ]
    },
    {
      "name": "loader-cast",
      "type": "registry:component",
      "title": "Cast loader",
      "description": "Two profiled mould halves register around a tapered casting. A cutaway exposes the rising material and its level rim; the formwork parts only after the pour sets, revealing the lit shoulders and waist before the casting clears into its bed. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "cast",
        "component": "LoaderCast",
        "category": "geometry",
        "technique": "planes",
        "order": 56,
        "title": "Cast",
        "tags": [
          "casting",
          "formwork",
          "fabrication",
          "mould",
          "construction",
          "solid"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Material",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/cast.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/cast.tsx"
        }
      ]
    },
    {
      "name": "loader-ogive",
      "type": "registry:component",
      "title": "Ogive loader",
      "description": "Four diagonal groins erect above a square footing and meet at one crown. Perimeter arches join the springings, curved shell courses infill two wings of the intersecting barrel vault, and a crown witness closes before the shell and ribs dismantle. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "geometry"
      ],
      "meta": {
        "loader": "ogive",
        "component": "LoaderOgive",
        "category": "geometry",
        "technique": "mixed",
        "order": 57,
        "title": "Ogive",
        "tags": [
          "vault",
          "architecture",
          "groin",
          "shell",
          "ribs",
          "construction"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Courses",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/geometry/ogive.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/geometry/ogive.tsx"
        }
      ]
    },
    {
      "name": "loader-inscribe",
      "type": "registry:component",
      "title": "Inscribe loader",
      "description": "The word youj draws itself in outline, letter by letter, on a type designer’s guide lines; the tittle lands in the accent, then the strokes lift off the way they went down. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "glyph"
      ],
      "meta": {
        "loader": "inscribe",
        "component": "LoaderInscribe",
        "category": "glyph",
        "technique": "paths",
        "order": 1,
        "title": "Inscribe",
        "tags": [
          "wordmark",
          "writing",
          "draw",
          "outline",
          "type",
          "brand",
          "stroke"
        ],
        "beats": 5,
        "colors": [
          {
            "part": "Stroke",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/glyph/inscribe.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/glyph/inscribe.tsx"
        },
        {
          "path": "src/components/youj/loaders/glyph/word.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/glyph/word.ts"
        }
      ]
    },
    {
      "name": "loader-jot",
      "type": "registry:component",
      "title": "Jot loader",
      "description": "The youj j as a solid letter, every face lit by its own angle, turns once and lands, while its tittle spins above it as a cube in the accent. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "glyph"
      ],
      "meta": {
        "loader": "jot",
        "component": "LoaderJot",
        "category": "glyph",
        "technique": "planes",
        "order": 2,
        "title": "Jot",
        "tags": [
          "j",
          "letter",
          "solid",
          "extruded",
          "3d",
          "brand",
          "tittle",
          "turntable"
        ],
        "beats": 4.5,
        "colors": [
          {
            "part": "Index",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/glyph/jot.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/glyph/jot.tsx"
        },
        {
          "path": "src/components/youj/loaders/glyph/word.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/glyph/word.ts"
        }
      ]
    },
    {
      "name": "loader-spell",
      "type": "registry:component",
      "title": "Spell loader",
      "description": "One outline spells the word: y becomes o becomes u becomes j and back to y, the letter turning in space as it changes and landing square on its guide lines. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "glyph"
      ],
      "meta": {
        "loader": "spell",
        "component": "LoaderSpell",
        "category": "glyph",
        "technique": "type",
        "order": 3,
        "title": "Spell",
        "tags": [
          "morph",
          "letters",
          "wordmark",
          "outline",
          "type",
          "brand",
          "transform"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Outline",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/glyph/spell.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/glyph/spell.tsx"
        },
        {
          "path": "src/components/youj/loaders/glyph/word.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/glyph/word.ts"
        }
      ]
    },
    {
      "name": "loader-compose",
      "type": "registry:component",
      "title": "Compose loader",
      "description": "The wordmark’s strokes drift in space, then fly in and lock into the word, the tittle landing last; after a beat they let go and drift apart again. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "glyph"
      ],
      "meta": {
        "loader": "compose",
        "component": "LoaderCompose",
        "category": "glyph",
        "technique": "lines",
        "order": 4,
        "title": "Compose",
        "tags": [
          "assemble",
          "wordmark",
          "strokes",
          "scatter",
          "3d",
          "type",
          "brand",
          "build"
        ],
        "beats": 5.5,
        "colors": [
          {
            "part": "Stroke",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/glyph/compose.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/glyph/compose.tsx"
        },
        {
          "path": "src/components/youj/loaders/glyph/word.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/glyph/word.ts"
        }
      ]
    },
    {
      "name": "loader-kern",
      "type": "registry:component",
      "title": "Kern loader",
      "description": "The word on a type specimen: its letters open out and close up again on their sidebearing guides, and dimension lines measure every gap as it changes. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "glyph"
      ],
      "meta": {
        "loader": "kern",
        "component": "LoaderKern",
        "category": "glyph",
        "technique": "type",
        "order": 5,
        "title": "Kern",
        "tags": [
          "spacing",
          "tracking",
          "measure",
          "dimension",
          "type",
          "specimen",
          "wordmark"
        ],
        "beats": 5,
        "colors": [
          {
            "part": "Dimensions",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/glyph/kern.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/glyph/kern.tsx"
        },
        {
          "path": "src/components/youj/loaders/glyph/word.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/glyph/word.ts"
        }
      ]
    },
    {
      "name": "loader-hint",
      "type": "registry:component",
      "title": "Hint loader",
      "description": "The j hinted to whole pixels, as the favicon is: its outline lies on a pixel grid seen in perspective, then pixels drop into their cells line by line as the outline fades, and lift away again. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "glyph"
      ],
      "meta": {
        "loader": "hint",
        "component": "LoaderHint",
        "category": "glyph",
        "technique": "planes",
        "order": 6,
        "title": "Hint",
        "tags": [
          "pixel",
          "grid",
          "raster",
          "hinting",
          "favicon",
          "j",
          "type",
          "render"
        ],
        "beats": 5,
        "colors": [
          {
            "part": "Outline",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/glyph/hint.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/glyph/hint.tsx"
        }
      ]
    },
    {
      "name": "loader-plumb",
      "type": "registry:component",
      "title": "Plumb loader",
      "description": "The youj j hangs as a hollow wireform from its fixed accent tittle, swings across a drafting plumb-line, and lands upright before the next pull. Narrow lit walls reveal the letter’s depth. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "glyph"
      ],
      "meta": {
        "loader": "plumb",
        "component": "LoaderPlumb",
        "category": "glyph",
        "technique": "paths",
        "order": 7,
        "title": "Plumb",
        "tags": [
          "j",
          "tittle",
          "pendulum",
          "wireframe",
          "letter",
          "brand",
          "plumb-line"
        ],
        "beats": 5,
        "colors": [
          {
            "part": "Plumb line",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/glyph/plumb.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/glyph/plumb.tsx"
        }
      ]
    },
    {
      "name": "loader-marquee",
      "type": "registry:component",
      "title": "Marquee loader",
      "description": "A cursor crosses an artboard, drags a selection marquee whose marching ants run round it, and the shapes it closes round take their handles; it lets go, clicks away, and goes back. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "marquee",
        "component": "LoaderMarquee",
        "category": "interface",
        "technique": "lines",
        "order": 1,
        "title": "Marquee",
        "tags": [
          "cursor",
          "selection",
          "drag",
          "marching ants",
          "design tool",
          "canvas",
          "select"
        ],
        "beats": 6.5,
        "colors": [
          {
            "part": "Artwork",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/marquee.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/marquee.tsx"
        }
      ]
    },
    {
      "name": "loader-tabstop",
      "type": "registry:component",
      "title": "Tabstop loader",
      "description": "A focus ring tabs through a form in perspective, from field to field to the checkbox and the button, reshaping to each and sending out a pulse as it lands. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "tabstop",
        "component": "LoaderTabstop",
        "category": "interface",
        "technique": "lines",
        "order": 2,
        "title": "Tabstop",
        "tags": [
          "focus",
          "ring",
          "keyboard",
          "tab",
          "form",
          "accessibility",
          "input"
        ],
        "beats": 5,
        "colors": [
          {
            "part": "Button",
            "mono": "ink"
          },
          {
            "part": "Tick",
            "mono": "ink",
            "role": "success"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/tabstop.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/tabstop.tsx"
        }
      ]
    },
    {
      "name": "loader-build",
      "type": "registry:component",
      "title": "Build loader",
      "description": "A build pipeline in isometric: a packet runs the pipe from stage to stage, each stage raises its block as it arrives, the last one lights up when it’s done, and they sink for the next run. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "build",
        "component": "LoaderBuild",
        "category": "interface",
        "technique": "planes",
        "order": 3,
        "title": "Build",
        "tags": [
          "pipeline",
          "ci",
          "deploy",
          "stages",
          "isometric",
          "progress",
          "steps"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Taps",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/build.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/build.tsx"
        }
      ]
    },
    {
      "name": "loader-prompt",
      "type": "registry:component",
      "title": "Prompt loader",
      "description": "A terminal in perspective: the caret, the brand’s square in the accent, types a command, its output prints and checks off, and the screen scrolls up for the next prompt. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "prompt",
        "component": "LoaderPrompt",
        "category": "interface",
        "technique": "lines",
        "order": 4,
        "title": "Prompt",
        "tags": [
          "terminal",
          "caret",
          "cli",
          "typing",
          "command",
          "console",
          "output"
        ],
        "beats": 5.5,
        "colors": [
          {
            "part": "Prompt",
            "mono": "ink"
          },
          {
            "part": "Check",
            "mono": "accent",
            "role": "success"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/prompt.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/prompt.tsx"
        }
      ]
    },
    {
      "name": "loader-measure",
      "type": "registry:component",
      "title": "Measure loader",
      "description": "An artboard on a drafting table, with crop marks at its corners and dimension lines along two sides, is resized from its accent handle; the measurements follow it as it goes. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "measure",
        "component": "LoaderMeasure",
        "category": "interface",
        "technique": "lines",
        "order": 5,
        "title": "Measure",
        "tags": [
          "dimension",
          "crop marks",
          "resize",
          "frame",
          "blueprint",
          "artboard",
          "layout"
        ],
        "beats": 4.5,
        "colors": [
          {
            "part": "Dimensions",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/measure.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/measure.tsx"
        }
      ]
    },
    {
      "name": "loader-register",
      "type": "registry:component",
      "title": "Register loader",
      "description": "Two printing plates in perspective, one in ink and one in the accent, each with registration marks: the accent plate settles down onto the other until every mark sits in register, then lifts and drifts out again. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "register",
        "component": "LoaderRegister",
        "category": "interface",
        "technique": "lines",
        "order": 6,
        "title": "Register",
        "tags": [
          "registration",
          "print",
          "align",
          "plates",
          "crosshair",
          "blueprint",
          "calibrate"
        ],
        "beats": 4.5,
        "colors": [
          {
            "part": "Content",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/register.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/register.tsx"
        }
      ]
    },
    {
      "name": "loader-queue",
      "type": "registry:component",
      "title": "Queue loader",
      "description": "Notifications queue up in depth: each new toast rises in at the front, the ones before it step back and dim, and the oldest fades away at the back. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "queue",
        "component": "LoaderQueue",
        "category": "interface",
        "technique": "planes",
        "order": 7,
        "title": "Queue",
        "tags": [
          "toast",
          "notification",
          "stack",
          "cards",
          "depth",
          "feed",
          "messages"
        ],
        "beats": 3,
        "colors": [
          {
            "part": "Timer",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/queue.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/queue.tsx"
        }
      ]
    },
    {
      "name": "loader-gantry",
      "type": "registry:component",
      "title": "Gantry loader",
      "description": "A carriage riding a bridge across two rails plots a square layout on an isometric bed with its accent nib. The bridge follows every precise corner, lifts the pen after closing the outline, and clears the drawing for another pass. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "gantry",
        "component": "LoaderGantry",
        "category": "interface",
        "technique": "lines",
        "order": 8,
        "title": "Gantry",
        "tags": [
          "plotter",
          "layout",
          "carriage",
          "rails",
          "artboard",
          "construction",
          "isometric"
        ],
        "beats": 5.5,
        "colors": [
          {
            "part": "Machine",
            "mono": "ink"
          },
          {
            "part": "Plot",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/gantry.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/gantry.tsx"
        }
      ]
    },
    {
      "name": "loader-sift",
      "type": "registry:component",
      "title": "Sift loader",
      "description": "Five unequal slats sort through alternating neighbouring comparisons. Each exchanging pair passes at separate depths, then the comparison schedule reverses to restore the starting order without a reset or a crossfade. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "sift",
        "component": "LoaderSift",
        "category": "interface",
        "technique": "planes",
        "order": 9,
        "title": "Sift",
        "tags": [
          "sort",
          "compare",
          "swap",
          "lanes",
          "algorithm",
          "steps"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Comparisons",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/sift.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/sift.tsx"
        }
      ]
    },
    {
      "name": "loader-conflux",
      "type": "registry:component",
      "title": "Conflux loader",
      "description": "An incoming request fans into three concurrent routes, whose checkpoints finish at different times. The join waits for every branch, closes its accent ring and releases the outgoing response before the network clears for the next request. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "conflux",
        "component": "LoaderConflux",
        "category": "interface",
        "technique": "lines",
        "order": 10,
        "title": "Conflux",
        "tags": [
          "graph",
          "fork",
          "join",
          "parallel",
          "dependency",
          "concurrent",
          "progress"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Routes",
            "mono": "ink"
          },
          {
            "part": "Checkpoints",
            "mono": "ink",
            "role": "success"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/conflux.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/conflux.tsx"
        }
      ]
    },
    {
      "name": "loader-parity",
      "type": "registry:component",
      "title": "Parity loader",
      "description": "A raised cellular grid recomputes itself row by row after its seed shifts. Each cell takes the exclusive-or of its two parents; a narrow read line follows the write, then a second pass restores the original seed and all its descendants. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "parity",
        "component": "LoaderParity",
        "category": "interface",
        "technique": "planes",
        "order": 11,
        "title": "Parity",
        "tags": [
          "cellular",
          "automaton",
          "xor",
          "logic",
          "grid",
          "computation"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Values",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/parity.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/parity.tsx"
        }
      ]
    },
    {
      "name": "loader-stow",
      "type": "registry:component",
      "title": "Stow loader",
      "description": "Six unequal parcels fill a wireframe bay without overlap. The lower course settles before the upper pieces arrive, a short accent seam closes the final fit, and the packing withdraws in reverse order to make room for the next allocation. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "stow",
        "component": "LoaderStow",
        "category": "interface",
        "technique": "planes",
        "order": 12,
        "title": "Stow",
        "tags": [
          "packing",
          "allocation",
          "bin",
          "fit",
          "stages",
          "capacity"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Labels",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/stow.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/stow.tsx"
        }
      ]
    },
    {
      "name": "loader-fathom",
      "type": "registry:component",
      "title": "Fathom loader",
      "description": "A search frontier discovers a spatial graph one hop at a time. Visited stations lift off their ghost sockets, cross-links reveal cycles, and the reached destination traces its shortest route back to the source before the search releases. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "fathom",
        "component": "LoaderFathom",
        "category": "interface",
        "technique": "lines",
        "order": 13,
        "title": "Fathom",
        "tags": [
          "graph",
          "search",
          "breadth first",
          "frontier",
          "route",
          "discovery"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Scan",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/fathom.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/fathom.tsx"
        }
      ]
    },
    {
      "name": "loader-refine",
      "type": "registry:component",
      "title": "Refine loader",
      "description": "A coarse triangulated patch refines around two inspection windows. Each triangle splits at its centroid only after its parent has settled, new spokes grow into the fine mesh, and the windows exchange resolution before the subdivisions withdraw. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "refine",
        "component": "LoaderRefine",
        "category": "interface",
        "technique": "lines",
        "order": 14,
        "title": "Refine",
        "tags": [
          "mesh",
          "triangulation",
          "adaptive",
          "subdivision",
          "resolution",
          "focus"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Refinement",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/refine.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/refine.tsx"
        }
      ]
    },
    {
      "name": "loader-lexicon",
      "type": "registry:component",
      "title": "Lexicon loader",
      "description": "Three documents contribute their matching terms to an inverted index. Each read comb dispatches two curved transfer strokes, ordered document tabs seat beneath the corresponding term headers, and the completed posting lists unwrite back to their sources. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "lexicon",
        "component": "LoaderLexicon",
        "category": "interface",
        "technique": "lines",
        "order": 15,
        "title": "Lexicon",
        "tags": [
          "index",
          "documents",
          "terms",
          "postings",
          "search",
          "dataset"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Postings",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/lexicon.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/lexicon.tsx"
        },
        {
          "path": "src/components/youj/loaders/interface/computing.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/computing.ts"
        }
      ]
    },
    {
      "name": "loader-raster",
      "type": "registry:component",
      "title": "Raster loader",
      "description": "Two interlaced scan fields reconstruct a shaded architectural section on a tilted plate. Odd lines seat before the even lines fill their gaps; a raised scanning rail follows the active row, then the fields lift away in reverse order to expose the empty plate again. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "raster",
        "component": "LoaderRaster",
        "category": "interface",
        "technique": "lines",
        "order": 16,
        "title": "Raster",
        "tags": [
          "interlace",
          "scan",
          "imaging",
          "fields",
          "raster",
          "reconstruction",
          "progress"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Scan line",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/raster.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/raster.tsx"
        }
      ]
    },
    {
      "name": "loader-alcove",
      "type": "registry:component",
      "title": "Alcove loader",
      "description": "Three distinct records hash to the same address. The first seats at home; the next two inspect occupied slots and descend through a linear probe to the first vacancy, preserving each resident key before the insertions retrace their own routes. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "alcove",
        "component": "LoaderAlcove",
        "category": "interface",
        "technique": "planes",
        "order": 17,
        "title": "Alcove",
        "tags": [
          "hash",
          "index",
          "collision",
          "probe",
          "records",
          "allocation"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Keys",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/alcove.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/alcove.tsx"
        },
        {
          "path": "src/components/youj/loaders/interface/computing.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/computing.ts"
        }
      ]
    },
    {
      "name": "loader-escrow",
      "type": "registry:component",
      "title": "Escrow loader",
      "description": "A stable snapshot remains readable while three edits enter a separate bank and its write-ahead journal. Only after every journal entry closes does one publication bracket transfer ownership to the prepared snapshot; the transaction then unwinds to its original version. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "escrow",
        "component": "LoaderEscrow",
        "category": "interface",
        "technique": "lines",
        "order": 18,
        "title": "Escrow",
        "tags": [
          "transaction",
          "journal",
          "snapshot",
          "commit",
          "publish",
          "stages"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "New version",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/escrow.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/escrow.tsx"
        },
        {
          "path": "src/components/youj/loaders/interface/computing.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/computing.ts"
        }
      ]
    },
    {
      "name": "loader-sachet",
      "type": "registry:component",
      "title": "Sachet loader",
      "description": "Two keys set three independent hash banks, sharing one previously written bit. A membership probe finds all three of its addresses occupied, while a second reaches an empty bit and is rejected; the compact filter then releases its writes for another batch. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "sachet",
        "component": "LoaderSachet",
        "category": "interface",
        "technique": "lines",
        "order": 19,
        "title": "Sachet",
        "tags": [
          "membership",
          "filter",
          "hash",
          "bits",
          "lookup",
          "dataset"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Set bits",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/sachet.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/sachet.tsx"
        },
        {
          "path": "src/components/youj/loaders/interface/computing.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/computing.ts"
        }
      ]
    },
    {
      "name": "loader-swizzle",
      "type": "registry:component",
      "title": "Swizzle loader",
      "description": "A matrix transposes around its anchored diagonal. Three pairs of record cards exchange row and column through separate depth lanes, retaining their contents; a diagonal register advances with each exchange before the transformation reverses. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "swizzle",
        "component": "LoaderSwizzle",
        "category": "interface",
        "technique": "planes",
        "order": 20,
        "title": "Swizzle",
        "tags": [
          "matrix",
          "transpose",
          "reshape",
          "dataset",
          "rows",
          "columns"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Contents",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/swizzle.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/swizzle.tsx"
        }
      ]
    },
    {
      "name": "loader-medoid",
      "type": "registry:component",
      "title": "Medoid loader",
      "description": "Record tiles assign themselves to three exemplars through distance spokes. Each cluster elects the actual record with the least total distance, the spokes transfer to their new hubs, and fitted enclosures close around the groups before the assignment releases. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "medoid",
        "component": "LoaderMedoid",
        "category": "interface",
        "technique": "lines",
        "order": 21,
        "title": "Medoid",
        "tags": [
          "clustering",
          "dataset",
          "exemplar",
          "partition",
          "distance",
          "training"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Membership",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/medoid.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/medoid.tsx"
        },
        {
          "path": "src/components/youj/loaders/interface/computing.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/computing.ts"
        }
      ]
    },
    {
      "name": "loader-schema",
      "type": "registry:component",
      "title": "Schema loader",
      "description": "Three table schemas assemble column by column. Their key columns lift above the records, orthogonal relationship lines connect matching rows, and the keys seat together before the relationships and columns withdraw. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "schema",
        "component": "LoaderSchema",
        "category": "interface",
        "technique": "lines",
        "order": 22,
        "title": "Schema",
        "tags": [
          "tables",
          "keys",
          "relations",
          "database",
          "schema",
          "indexing"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Relations",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/schema.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/schema.tsx"
        },
        {
          "path": "src/components/youj/loaders/interface/data-plane.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/data-plane.ts"
        }
      ]
    },
    {
      "name": "loader-prefix",
      "type": "registry:component",
      "title": "Prefix loader",
      "description": "Unequal input bands become an inclusive prefix scan. Each addend slides beyond the previous total while a carried span grows behind it; a stepped bracket transfers that total to the next row, then the scan unwinds to its original inputs. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "prefix",
        "component": "LoaderPrefix",
        "category": "interface",
        "technique": "lines",
        "order": 23,
        "title": "Prefix",
        "tags": [
          "scan",
          "accumulate",
          "prefix sum",
          "aggregation",
          "dataset",
          "carry"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Carry",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/prefix.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/prefix.tsx"
        }
      ]
    },
    {
      "name": "loader-trellis",
      "type": "registry:component",
      "title": "Trellis loader",
      "description": "A sequence alignment fills its cost table along dependency diagonals. The working diagonal lifts from its sockets, each cell retains its computed cost, and a raised traceback walks the optimal edits back to the origin before the table unwrites. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "trellis",
        "component": "LoaderTrellis",
        "category": "interface",
        "technique": "lines",
        "order": 24,
        "title": "Trellis",
        "tags": [
          "alignment",
          "sequence",
          "dynamic programming",
          "wavefront",
          "matrix",
          "processing"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Traceback",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/trellis.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/trellis.tsx"
        },
        {
          "path": "src/components/youj/loaders/interface/computing.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/computing.ts"
        }
      ]
    },
    {
      "name": "loader-collate",
      "type": "registry:component",
      "title": "Collate loader",
      "description": "Two ordered runs merge into one output. Independent read brackets compare the remaining heads; the smaller keyed record crosses a raised transfer lane and appends to the result, then the merge returns each record to its original run. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "collate",
        "component": "LoaderCollate",
        "category": "interface",
        "technique": "planes",
        "order": 25,
        "title": "Collate",
        "tags": [
          "merge",
          "sorted runs",
          "records",
          "dataset",
          "stream",
          "comparison"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Keys",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/collate.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/collate.tsx"
        },
        {
          "path": "src/components/youj/loaders/interface/computing.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/computing.ts"
        },
        {
          "path": "src/components/youj/loaders/interface/data-plane.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/data-plane.ts"
        }
      ]
    },
    {
      "name": "loader-docket",
      "type": "registry:component",
      "title": "Docket loader",
      "description": "A report paginates into three leaves. Empty sheets fan out from a common spine, ruled sections flow onto each page in reading order, and a binding line closes only after the final page is set; the leaves then clear and collate again. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "docket",
        "component": "LoaderDocket",
        "category": "interface",
        "technique": "planes",
        "order": 26,
        "title": "Docket",
        "tags": [
          "report",
          "pagination",
          "document",
          "layout",
          "typesetting",
          "assembly"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Writing",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/docket.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/docket.tsx"
        }
      ]
    },
    {
      "name": "loader-stencil",
      "type": "registry:component",
      "title": "Stencil loader",
      "description": "A lifted three-tap kernel reads a field of samples along a serpentine path. Its selected samples rise into the window, weighted results accumulate on a separate output rail, and the filter retraces its route to release the results. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "stencil",
        "component": "LoaderStencil",
        "category": "interface",
        "technique": "lines",
        "order": 27,
        "title": "Stencil",
        "tags": [
          "convolution",
          "kernel",
          "filter",
          "image",
          "samples",
          "processing"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Output",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/stencil.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/stencil.tsx"
        },
        {
          "path": "src/components/youj/loaders/interface/computing.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/computing.ts"
        }
      ]
    },
    {
      "name": "loader-coalesce",
      "type": "registry:component",
      "title": "Coalesce loader",
      "description": "Overlapping ranges register against a shared ruler. Each group drops onto its union lane, duplicate coverage contracts into the already claimed span, and the two compact ranges lift back into their original records. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "coalesce",
        "component": "LoaderCoalesce",
        "category": "interface",
        "technique": "planes",
        "order": 28,
        "title": "Coalesce",
        "tags": [
          "interval",
          "union",
          "compaction",
          "range",
          "merge",
          "allocation"
        ],
        "beats": 5.8,
        "colors": [
          {
            "part": "Brackets",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/coalesce.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/coalesce.tsx"
        },
        {
          "path": "src/components/youj/loaders/interface/data-plane.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/data-plane.ts"
        },
        {
          "path": "src/components/youj/loaders/interface/computing.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/computing.ts"
        }
      ]
    },
    {
      "name": "loader-folio",
      "type": "registry:component",
      "title": "Folio loader",
      "description": "An insertion fills an index page and separates it into two ordered leaves. The right leaf copies its first key into a raised parent; routing branches connect only after that separator seats, then the split reunites for the next insertion. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "folio",
        "component": "LoaderFolio",
        "category": "interface",
        "technique": "planes",
        "order": 29,
        "title": "Folio",
        "tags": [
          "index",
          "page split",
          "b tree",
          "separator",
          "records",
          "database"
        ],
        "beats": 5.8,
        "colors": [
          {
            "part": "Keys",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/folio.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/folio.tsx"
        },
        {
          "path": "src/components/youj/loaders/interface/computing.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/computing.ts"
        },
        {
          "path": "src/components/youj/loaders/interface/data-plane.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/data-plane.ts"
        }
      ]
    },
    {
      "name": "loader-occlude",
      "type": "registry:component",
      "title": "Occlude loader",
      "description": "A tiled depth buffer resolves two overlapping triangular surfaces. The first pass writes one candidate; the second retains only the nearer fragments, splitting their overlap along its exact depth boundary while a sample ray connects the working tile to its source. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "occlude",
        "component": "LoaderOcclude",
        "category": "interface",
        "technique": "planes",
        "order": 30,
        "title": "Occlude",
        "tags": [
          "render",
          "depth buffer",
          "visibility",
          "fragments",
          "tiles",
          "rasterization"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Depth test",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/occlude.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/occlude.tsx"
        }
      ]
    },
    {
      "name": "loader-accord",
      "type": "registry:component",
      "title": "Accord loader",
      "description": "A warped net solves toward its fixed boundary through alternating constraint sweeps. Each bank moves to the average of its neighbours, residual witnesses contract and an energy gauge steps down; the sweeps unwind to the original unsolved field. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "accord",
        "component": "LoaderAccord",
        "category": "interface",
        "technique": "lines",
        "order": 31,
        "title": "Accord",
        "tags": [
          "solver",
          "relaxation",
          "constraints",
          "red black",
          "mesh",
          "convergence"
        ],
        "beats": 5.6,
        "colors": [
          {
            "part": "Correction",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/accord.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/accord.tsx"
        }
      ]
    },
    {
      "name": "loader-tensile",
      "type": "registry:component",
      "title": "Tensile loader",
      "description": "Paired operand vectors advance through three outer-product passes. A diagonal write front raises each result tile and lengthens its accumulated value, then the contributions unwind in reverse order through the same contracted axis. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "tensile",
        "component": "LoaderTensile",
        "category": "interface",
        "technique": "planes",
        "order": 32,
        "title": "Tensile",
        "tags": [
          "matrix",
          "multiply",
          "outer product",
          "compute",
          "accumulate",
          "dataset"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Products",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/tensile.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/tensile.tsx"
        },
        {
          "path": "src/components/youj/loaders/interface/data-plane.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/data-plane.ts"
        },
        {
          "path": "src/components/youj/loaders/interface/computing.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/computing.ts"
        }
      ]
    },
    {
      "name": "loader-adjoint",
      "type": "registry:component",
      "title": "Adjoint loader",
      "description": "A small model carries activations forward through three depth-separated banks. The output sends its error backward along the same connections, their weight witnesses adjust by the computed gradients, and the training step unwinds for the next example. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "adjoint",
        "component": "LoaderAdjoint",
        "category": "interface",
        "technique": "lines",
        "order": 33,
        "title": "Adjoint",
        "tags": [
          "training",
          "model",
          "gradient",
          "backpropagation",
          "network",
          "learning"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Activation",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/adjoint.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/adjoint.tsx"
        },
        {
          "path": "src/components/youj/loaders/interface/computing.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/computing.ts"
        }
      ]
    },
    {
      "name": "loader-isoline",
      "type": "registry:component",
      "title": "Isoline loader",
      "description": "A survey window reads a scalar field cell by cell. Interpolated edge crossings join into a continuous contour behind it; the completed boundary lifts clear of the sample grid before the survey unwrites along its original route. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "isoline",
        "component": "LoaderIsoline",
        "category": "interface",
        "technique": "lines",
        "order": 34,
        "title": "Isoline",
        "tags": [
          "contour",
          "marching squares",
          "map",
          "scalar field",
          "interpolation",
          "extraction"
        ],
        "beats": 6.2,
        "colors": [
          {
            "part": "Contour",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/isoline.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/isoline.tsx"
        },
        {
          "path": "src/components/youj/loaders/interface/computing.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/computing.ts"
        }
      ]
    },
    {
      "name": "loader-radix",
      "type": "registry:component",
      "title": "Radix loader",
      "description": "Keyed records distribute into digit buckets and gather in stable order. A second pass reads the next digit from the opposite bank, retaining the first pass within each bucket; the fully ordered records return through separate depth lanes for the next dataset. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "radix",
        "component": "LoaderRadix",
        "category": "interface",
        "technique": "planes",
        "order": 35,
        "title": "Radix",
        "tags": [
          "radix sort",
          "buckets",
          "stable",
          "records",
          "indexing",
          "dataset"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Digits",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/radix.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/radix.tsx"
        },
        {
          "path": "src/components/youj/loaders/interface/data-plane.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/data-plane.ts"
        }
      ]
    },
    {
      "name": "loader-pivot",
      "type": "registry:component",
      "title": "Pivot loader",
      "description": "A raised pivot row eliminates the entries beneath its diagonal. Real row operations shorten coefficient bars to zero, an outside bracket carries each subtraction to its target, and the resulting triangular matrix restores its coefficients in reverse order. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "pivot",
        "component": "LoaderPivot",
        "category": "interface",
        "technique": "lines",
        "order": 36,
        "title": "Pivot",
        "tags": [
          "matrix",
          "elimination",
          "pivot",
          "solver",
          "linear algebra",
          "training"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Row operation",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/pivot.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/pivot.tsx"
        }
      ]
    },
    {
      "name": "loader-stride",
      "type": "registry:component",
      "title": "Stride loader",
      "description": "A butterfly transform doubles its pairing distance at each stage. Crossed sum-and-difference routes write the next bank of signed amplitudes only after their inputs arrive; each crossing separates in depth, and the transform unwrites from the final bank back to the source. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "stride",
        "component": "LoaderStride",
        "category": "interface",
        "technique": "lines",
        "order": 37,
        "title": "Stride",
        "tags": [
          "butterfly",
          "transform",
          "stride",
          "parallel",
          "compute",
          "signal processing"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Butterflies",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/stride.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/stride.tsx"
        }
      ]
    },
    {
      "name": "loader-bisect",
      "type": "registry:component",
      "title": "Bisect loader",
      "description": "A spatial index divides a record field at alternating axis medians. Each divider rises only after its parent is set, leaving unequal nested search rooms; a lookup follows the actual partition decisions to one leaf, then the index withdraws from its deepest cuts. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "bisect",
        "component": "LoaderBisect",
        "category": "interface",
        "technique": "lines",
        "order": 38,
        "title": "Bisect",
        "tags": [
          "spatial index",
          "kd tree",
          "partition",
          "median",
          "search",
          "dataset"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Lookup",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/bisect.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/bisect.tsx"
        }
      ]
    },
    {
      "name": "loader-reduce",
      "type": "registry:component",
      "title": "Reduce loader",
      "description": "Four operand records fold into two intermediate instructions, which then lower into one wide output register. The records keep their strokes while travelling down separate depth lanes; consumed operands fill their parent instructions, and the expression expands in reverse dependency order. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "reduce",
        "component": "LoaderReduce",
        "category": "interface",
        "technique": "lines",
        "order": 39,
        "title": "Reduce",
        "tags": [
          "compiler",
          "syntax tree",
          "reduction",
          "expression",
          "assembly",
          "build"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Values",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/reduce.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/reduce.tsx"
        },
        {
          "path": "src/components/youj/loaders/interface/data-plane.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/data-plane.ts"
        }
      ]
    },
    {
      "name": "loader-meander",
      "type": "registry:component",
      "title": "Meander loader",
      "description": "A continuous Hilbert traversal indexes a square field without crossing itself. Neighbouring records join into four raised pages, their directory brackets close as each page completes, and the traversal walks backward to release the index. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "meander",
        "component": "LoaderMeander",
        "category": "interface",
        "technique": "lines",
        "order": 40,
        "title": "Meander",
        "tags": [
          "hilbert",
          "space filling",
          "spatial index",
          "locality",
          "pages",
          "dataset"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Route",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/meander.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/meander.tsx"
        }
      ]
    },
    {
      "name": "loader-entail",
      "type": "registry:component",
      "title": "Entail loader",
      "description": "Candidate conduit tiles hover in shallow stacks above their sockets. Matching edge constraints remove unsupported choices from neighbouring stacks; surviving tiles seat into one connected layout, a proof stroke crosses each newly agreed seam, and the alternatives reopen in reverse. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "entail",
        "component": "LoaderEntail",
        "category": "interface",
        "technique": "planes",
        "order": 41,
        "title": "Entail",
        "tags": [
          "constraints",
          "propagation",
          "tiles",
          "generation",
          "assembly",
          "wave function collapse"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Collapse",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/entail.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/entail.tsx"
        }
      ]
    },
    {
      "name": "loader-condense",
      "type": "registry:component",
      "title": "Condense loader",
      "description": "Repeated records collapse into three compact run tokens. Matching keys travel through raised transfer lanes, each consumed copy adds one notch to its token’s count, and the encoded strip binds only after every run is complete before expanding back into its source records. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "condense",
        "component": "LoaderCondense",
        "category": "interface",
        "technique": "planes",
        "order": 42,
        "title": "Condense",
        "tags": [
          "compression",
          "run length",
          "encoding",
          "records",
          "counts",
          "dataset"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Count",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/condense.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/condense.tsx"
        },
        {
          "path": "src/components/youj/loaders/interface/data-plane.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/data-plane.ts"
        },
        {
          "path": "src/components/youj/loaders/interface/computing.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/computing.ts"
        }
      ]
    },
    {
      "name": "loader-minify",
      "type": "registry:component",
      "title": "Minify loader",
      "description": "An image builds two reduced resolution levels above its source. A raised read window averages each two-by-two block into one destination texel; the next level waits for the first, and the image pyramid unwrites from its smallest plate downward. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "minify",
        "component": "LoaderMinify",
        "category": "interface",
        "technique": "planes",
        "order": 43,
        "title": "Minify",
        "tags": [
          "image",
          "pyramid",
          "mipmap",
          "downsample",
          "filter",
          "generation"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Reader",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/minify.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/minify.tsx"
        }
      ]
    },
    {
      "name": "loader-traverse",
      "type": "registry:component",
      "title": "Traverse loader",
      "description": "A sampling ray walks the exact cell boundaries of a volume. Each crossed voxel reveals its occupied interval, the working cell opens in lit faces, and a transmittance witness accumulates the integrated density before the traversal retraces. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "traverse",
        "component": "LoaderTraverse",
        "category": "interface",
        "technique": "lines",
        "order": 44,
        "title": "Traverse",
        "tags": [
          "volume",
          "voxel",
          "ray",
          "rendering",
          "sampling",
          "integration"
        ],
        "beats": 5.75,
        "colors": [
          {
            "part": "Beam",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/traverse.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/traverse.tsx"
        }
      ]
    },
    {
      "name": "loader-splice",
      "type": "registry:component",
      "title": "Splice loader",
      "description": "Three object sections dock into one continuous address space. Unresolved reference slots acquire their relocated targets through raised binding arches, the image closes along its address ruler, and the bindings release before the sections separate. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "splice",
        "component": "LoaderSplice",
        "category": "interface",
        "technique": "planes",
        "order": 45,
        "title": "Splice",
        "tags": [
          "linker",
          "compile",
          "relocation",
          "sections",
          "addresses",
          "assembly"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "References",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/splice.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/splice.tsx"
        }
      ]
    },
    {
      "name": "loader-salvage",
      "type": "registry:component",
      "title": "Salvage loader",
      "description": "A missing data stripe is reconstructed from two surviving stripes and their parity. Three read fingers contribute to each exclusive-or result before the recovered cell seats; a witness binds the restored stripe and the recovery unwrites column by column. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "interface"
      ],
      "meta": {
        "loader": "salvage",
        "component": "LoaderSalvage",
        "category": "interface",
        "technique": "lines",
        "order": 46,
        "title": "Salvage",
        "tags": [
          "recovery",
          "erasure",
          "parity",
          "restore",
          "validation",
          "data"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Donors",
            "mono": "ink"
          },
          {
            "part": "Sealed",
            "mono": "ink",
            "role": "success"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/interface/salvage.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/interface/salvage.tsx"
        }
      ]
    },
    {
      "name": "loader-mesh",
      "type": "registry:component",
      "title": "Mesh loader",
      "description": "Two spur gears on pillow blocks transmit four measured pushes through their shared contact, turning continuously in the exact 15:10 tooth ratio. Lightening holes, raised hubs and an accent timing mark show each wheel turn. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "mechanics"
      ],
      "meta": {
        "loader": "mesh",
        "component": "LoaderMesh",
        "category": "mechanics",
        "technique": "planes",
        "order": 1,
        "title": "Mesh",
        "tags": [
          "gears",
          "teeth",
          "drive",
          "transmission",
          "contact"
        ],
        "beats": 5,
        "colors": [
          {
            "part": "Follower",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/mechanics/mesh.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/mechanics/mesh.tsx"
        },
        {
          "path": "src/components/youj/loaders/mechanics/machine.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/mechanics/machine.ts"
        }
      ]
    },
    {
      "name": "loader-dwell",
      "type": "registry:component",
      "title": "Dwell loader",
      "description": "A turning cam lifts a roller follower through its guide and compresses the return spring, holds it at full travel through the dwell, then lowers it onto the base circle. The roller rides the profile all the way round. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "mechanics"
      ],
      "meta": {
        "loader": "dwell",
        "component": "LoaderDwell",
        "category": "mechanics",
        "technique": "mixed",
        "order": 2,
        "title": "Dwell",
        "tags": [
          "cam",
          "follower",
          "spring",
          "lift",
          "dwell"
        ],
        "beats": 5.5,
        "colors": [
          {
            "part": "Spring",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/mechanics/dwell.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/mechanics/dwell.tsx"
        },
        {
          "path": "src/components/youj/loaders/mechanics/machine.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/mechanics/machine.ts"
        }
      ]
    },
    {
      "name": "loader-yoke",
      "type": "registry:component",
      "title": "Yoke loader",
      "description": "A crank pin slides inside a slotted yoke, turning the disc’s steady revolution into the harmonic stroke of a piston in a cut-away cylinder. The slot, rod and piston stay constrained as the drive passes both dead centres. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "mechanics"
      ],
      "meta": {
        "loader": "yoke",
        "component": "LoaderYoke",
        "category": "mechanics",
        "technique": "lines",
        "order": 3,
        "title": "Yoke",
        "tags": [
          "crank",
          "slot",
          "piston",
          "reciprocation",
          "linkage"
        ],
        "beats": 4.5,
        "colors": [
          {
            "part": "Piston",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/mechanics/yoke.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/mechanics/yoke.tsx"
        },
        {
          "path": "src/components/youj/loaders/mechanics/machine.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/mechanics/machine.ts"
        }
      ]
    },
    {
      "name": "loader-impulse",
      "type": "registry:component",
      "title": "Impulse loader",
      "description": "Five suspended metal bobs pass an impulse from one end to the other. The end bobs swing as true pendulums, striking at full speed; the centre stays quiet while the accent runs through the contacts at each impact. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "mechanics"
      ],
      "meta": {
        "loader": "impulse",
        "component": "LoaderImpulse",
        "category": "mechanics",
        "technique": "planes",
        "order": 4,
        "title": "Impulse",
        "tags": [
          "cradle",
          "momentum",
          "pendulums",
          "collision",
          "energy"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Strings",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/mechanics/impulse.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/mechanics/impulse.tsx"
        },
        {
          "path": "src/components/youj/loaders/mechanics/machine.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/mechanics/machine.ts"
        }
      ]
    },
    {
      "name": "loader-iris",
      "type": "registry:component",
      "title": "Iris loader",
      "description": "Shingled diaphragm blades sweep round a polygonal opening inside a deep bezel, closing and opening as an accent lever travels its slot. Each blade lies over the next, edge-shadowed, and the aperture breathes without stopping. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "mechanics"
      ],
      "meta": {
        "loader": "iris",
        "component": "LoaderIris",
        "category": "mechanics",
        "technique": "mixed",
        "order": 5,
        "title": "Iris",
        "tags": [
          "diaphragm",
          "aperture",
          "blades",
          "camera",
          "linkage"
        ],
        "beats": 5,
        "colors": [
          {
            "part": "Aperture",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/mechanics/iris.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/mechanics/iris.tsx"
        },
        {
          "path": "src/components/youj/loaders/mechanics/machine.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/mechanics/machine.ts"
        }
      ]
    },
    {
      "name": "loader-tackle",
      "type": "registry:component",
      "title": "Tackle loader",
      "description": "A moving sheave hoists a suspended load while the free rope pays out at twice its travel. The rope runs over both sheaves with an accent tag riding it, and its length stays constant throughout the lift and return. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "mechanics"
      ],
      "meta": {
        "loader": "tackle",
        "component": "LoaderTackle",
        "category": "mechanics",
        "technique": "lines",
        "order": 6,
        "title": "Tackle",
        "tags": [
          "pulley",
          "hoist",
          "rope",
          "tension",
          "mechanical advantage"
        ],
        "beats": 5.5,
        "colors": [
          {
            "part": "Rope",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/mechanics/tackle.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/mechanics/tackle.tsx"
        },
        {
          "path": "src/components/youj/loaders/mechanics/machine.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/mechanics/machine.ts"
        }
      ]
    },
    {
      "name": "loader-heddle",
      "type": "registry:component",
      "title": "Heddle loader",
      "description": "Two heddle shafts open the warp into a shed and a boat shuttle flies a pick through it from box to box. The reed beats the accent pick into the fell, the shed crosses, the shuttle flies back, and the woven cloth winds steadily onto its beam. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "mechanics"
      ],
      "meta": {
        "loader": "heddle",
        "component": "LoaderHeddle",
        "category": "mechanics",
        "technique": "lines",
        "order": 7,
        "title": "Heddle",
        "tags": [
          "loom",
          "weaving",
          "warp",
          "weft",
          "shuttle",
          "textile"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Warp",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/mechanics/heddle.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/mechanics/heddle.tsx"
        },
        {
          "path": "src/components/youj/loaders/mechanics/machine.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/mechanics/machine.ts"
        }
      ]
    },
    {
      "name": "loader-gimbal",
      "type": "registry:component",
      "title": "Gimbal loader",
      "description": "Three nested bearing rings on a pedestal exchange a measured tilt around perpendicular axes. Pivot stubs carry each inner ring, and a rimmed flywheel spins on its own axle inside the moving cradle, its accent mark sweeping the rim. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "mechanics"
      ],
      "meta": {
        "loader": "gimbal",
        "component": "LoaderGimbal",
        "category": "mechanics",
        "technique": "lines",
        "order": 8,
        "title": "Gimbal",
        "tags": [
          "gyroscope",
          "bearings",
          "rings",
          "precession",
          "orientation",
          "3d"
        ],
        "beats": 5.5,
        "colors": [
          {
            "part": "Inner ring",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/mechanics/gimbal.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/mechanics/gimbal.tsx"
        },
        {
          "path": "src/components/youj/loaders/mechanics/machine.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/mechanics/machine.ts"
        }
      ]
    },
    {
      "name": "loader-lattice",
      "type": "registry:component",
      "title": "Lattice loader",
      "description": "A ram under two parallel scissor linkages lifts a platform and its accent load. Every bar keeps its length as the feet roll inward along their rails, the crossing pins rise through three stages, and the deck rides smoothly up and back down to its bed. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "mechanics"
      ],
      "meta": {
        "loader": "lattice",
        "component": "LoaderLattice",
        "category": "mechanics",
        "technique": "lines",
        "order": 9,
        "title": "Lattice",
        "tags": [
          "scissor",
          "lift",
          "linkage",
          "platform",
          "constraint",
          "deployment"
        ],
        "beats": 5.75,
        "colors": [
          {
            "part": "Crossings",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/mechanics/lattice.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/mechanics/lattice.tsx"
        },
        {
          "path": "src/components/youj/loaders/mechanics/machine.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/mechanics/machine.ts"
        }
      ]
    },
    {
      "name": "loader-siphon",
      "type": "registry:component",
      "title": "Siphon loader",
      "description": "Two glass reservoirs on a base exchange a fixed volume through a primed, elevated tube. The levels rise and fall in counterphase, the column in the tube flows one way and back with an accent parcel riding it, and the surfaces ripple while the flow is strongest. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "mechanics"
      ],
      "meta": {
        "loader": "siphon",
        "component": "LoaderSiphon",
        "category": "mechanics",
        "technique": "lines",
        "order": 10,
        "title": "Siphon",
        "tags": [
          "fluid",
          "reservoirs",
          "transfer",
          "hydraulics",
          "pipe",
          "volume"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Liquid",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/mechanics/siphon.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/mechanics/siphon.tsx"
        },
        {
          "path": "src/components/youj/loaders/mechanics/machine.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/mechanics/machine.ts"
        }
      ]
    },
    {
      "name": "loader-detent",
      "type": "registry:component",
      "title": "Detent loader",
      "description": "A crank turning steadily drives its pin into a radial slot and indexes a fourfold Geneva wheel through one precise quarter turn. Between indexes the driver’s locking disc turns inside the wheel’s concave flank and holds it still. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "mechanics"
      ],
      "meta": {
        "loader": "detent",
        "component": "LoaderDetent",
        "category": "mechanics",
        "technique": "mixed",
        "order": 11,
        "title": "Detent",
        "tags": [
          "geneva",
          "index",
          "slot",
          "drive",
          "intermittent",
          "kinematics"
        ],
        "beats": 5.5,
        "colors": [
          {
            "part": "Wheel",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/mechanics/detent.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/mechanics/detent.tsx"
        },
        {
          "path": "src/components/youj/loaders/mechanics/machine.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/mechanics/machine.ts"
        }
      ]
    },
    {
      "name": "loader-bellows",
      "type": "registry:component",
      "title": "Bellows loader",
      "description": "A hand lever rocks on its post and, through a pinned link, draws a radial concertina open and presses it shut. Air comes in through the intake valve as it opens and leaves through the outlet as it closes, each flap lifting on its hinge as the flow passes. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "mechanics"
      ],
      "meta": {
        "loader": "bellows",
        "component": "LoaderBellows",
        "category": "mechanics",
        "technique": "lines",
        "order": 12,
        "title": "Bellows",
        "tags": [
          "pneumatic",
          "concertina",
          "pressure",
          "valves",
          "folds",
          "3d"
        ],
        "beats": 5.5,
        "colors": [
          {
            "part": "Valves",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/mechanics/bellows.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/mechanics/bellows.tsx"
        },
        {
          "path": "src/components/youj/loaders/mechanics/machine.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/mechanics/machine.ts"
        }
      ]
    },
    {
      "name": "loader-tread",
      "type": "registry:component",
      "title": "Tread loader",
      "description": "Hinged track shoes, chained at their edge, circulate round a drive wheel and an idler on a side frame. The lower run lies on moving ground without slipping, the road wheels turn at the exact belt speed, and one accent shoe makes the circuit. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "mechanics"
      ],
      "meta": {
        "loader": "tread",
        "component": "LoaderTread",
        "category": "mechanics",
        "technique": "lines",
        "order": 13,
        "title": "Tread",
        "tags": [
          "track",
          "rollers",
          "links",
          "belt",
          "contact",
          "3d"
        ],
        "beats": 5,
        "colors": [
          {
            "part": "Wheels",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/mechanics/tread.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/mechanics/tread.tsx"
        },
        {
          "path": "src/components/youj/loaders/mechanics/machine.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/mechanics/machine.ts"
        }
      ]
    },
    {
      "name": "loader-fulcrum",
      "type": "registry:component",
      "title": "Fulcrum loader",
      "description": "A sliding rider glides along a graduated balance beam, crossing the pivot and back. The beam answers its changing moment a beat behind, the suspended pans swing level beneath their hangers, and the pointer sweeps its scale through equilibrium. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "mechanics"
      ],
      "meta": {
        "loader": "fulcrum",
        "component": "LoaderFulcrum",
        "category": "mechanics",
        "technique": "lines",
        "order": 14,
        "title": "Fulcrum",
        "tags": [
          "balance",
          "scale",
          "counterweight",
          "pans",
          "gravity",
          "equilibrium"
        ],
        "beats": 5.75,
        "colors": [
          {
            "part": "Pans",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/mechanics/fulcrum.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/mechanics/fulcrum.tsx"
        },
        {
          "path": "src/components/youj/loaders/mechanics/machine.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/mechanics/machine.ts"
        }
      ]
    },
    {
      "name": "loader-auger",
      "type": "registry:component",
      "title": "Auger loader",
      "description": "A helical flight turns steadily on its shaft inside an inclined, cut-away trough, carrying pockets of granules uphill by exactly one pitch a turn; one grain rides in the accent, and the lit flight passes behind the shaft and back over it. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "mechanics"
      ],
      "meta": {
        "loader": "auger",
        "component": "LoaderAuger",
        "category": "mechanics",
        "technique": "mixed",
        "order": 15,
        "title": "Auger",
        "tags": [
          "screw",
          "conveyor",
          "helix",
          "transport",
          "trough",
          "flight"
        ],
        "beats": 5,
        "colors": [
          {
            "part": "Granules",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/mechanics/auger.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/mechanics/auger.tsx"
        },
        {
          "path": "src/components/youj/loaders/mechanics/machine.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/mechanics/machine.ts"
        }
      ]
    },
    {
      "name": "loader-epicycle",
      "type": "registry:component",
      "title": "Epicycle loader",
      "description": "Three planets roll between a driven sun and a fixed internal ring. A spider carrier turns once a loop in three swelling strokes that never stop, while the sun turns four times and each planet counterturns twice; the accent arm follows the carrier. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "mechanics"
      ],
      "meta": {
        "loader": "epicycle",
        "component": "LoaderEpicycle",
        "category": "mechanics",
        "technique": "mixed",
        "order": 30,
        "title": "Epicycle",
        "tags": [
          "planetary",
          "gearbox",
          "carrier",
          "transmission",
          "annulus",
          "kinematics"
        ],
        "beats": 5.8,
        "colors": [
          {
            "part": "Planets",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/mechanics/epicycle.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/mechanics/epicycle.tsx"
        },
        {
          "path": "src/components/youj/loaders/mechanics/machine.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/mechanics/machine.ts"
        }
      ]
    },
    {
      "name": "loader-bolus",
      "type": "registry:component",
      "title": "Bolus loader",
      "description": "A soft conduit squeezes behind a travelling pocket. Lit compression collars on posts close in sequence and reopen as the bulge passes, and the cutaway membrane shows the accent bolus riding the pocket from end to end. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "mechanics"
      ],
      "meta": {
        "loader": "bolus",
        "component": "LoaderBolus",
        "category": "mechanics",
        "technique": "planes",
        "order": 31,
        "title": "Bolus",
        "tags": [
          "peristalsis",
          "soft",
          "pump",
          "membrane",
          "transport",
          "constriction"
        ],
        "beats": 5.5,
        "colors": [
          {
            "part": "Collars",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/mechanics/bolus.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/mechanics/bolus.tsx"
        },
        {
          "path": "src/components/youj/loaders/mechanics/machine.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/mechanics/machine.ts"
        }
      ]
    },
    {
      "name": "loader-nutate",
      "type": "registry:component",
      "title": "Nutate loader",
      "description": "A spoked flywheel spins on a leaning axle that precesses round a pivot on its pedestal. Two nods a turn modulate the cone, the axle tip traces its looping path, and a short accent on the rim follows the independent spin. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "mechanics"
      ],
      "meta": {
        "loader": "nutate",
        "component": "LoaderNutate",
        "category": "mechanics",
        "technique": "planes",
        "order": 32,
        "title": "Nutate",
        "tags": [
          "gyroscope",
          "precession",
          "nutation",
          "flywheel",
          "angular momentum",
          "pivot"
        ],
        "beats": 5.2,
        "colors": [
          {
            "part": "Trace",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/mechanics/nutate.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/mechanics/nutate.tsx"
        },
        {
          "path": "src/components/youj/loaders/mechanics/machine.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/mechanics/machine.ts"
        }
      ]
    },
    {
      "name": "loader-gores",
      "type": "registry:component",
      "title": "Gores loader",
      "description": "Longitudinal shell gores peel from a globe into a flat interrupted map, each strip a beat behind its neighbour. The latitude rulings straighten, a map frame and equator register the sheet, and the seams close in reverse around the globe. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "orbs"
      ],
      "meta": {
        "loader": "gores",
        "component": "LoaderGores",
        "category": "orbs",
        "technique": "planes",
        "order": 1,
        "title": "Gores",
        "tags": [
          "cartography",
          "globe",
          "projection",
          "unwrap",
          "longitude"
        ],
        "beats": 5.5,
        "colors": [
          {
            "part": "Register",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/orbs/gores.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/orbs/gores.tsx"
        },
        {
          "path": "src/components/youj/loaders/orbs/sphere.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/orbs/sphere.ts"
        }
      ]
    },
    {
      "name": "loader-lamina",
      "type": "registry:component",
      "title": "Lamina loader",
      "description": "A sphere separates into horizontal laminae in a rising wave. Each cut face shows the section of the core inside, fine registration pins bridge the gaps as the slices sway, and the slices settle back into one spherical envelope. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "orbs"
      ],
      "meta": {
        "loader": "lamina",
        "component": "LoaderLamina",
        "category": "orbs",
        "technique": "planes",
        "order": 2,
        "title": "Lamina",
        "tags": [
          "sphere",
          "slices",
          "tomography",
          "stack",
          "section"
        ],
        "beats": 5.5,
        "colors": [
          {
            "part": "Sections",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/orbs/lamina.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/orbs/lamina.tsx"
        },
        {
          "path": "src/components/youj/loaders/orbs/sphere.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/orbs/sphere.ts"
        }
      ]
    },
    {
      "name": "loader-vesicle",
      "type": "registry:component",
      "title": "Vesicle loader",
      "description": "A glass orb hangs in front of a ruled sheet that rocks to and fro. Around the orb the rulings run straight; through it they are traced by Snell’s law at both surfaces, so the sheet appears inverted, bowed and swept the other way, while a reflection slides across the glass. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "orbs"
      ],
      "meta": {
        "loader": "vesicle",
        "component": "LoaderVesicle",
        "category": "orbs",
        "technique": "lines",
        "order": 3,
        "title": "Vesicle",
        "tags": [
          "orb",
          "glass",
          "refraction",
          "bubble",
          "optics",
          "lens"
        ],
        "beats": 5,
        "colors": [
          {
            "part": "Lens",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/orbs/vesicle.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/orbs/vesicle.tsx"
        },
        {
          "path": "src/components/youj/loaders/orbs/sphere.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/orbs/sphere.ts"
        }
      ]
    },
    {
      "name": "loader-cleave",
      "type": "registry:component",
      "title": "Cleave loader",
      "description": "A liquid Cassini surface narrows at its waist and cleaves into two rounded lobes. An accent waist ring pinches to nothing on a registered cleavage plane, the lobes turn through depth with contours that follow the changing topology, and surface tension draws them back together. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "orbs"
      ],
      "meta": {
        "loader": "cleave",
        "component": "LoaderCleave",
        "category": "orbs",
        "technique": "planes",
        "order": 4,
        "title": "Cleave",
        "tags": [
          "orb",
          "liquid",
          "metaball",
          "split",
          "merge"
        ],
        "beats": 5.5,
        "colors": [
          {
            "part": "Plane",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/orbs/cleave.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/orbs/cleave.tsx"
        },
        {
          "path": "src/components/youj/loaders/orbs/sphere.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/orbs/sphere.ts"
        }
      ]
    },
    {
      "name": "loader-chordal",
      "type": "registry:component",
      "title": "Chordal loader",
      "description": "An icosahedral sphere refines in a travelling wave as it turns. Edge midpoints lift onto the spherical surface with their hubs, triangular braces appear behind them, and the refined geodesic skin relaxes back to its coarse chords. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "orbs"
      ],
      "meta": {
        "loader": "chordal",
        "component": "LoaderChordal",
        "category": "orbs",
        "technique": "lines",
        "order": 5,
        "title": "Chordal",
        "tags": [
          "sphere",
          "geodesic",
          "icosahedron",
          "subdivision",
          "triangles"
        ],
        "beats": 5.5,
        "colors": [
          {
            "part": "Refinement",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/orbs/chordal.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/orbs/chordal.tsx"
        },
        {
          "path": "src/components/youj/loaders/orbs/sphere.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/orbs/sphere.ts"
        }
      ]
    },
    {
      "name": "loader-armature",
      "type": "registry:component",
      "title": "Armature loader",
      "description": "A spherical exoskeleton assembles around a softly lit core as it slowly turns. Paired meridian ribs swing shut on their pole hubs, latitude ties seat in succession and rivet to every rib, and a short inspection arc runs round before the cage opens again. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "orbs"
      ],
      "meta": {
        "loader": "armature",
        "component": "LoaderArmature",
        "category": "orbs",
        "technique": "mixed",
        "order": 6,
        "title": "Armature",
        "tags": [
          "sphere",
          "lattice",
          "assembly",
          "cage",
          "core"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Ties",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/orbs/armature.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/orbs/armature.tsx"
        },
        {
          "path": "src/components/youj/loaders/orbs/sphere.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/orbs/sphere.ts"
        }
      ]
    },
    {
      "name": "loader-brim",
      "type": "registry:component",
      "title": "Brim loader",
      "description": "A glass sphere fills in three measured pours from a nozzle above its neck, each stream landing in ripples and a settling slosh. A level witness rides the meniscus up its scale, each calibration stroke lights as it is reached, and a valve below drains it back down. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "orbs"
      ],
      "meta": {
        "loader": "brim",
        "component": "LoaderBrim",
        "category": "orbs",
        "technique": "mixed",
        "order": 7,
        "title": "Brim",
        "tags": [
          "orb",
          "gauge",
          "fill",
          "progress",
          "liquid"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Liquid",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/orbs/brim.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/orbs/brim.tsx"
        },
        {
          "path": "src/components/youj/loaders/orbs/sphere.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/orbs/sphere.ts"
        }
      ]
    },
    {
      "name": "loader-cincture",
      "type": "registry:component",
      "title": "Cincture loader",
      "description": "A lit planet carries a broad inclined annulus through a slow nod. Gaps between the ring bands breathe, an inset arc counterturns, and a small moon passes behind the planet and back across the foreground. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "orbs"
      ],
      "meta": {
        "loader": "cincture",
        "component": "LoaderCincture",
        "category": "orbs",
        "technique": "planes",
        "order": 8,
        "title": "Cincture",
        "tags": [
          "sphere",
          "planet",
          "rings",
          "orbit",
          "moon"
        ],
        "beats": 5.5,
        "colors": [
          {
            "part": "Ring",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/orbs/cincture.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/orbs/cincture.tsx"
        },
        {
          "path": "src/components/youj/loaders/orbs/sphere.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/orbs/sphere.ts"
        }
      ]
    },
    {
      "name": "loader-respire",
      "type": "registry:component",
      "title": "Respire loader",
      "description": "A meridian skin, drawn in hidden-line style, breathes through two elastic modes while paired satellites orbit in opposed inclined planes, passing behind it and across it. Their approaches pull the poles outward, and a short equatorial pressure front circles the returning skin. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "orbs"
      ],
      "meta": {
        "loader": "respire",
        "component": "LoaderRespire",
        "category": "orbs",
        "technique": "lines",
        "order": 9,
        "title": "Respire",
        "tags": [
          "orb",
          "breathing",
          "elastic",
          "satellites",
          "pressure"
        ],
        "beats": 5,
        "colors": [
          {
            "part": "Trails",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/orbs/respire.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/orbs/respire.tsx"
        },
        {
          "path": "src/components/youj/loaders/orbs/sphere.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/orbs/sphere.ts"
        }
      ]
    },
    {
      "name": "loader-pith",
      "type": "registry:component",
      "title": "Pith loader",
      "description": "Nested spherical shells swing open in staggered pairs on hinges at their backs, like a case opening, to expose a small turning inner orb. Lit inner walls and half-ring cut rims show the thickness of each layer before the halves close from the inside outward. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "orbs"
      ],
      "meta": {
        "loader": "pith",
        "component": "LoaderPith",
        "category": "orbs",
        "technique": "planes",
        "order": 10,
        "title": "Pith",
        "tags": [
          "sphere",
          "shells",
          "cutaway",
          "peel",
          "interior",
          "hinge"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Rims",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/orbs/pith.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/orbs/pith.tsx"
        },
        {
          "path": "src/components/youj/loaders/orbs/sphere.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/orbs/sphere.ts"
        }
      ]
    },
    {
      "name": "loader-ligate",
      "type": "registry:component",
      "title": "Ligate loader",
      "description": "A double helix opens from its upper end as paired bases separate into two half-rungs. The opening fork descends through the turning backbones, pauses, and climbs back as complementary bases meet again. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "science"
      ],
      "meta": {
        "loader": "ligate",
        "component": "LoaderLigate",
        "category": "science",
        "technique": "lines",
        "order": 1,
        "title": "Ligate",
        "tags": [
          "dna",
          "double helix",
          "base pair",
          "unzipping",
          "molecular",
          "3d"
        ],
        "beats": 5.75,
        "colors": [
          {
            "part": "Bases",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/science/ligate.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/science/ligate.tsx"
        },
        {
          "path": "src/components/youj/loaders/science/matter.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/science/matter.ts"
        }
      ]
    },
    {
      "name": "loader-valence",
      "type": "registry:component",
      "title": "Valence loader",
      "description": "Four atoms approach a central atom along its four dashed valence directions and seat bond by bond. The completed ball-and-stick molecule shows its tetrahedron as it turns through depth, then the bonds release and the atoms withdraw in the same measured sequence. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "science"
      ],
      "meta": {
        "loader": "valence",
        "component": "LoaderValence",
        "category": "science",
        "technique": "mixed",
        "order": 2,
        "title": "Valence",
        "tags": [
          "molecule",
          "tetrahedral",
          "ball and stick",
          "assembly",
          "bond",
          "3d"
        ],
        "beats": 5.5,
        "colors": [
          {
            "part": "Valences",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/science/valence.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/science/valence.tsx"
        },
        {
          "path": "src/components/youj/loaders/science/matter.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/science/matter.ts"
        }
      ]
    },
    {
      "name": "loader-halite",
      "type": "registry:component",
      "title": "Halite loader",
      "description": "An ionic crystal grows from an accent seed into connected cubic cells. Large and small ions seat by turns along a diagonal growth front, each lattice line reaching out to a neighbour as it arrives, the unit cell ruled in dashes once whole; then the outer layers dissolve back toward the seed. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "science"
      ],
      "meta": {
        "loader": "halite",
        "component": "LoaderHalite",
        "category": "science",
        "technique": "lines",
        "order": 3,
        "title": "Halite",
        "tags": [
          "crystal",
          "ionic",
          "unit cell",
          "lattice growth",
          "nucleation",
          "3d"
        ],
        "beats": 5.5,
        "colors": [
          {
            "part": "Small ions",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/science/halite.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/science/halite.tsx"
        },
        {
          "path": "src/components/youj/loaders/science/matter.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/science/matter.ts"
        }
      ]
    },
    {
      "name": "loader-chaperone",
      "type": "registry:component",
      "title": "Chaperone loader",
      "description": "A loose protein coil zips into an alpha helix from one end, its thin backbone widening into a lit ribbon as each turn forms and hydrogen bonds bridging neighbouring turns. The accent marks the folding front; after a turn of the view the helix unzips back into the coil from the other end. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "science"
      ],
      "meta": {
        "loader": "chaperone",
        "component": "LoaderChaperone",
        "category": "science",
        "technique": "planes",
        "order": 4,
        "title": "Chaperone",
        "tags": [
          "protein",
          "folding",
          "ribbon",
          "torsion",
          "hydrogen bond",
          "3d"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Bonds",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/science/chaperone.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/science/chaperone.tsx"
        },
        {
          "path": "src/components/youj/loaders/science/matter.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/science/matter.ts"
        }
      ]
    },
    {
      "name": "loader-lobule",
      "type": "registry:component",
      "title": "Lobule loader",
      "description": "Two opposed p-orbital lobes open around a small nucleus and turn their nodal plane through depth. Lit shell strips show their volume, a spherical s-shell remains inside, and a short meridian carries the accent as the lobes breathe and reorient. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "science"
      ],
      "meta": {
        "loader": "lobule",
        "component": "LoaderLobule",
        "category": "science",
        "technique": "planes",
        "order": 5,
        "title": "Lobule",
        "tags": [
          "orbital",
          "p lobe",
          "s shell",
          "electron density",
          "nodal plane",
          "3d"
        ],
        "beats": 5,
        "colors": [
          {
            "part": "S-shell",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/science/lobule.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/science/lobule.tsx"
        },
        {
          "path": "src/components/youj/loaders/science/matter.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/science/matter.ts"
        }
      ]
    },
    {
      "name": "loader-chamber",
      "type": "registry:component",
      "title": "Chamber loader",
      "description": "A beam track of bubbles crosses a framed bubble chamber and strikes a target. Charged tracks curl away from the vertex in opposite senses, spiralling tighter as they lose energy, a tight delta-ray curl and a neutral decay’s V follow, and the whole event drains away as the next beam particle enters. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "science"
      ],
      "meta": {
        "loader": "chamber",
        "component": "LoaderChamber",
        "category": "science",
        "technique": "paths",
        "order": 6,
        "title": "Chamber",
        "tags": [
          "bubble chamber",
          "collision",
          "charged track",
          "magnetic field",
          "particle physics",
          "3d"
        ],
        "beats": 5.25,
        "colors": [
          {
            "part": "Tracks",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/science/chamber.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/science/chamber.tsx"
        },
        {
          "path": "src/components/youj/loaders/science/matter.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/science/matter.ts"
        }
      ]
    },
    {
      "name": "loader-adduct",
      "type": "registry:component",
      "title": "Adduct loader",
      "description": "Two reactants land in neighbouring hollows of a lattice of surface atoms, held by short surface bonds. They slide together and couple through a new accent bond, the product lifts off and turns away into the distance, and the next pair is already on its way in. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "science"
      ],
      "meta": {
        "loader": "adduct",
        "component": "LoaderAdduct",
        "category": "science",
        "technique": "mixed",
        "order": 7,
        "title": "Adduct",
        "tags": [
          "catalyst",
          "adsorption",
          "reaction",
          "desorption",
          "surface chemistry",
          "3d"
        ],
        "beats": 5.75,
        "colors": [
          {
            "part": "Reactants",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/science/adduct.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/science/adduct.tsx"
        },
        {
          "path": "src/components/youj/loaders/science/matter.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/science/matter.ts"
        }
      ]
    },
    {
      "name": "loader-exchange",
      "type": "registry:component",
      "title": "Exchange loader",
      "description": "An approaching atom takes a covalent bond as the opposite atom departs. Both bonds are partial through the shared transition, the three spectator bonds flatten and invert like an umbrella, and the exchange runs back to restore the starting molecule. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "science"
      ],
      "meta": {
        "loader": "exchange",
        "component": "LoaderExchange",
        "category": "science",
        "technique": "mixed",
        "order": 8,
        "title": "Exchange",
        "tags": [
          "covalent",
          "substitution",
          "bond exchange",
          "inversion",
          "transition state",
          "3d"
        ],
        "beats": 5.5,
        "colors": [
          {
            "part": "Leaving group",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/science/exchange.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/science/exchange.tsx"
        },
        {
          "path": "src/components/youj/loaders/science/matter.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/science/matter.ts"
        }
      ]
    },
    {
      "name": "loader-kekule",
      "type": "registry:component",
      "title": "Kekule loader",
      "description": "A lit benzene ring rocks in perspective while its two Kekulé drawings trade places: the alternating double bonds fade through one delocalized inner ring, with the pi clouds above and below it, and back. One accent electron pair slides from bond to bond as the structures turn over. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "science"
      ],
      "meta": {
        "loader": "kekule",
        "component": "LoaderKekule",
        "category": "science",
        "technique": "lines",
        "order": 9,
        "title": "Kekule",
        "tags": [
          "benzene",
          "aromatic",
          "resonance",
          "delocalization",
          "chemical structure",
          "3d"
        ],
        "beats": 5.25,
        "colors": [
          {
            "part": "Delocalized",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/science/kekule.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/science/kekule.tsx"
        },
        {
          "path": "src/components/youj/loaders/science/matter.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/science/matter.ts"
        }
      ]
    },
    {
      "name": "loader-catenate",
      "type": "registry:component",
      "title": "Catenate loader",
      "description": "A monomer swings in and turns into alignment with a growing polymer tip, reaches for it with a partial bond and closes the link, and the active end, an accent mark, steps onto it. The zigzag chain flows back into depth by exactly one repeat unit a loop, its oldest unit dwindling as the next donor arrives. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "science"
      ],
      "meta": {
        "loader": "catenate",
        "component": "LoaderCatenate",
        "category": "science",
        "technique": "lines",
        "order": 10,
        "title": "Catenate",
        "tags": [
          "polymer",
          "monomer",
          "chain growth",
          "linking",
          "repeat unit",
          "3d"
        ],
        "beats": 5.25,
        "colors": [
          {
            "part": "Reach",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/science/catenate.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/science/catenate.tsx"
        },
        {
          "path": "src/components/youj/loaders/science/matter.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/science/matter.ts"
        }
      ]
    },
    {
      "name": "loader-cue",
      "type": "registry:component",
      "title": "Cue loader",
      "description": "The interface’s sounds as waveforms: a tap, a toggle, a bell and a success, each struck and written out by the accent head, then wiped away as the next one rings. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "signal"
      ],
      "meta": {
        "loader": "cue",
        "component": "LoaderCue",
        "category": "signal",
        "technique": "paths",
        "order": 1,
        "title": "Cue",
        "tags": [
          "waveform",
          "sound",
          "audio",
          "cue",
          "envelope",
          "playhead",
          "glass"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Strikes",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/signal/cue.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/cue.tsx"
        },
        {
          "path": "src/components/youj/loaders/signal/trace.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/trace.ts"
        }
      ]
    },
    {
      "name": "loader-phosphor",
      "type": "registry:component",
      "title": "Phosphor loader",
      "description": "A scope’s beam sweeps a modulated signal across its graticule, each trace glowing where it was just written and fading behind the beam, the last sweeps lingering as ghosts. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "signal"
      ],
      "meta": {
        "loader": "phosphor",
        "component": "LoaderPhosphor",
        "category": "signal",
        "technique": "lines",
        "order": 2,
        "title": "Phosphor",
        "tags": [
          "oscilloscope",
          "scope",
          "trace",
          "persistence",
          "graticule",
          "modulation",
          "beam"
        ],
        "beats": 4.5,
        "colors": [
          {
            "part": "Phosphor",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/signal/phosphor.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/phosphor.tsx"
        },
        {
          "path": "src/components/youj/loaders/signal/trace.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/trace.ts"
        }
      ]
    },
    {
      "name": "loader-sustain",
      "type": "registry:component",
      "title": "Sustain loader",
      "description": "A waterfall of spectra in perspective: each new spectrum rises at the front and flows back into the distance, so a struck note leaves a ridge that rings on, dying away, as the stack recedes. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "signal"
      ],
      "meta": {
        "loader": "sustain",
        "component": "LoaderSustain",
        "category": "signal",
        "technique": "lines",
        "order": 3,
        "title": "Sustain",
        "tags": [
          "spectrum",
          "waterfall",
          "ridgeline",
          "spectrogram",
          "perspective",
          "notes",
          "audio",
          "3d"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "New spectrum",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/signal/sustain.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/sustain.tsx"
        },
        {
          "path": "src/components/youj/loaders/signal/trace.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/trace.ts"
        }
      ]
    },
    {
      "name": "loader-isobar",
      "type": "registry:component",
      "title": "Isobar loader",
      "description": "An isometric spectrum: lit columns on a plinth jump as notes are struck and fall back, each with a cap that holds its peak a moment before it drops, the last strike’s cap in the accent. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "signal"
      ],
      "meta": {
        "loader": "isobar",
        "component": "LoaderIsobar",
        "category": "signal",
        "technique": "planes",
        "order": 4,
        "title": "Isobar",
        "tags": [
          "spectrum",
          "equalizer",
          "isometric",
          "bars",
          "peak hold",
          "audio",
          "meter",
          "3d"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Second channel",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/signal/isobar.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/isobar.tsx"
        },
        {
          "path": "src/components/youj/loaders/signal/trace.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/trace.ts"
        }
      ]
    },
    {
      "name": "loader-tail",
      "type": "registry:component",
      "title": "Tail loader",
      "description": "A live line chart following its newest value: each point arrives as the chart steps left, the accent head drawing the new stretch while a level line marks where it stands. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "signal"
      ],
      "meta": {
        "loader": "tail",
        "component": "LoaderTail",
        "category": "signal",
        "technique": "paths",
        "order": 5,
        "title": "Tail",
        "tags": [
          "chart",
          "line chart",
          "stream",
          "live",
          "realtime",
          "metrics",
          "sparkline",
          "data"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Area",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/signal/tail.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/tail.tsx"
        },
        {
          "path": "src/components/youj/loaders/signal/trace.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/trace.ts"
        }
      ]
    },
    {
      "name": "loader-tempo",
      "type": "registry:component",
      "title": "Tempo loader",
      "description": "A dial scaled in the motion tokens: the needle steps up through instant, fast, base, slow and deliberate, landing on each tick as it lights, then sweeps home. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "signal"
      ],
      "meta": {
        "loader": "tempo",
        "component": "LoaderTempo",
        "category": "signal",
        "technique": "lines",
        "order": 6,
        "title": "Tempo",
        "tags": [
          "gauge",
          "dial",
          "meter",
          "needle",
          "sweep",
          "tokens",
          "speedometer"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Progress",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/signal/tempo.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/tempo.tsx"
        },
        {
          "path": "src/components/youj/loaders/signal/trace.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/trace.ts"
        }
      ]
    },
    {
      "name": "loader-locus",
      "type": "registry:component",
      "title": "Locus loader",
      "description": "A Lissajous figure in three dimensions, three tones in one closed curve over its shadow on a construction frame, turning in perspective while the accent traces it with a bright wake. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "signal"
      ],
      "meta": {
        "loader": "locus",
        "component": "LoaderLocus",
        "category": "signal",
        "technique": "paths",
        "order": 7,
        "title": "Locus",
        "tags": [
          "lissajous",
          "curve",
          "knot",
          "harmonic",
          "3d",
          "orbit",
          "oscilloscope",
          "trace"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Wake",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/signal/locus.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/locus.tsx"
        },
        {
          "path": "src/components/youj/loaders/signal/trace.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/trace.ts"
        }
      ]
    },
    {
      "name": "loader-vitals",
      "type": "registry:component",
      "title": "Vitals loader",
      "description": "A monitor’s sweep writes a steady pulse, each beat a double tap stepping up like a toggle clicking in, the accent head throbbing on the beat as the old trace clears ahead of it. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "signal"
      ],
      "meta": {
        "loader": "vitals",
        "component": "LoaderVitals",
        "category": "signal",
        "technique": "paths",
        "order": 8,
        "title": "Vitals",
        "tags": [
          "heartbeat",
          "pulse",
          "ecg",
          "monitor",
          "health",
          "status",
          "alive",
          "sweep"
        ],
        "beats": 5,
        "colors": [
          {
            "part": "Fresh trace",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/signal/vitals.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/vitals.tsx"
        },
        {
          "path": "src/components/youj/loaders/signal/trace.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/trace.ts"
        }
      ]
    },
    {
      "name": "loader-harmonics",
      "type": "registry:component",
      "title": "Harmonics loader",
      "description": "A square built from sines: a chain of turning circles adds the odd harmonics one by one, and the wave its tip draws squares up, with every corner, then softens back to a sine. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "signal"
      ],
      "meta": {
        "loader": "harmonics",
        "component": "LoaderHarmonics",
        "category": "signal",
        "technique": "lines",
        "order": 9,
        "title": "Harmonics",
        "tags": [
          "fourier",
          "square wave",
          "epicycles",
          "phasor",
          "sine",
          "synthesis",
          "harmonic"
        ],
        "beats": 5,
        "colors": [
          {
            "part": "Wave",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/signal/harmonics.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/harmonics.tsx"
        },
        {
          "path": "src/components/youj/loaders/signal/trace.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/trace.ts"
        }
      ]
    },
    {
      "name": "loader-delta",
      "type": "registry:component",
      "title": "Delta loader",
      "description": "A line chart rewritten in place: a caret sweeps across it and each point it passes moves to its new value, leaving the old line as a dashed ghost and the change marked, three times a loop. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "signal"
      ],
      "meta": {
        "loader": "delta",
        "component": "LoaderDelta",
        "category": "signal",
        "technique": "paths",
        "order": 10,
        "title": "Delta",
        "tags": [
          "chart",
          "line chart",
          "diff",
          "update",
          "caret",
          "revision",
          "data",
          "refresh"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Change",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/signal/delta.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/delta.tsx"
        },
        {
          "path": "src/components/youj/loaders/signal/trace.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/trace.ts"
        }
      ]
    },
    {
      "name": "loader-least-squares",
      "type": "registry:component",
      "title": "Least squares loader",
      "description": "Scattered square particles gather into a trend, and a line in the accent finds it: it turns from level to the fit as the residuals between it and each point shrink, then the points scatter again. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "signal"
      ],
      "meta": {
        "loader": "least-squares",
        "component": "LoaderLeastSquares",
        "category": "signal",
        "technique": "particles",
        "order": 11,
        "title": "Least squares",
        "tags": [
          "scatter",
          "regression",
          "trend",
          "fit",
          "data",
          "analytics",
          "chart",
          "line"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Residuals",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/signal/least-squares.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/least-squares.tsx"
        },
        {
          "path": "src/components/youj/loaders/signal/trace.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/trace.ts"
        }
      ]
    },
    {
      "name": "loader-bell",
      "type": "registry:component",
      "title": "Bell loader",
      "description": "Square particles drop through a board of pegs, falling left or right at each, and stack in the bins below into a bell, which a curve then traces before the bins empty and it begins again. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "signal"
      ],
      "meta": {
        "loader": "bell",
        "component": "LoaderBell",
        "category": "signal",
        "technique": "particles",
        "order": 12,
        "title": "Bell",
        "tags": [
          "distribution",
          "histogram",
          "bell curve",
          "normal",
          "galton",
          "probability",
          "statistics"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Particles",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/signal/bell.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/bell.tsx"
        },
        {
          "path": "src/components/youj/loaders/signal/trace.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/trace.ts"
        }
      ]
    },
    {
      "name": "loader-spool",
      "type": "registry:component",
      "title": "Spool loader",
      "description": "A recorder’s drum turns in perspective while the accent stylus writes a trace onto it, the line winding round and rising a step each turn, so the record spools up the drum and fades at the top. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "signal"
      ],
      "meta": {
        "loader": "spool",
        "component": "LoaderSpool",
        "category": "signal",
        "technique": "paths",
        "order": 13,
        "title": "Spool",
        "tags": [
          "drum",
          "recorder",
          "seismograph",
          "cylinder",
          "trace",
          "3d",
          "helix",
          "pen"
        ],
        "beats": 5,
        "colors": [
          {
            "part": "Record",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/signal/spool.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/spool.tsx"
        },
        {
          "path": "src/components/youj/loaders/signal/trace.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/trace.ts"
        }
      ]
    },
    {
      "name": "loader-wick",
      "type": "registry:component",
      "title": "Wick loader",
      "description": "A live candlestick chart: the newest candle forms as its price wanders, wicks stretching to each extreme, then it closes, the chart steps left and the next one opens where it closed. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "signal"
      ],
      "meta": {
        "loader": "wick",
        "component": "LoaderWick",
        "category": "signal",
        "technique": "mixed",
        "order": 14,
        "title": "Wick",
        "tags": [
          "candlestick",
          "chart",
          "market",
          "price",
          "live",
          "ticker",
          "finance",
          "data"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Rising candles",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/signal/wick.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/wick.tsx"
        },
        {
          "path": "src/components/youj/loaders/signal/trace.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/trace.ts"
        }
      ]
    },
    {
      "name": "loader-caustic",
      "type": "registry:component",
      "title": "Caustic loader",
      "description": "A cylindrical bundle of rays passes through a convex lens and converges at a travelling focus. Short light fronts cross the lens, meet at the waist and spread onto the receiving screen as the focus draws near and recedes. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "signal"
      ],
      "meta": {
        "loader": "caustic",
        "component": "LoaderCaustic",
        "category": "signal",
        "technique": "lines",
        "order": 15,
        "title": "Caustic",
        "tags": [
          "optics",
          "lens",
          "focus",
          "light",
          "ray",
          "convergence"
        ],
        "beats": 5,
        "colors": [
          {
            "part": "Refracted rays",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/signal/caustic.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/caustic.tsx"
        }
      ]
    },
    {
      "name": "loader-umbra",
      "type": "registry:component",
      "title": "Umbra loader",
      "description": "An opaque disc drifts across an extended light source. Grazing rays bound its core shadow and soft penumbra on a gridded screen; a short light front travels along the clear boundary while the shadow follows the disc at its projected magnification. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "signal"
      ],
      "meta": {
        "loader": "umbra",
        "component": "LoaderUmbra",
        "category": "signal",
        "technique": "lines",
        "order": 16,
        "title": "Umbra",
        "tags": [
          "optics",
          "eclipse",
          "shadow",
          "penumbra",
          "rays",
          "projection"
        ],
        "beats": 5.5,
        "colors": [
          {
            "part": "Grazing rays",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/signal/umbra.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/umbra.tsx"
        }
      ]
    },
    {
      "name": "loader-flux",
      "type": "registry:component",
      "title": "Flux loader",
      "description": "A cage of field lines connects two opposed pole pieces. As the poles separate, the returning arches expand in six depth planes; short travelling strokes follow the field while one near arc briefly takes the accent. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "signal"
      ],
      "meta": {
        "loader": "flux",
        "component": "LoaderFlux",
        "category": "signal",
        "technique": "lines",
        "order": 17,
        "title": "Flux",
        "tags": [
          "magnetic",
          "field",
          "dipole",
          "poles",
          "force",
          "3d"
        ],
        "beats": 5,
        "colors": [
          {
            "part": "Field strokes",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/signal/flux.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/flux.tsx"
        }
      ]
    },
    {
      "name": "loader-fringe",
      "type": "registry:component",
      "title": "Fringe loader",
      "description": "A coherent beam meets two narrow slits. Paired circular wavefronts spread through depth, overlap, and reach a receiving screen whose bright and dark bands follow their path-length difference; the central fringe carries a small accent tick. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "signal"
      ],
      "meta": {
        "loader": "fringe",
        "component": "LoaderFringe",
        "category": "signal",
        "technique": "lines",
        "order": 18,
        "title": "Fringe",
        "tags": [
          "diffraction",
          "interference",
          "double slit",
          "wavefront",
          "light",
          "optics"
        ],
        "beats": 5,
        "colors": [
          {
            "part": "Bright bands",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/signal/fringe.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/fringe.tsx"
        }
      ]
    },
    {
      "name": "loader-capillary",
      "type": "registry:component",
      "title": "Capillary loader",
      "description": "Three narrow tubes wet from a shared shallow bath. Their concave fronts climb to progressively greater heights as the bore narrows, pause at equilibrium, and retreat; fine level guides and the nearest wet rim follow each rise. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "signal"
      ],
      "meta": {
        "loader": "capillary",
        "component": "LoaderCapillary",
        "category": "signal",
        "technique": "lines",
        "order": 19,
        "title": "Capillary",
        "tags": [
          "wetting",
          "tubes",
          "meniscus",
          "surface tension",
          "liquid",
          "3d"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Liquid",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/signal/capillary.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/capillary.tsx"
        }
      ]
    },
    {
      "name": "loader-refract",
      "type": "registry:component",
      "title": "Refract loader",
      "description": "A sheet of parallel light crosses both inclined walls of a triangular prism. Its direction changes at each interface according to the same refractive ratio; travelling fronts narrow inside the glass and emerge onto a ruled receiving plane. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "signal"
      ],
      "meta": {
        "loader": "refract",
        "component": "LoaderRefract",
        "category": "signal",
        "technique": "lines",
        "order": 20,
        "title": "Refract",
        "tags": [
          "prism",
          "refraction",
          "wavefront",
          "snell",
          "optics",
          "3d"
        ],
        "beats": 5,
        "colors": [
          {
            "part": "Light fronts",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/signal/refract.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/refract.tsx"
        }
      ]
    },
    {
      "name": "loader-azimuth",
      "type": "registry:component",
      "title": "Azimuth loader",
      "description": "Three surveyed landmarks turn their bearings toward a common fix on a tilted map. Their uncertainty wedges narrow in sequence, the intersecting rays resolve a small coordinate cross, and the bearings release for the next observation. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "signal"
      ],
      "meta": {
        "loader": "azimuth",
        "component": "LoaderAzimuth",
        "category": "signal",
        "technique": "lines",
        "order": 21,
        "title": "Azimuth",
        "tags": [
          "navigation",
          "survey",
          "bearings",
          "triangulation",
          "map",
          "3d"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Bearings",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/signal/azimuth.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/azimuth.tsx"
        }
      ]
    },
    {
      "name": "loader-apsis",
      "type": "registry:component",
      "title": "Apsis loader",
      "description": "A small faceted satellite accelerates around an elliptical orbit and slows at its far apsis. Three equal-time swept sectors reveal equal areas around the focus, while a companion circles the moving body in an inclined plane. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "signal"
      ],
      "meta": {
        "loader": "apsis",
        "component": "LoaderApsis",
        "category": "signal",
        "technique": "lines",
        "order": 22,
        "title": "Apsis",
        "tags": [
          "orbit",
          "ellipse",
          "kepler",
          "equal area",
          "astronomy",
          "satellite"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Swept area",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/signal/apsis.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/apsis.tsx"
        }
      ]
    },
    {
      "name": "loader-nodal",
      "type": "registry:component",
      "title": "Nodal loader",
      "description": "A circular membrane exchanges two standing-wave modes inside a fixed drum rim. Opposing lobes rise and fall around quiet nodal diameters, the wire skin follows the deformation, and a small rim exciter marks the exchange of energy. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "signal"
      ],
      "meta": {
        "loader": "nodal",
        "component": "LoaderNodal",
        "category": "signal",
        "technique": "mixed",
        "order": 23,
        "title": "Nodal",
        "tags": [
          "membrane",
          "standing wave",
          "resonance",
          "drum",
          "nodes",
          "modes"
        ],
        "beats": 5.5,
        "colors": [
          {
            "part": "Rising lobes",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/signal/nodal.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/nodal.tsx"
        }
      ]
    },
    {
      "name": "loader-analyzer",
      "type": "registry:component",
      "title": "Analyzer loader",
      "description": "A polarized wave crosses a fixed grid and a turning analyzer. Its transmitted oscillation follows the projection onto the moving axis, extinguishing at crossed alignment; the receiving screen brightens with the squared projection before the axes align again. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "signal"
      ],
      "meta": {
        "loader": "analyzer",
        "component": "LoaderAnalyzer",
        "category": "signal",
        "technique": "lines",
        "order": 24,
        "title": "Analyzer",
        "tags": [
          "polarization",
          "light",
          "analyzer",
          "malus",
          "filter",
          "wave"
        ],
        "beats": 5.5,
        "colors": [
          {
            "part": "Output",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/signal/analyzer.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/analyzer.tsx"
        }
      ]
    },
    {
      "name": "loader-descent",
      "type": "registry:component",
      "title": "Descent loader",
      "description": "A measured descent follows the gradient of an asymmetric loss basin. Each iterate leaves a checkpoint, a tangent frame tilts to the local slope, and the next step shortens toward the minimum; the path retraces its evaluations to begin again. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "signal"
      ],
      "meta": {
        "loader": "descent",
        "component": "LoaderDescent",
        "category": "signal",
        "technique": "lines",
        "order": 31,
        "title": "Descent",
        "tags": [
          "optimization",
          "gradient",
          "loss",
          "training",
          "landscape",
          "iteration"
        ],
        "beats": 5.8,
        "colors": [
          {
            "part": "Path",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/signal/descent.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/descent.tsx"
        }
      ]
    },
    {
      "name": "loader-quantile",
      "type": "registry:component",
      "title": "Quantile loader",
      "description": "A cumulative distribution is integrated from unequal sample intervals. Three probability readers travel to the curve and drop their value fences; four unequal-width strips then seat below it, each enclosing the same data mass, before the readers retrace. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "signal"
      ],
      "meta": {
        "loader": "quantile",
        "component": "LoaderQuantile",
        "category": "signal",
        "technique": "lines",
        "order": 32,
        "title": "Quantile",
        "tags": [
          "distribution",
          "quantiles",
          "dataset",
          "cdf",
          "statistics",
          "thresholds"
        ],
        "beats": 5.8,
        "colors": [
          {
            "part": "Curve",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/signal/quantile.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/quantile.tsx"
        }
      ]
    },
    {
      "name": "loader-leader",
      "type": "registry:component",
      "title": "Leader loader",
      "description": "A stepped discharge tests several paths between two electrodes. A rising streamer meets the descending leader, a restrained return stroke runs back up the connected channel, and the unsuccessful side branches drain away before the gap clears. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "signal"
      ],
      "meta": {
        "loader": "leader",
        "component": "LoaderLeader",
        "category": "signal",
        "technique": "lines",
        "order": 40,
        "title": "Leader",
        "tags": [
          "discharge",
          "lightning",
          "stepped leader",
          "return stroke",
          "electricity",
          "branches"
        ],
        "beats": 5.7,
        "colors": [
          {
            "part": "Return stroke",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/signal/leader.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/leader.tsx"
        }
      ]
    },
    {
      "name": "loader-overturn",
      "type": "registry:component",
      "title": "Overturn loader",
      "description": "Two counterrotating convection cells lift a central plume from a heated bed. Layered streamlines fan out beneath the upper boundary and descend along the outer walls; short travelling strokes show the circulation while one accent front rises through the shared updraft. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "signal"
      ],
      "meta": {
        "loader": "overturn",
        "component": "LoaderOverturn",
        "category": "signal",
        "technique": "lines",
        "order": 41,
        "title": "Overturn",
        "tags": [
          "convection",
          "rolls",
          "fluid",
          "circulation",
          "thermal",
          "plume",
          "flow"
        ],
        "beats": 5.4,
        "colors": [
          {
            "part": "Tracers",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/signal/overturn.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/overturn.tsx"
        }
      ]
    },
    {
      "name": "loader-barcode",
      "type": "registry:component",
      "title": "Barcode loader",
      "description": "A filtered complex connects its perimeter, adds radial edges, and fills its triangular faces. Every enclosed cycle writes its computed lifetime to a barcode below; long and short holes close at different stages, then the filtration unwrites back to isolated sites. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "signal"
      ],
      "meta": {
        "loader": "barcode",
        "component": "LoaderBarcode",
        "category": "signal",
        "technique": "lines",
        "order": 64,
        "title": "Barcode",
        "tags": [
          "topology",
          "persistence",
          "filtration",
          "cycles",
          "dataset",
          "analysis"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Lifetimes",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/signal/barcode.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/barcode.tsx"
        }
      ]
    },
    {
      "name": "loader-blossom",
      "type": "registry:component",
      "title": "Blossom loader",
      "description": "Three successive interpolation levels evaluate a spatial cubic curve. Sliding construction bars converge on its writing point, a tangent follows the generated stroke, and the evaluation retraces to release the curve without a reset. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "signal"
      ],
      "meta": {
        "loader": "blossom",
        "component": "LoaderBlossom",
        "category": "signal",
        "technique": "lines",
        "order": 80,
        "title": "Blossom",
        "tags": [
          "bezier",
          "interpolation",
          "curve",
          "generation",
          "control",
          "construction"
        ],
        "beats": 5.5,
        "colors": [
          {
            "part": "Stroke",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/signal/blossom.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/signal/blossom.tsx"
        }
      ]
    },
    {
      "name": "loader-mullion",
      "type": "registry:component",
      "title": "Mullion loader",
      "description": "An app narrows from a wide workspace to a pocket-sized frame. Its sidebar folds into a navigation rail, a two-column card row stacks beneath the header, and every block finds its new margin before the wide layout opens again. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "software"
      ],
      "meta": {
        "loader": "mullion",
        "component": "LoaderMullion",
        "category": "software",
        "technique": "planes",
        "order": 1,
        "title": "Mullion",
        "tags": [
          "responsive",
          "breakpoint",
          "app",
          "window",
          "layout",
          "reflow"
        ],
        "beats": 5.5,
        "colors": [
          {
            "part": "Cards",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/software/mullion.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/software/mullion.tsx"
        },
        {
          "path": "src/components/youj/loaders/software/workspace.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/software/workspace.ts"
        }
      ]
    },
    {
      "name": "loader-tangent",
      "type": "registry:component",
      "title": "Tangent loader",
      "description": "A vector editor pulls a tangent handle and bends an S-shaped path between two fixed anchors. The paired handle mirrors the edit, the curve settles into a deeper inflection, and the pointer returns the handles to their original positions. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "software"
      ],
      "meta": {
        "loader": "tangent",
        "component": "LoaderTangent",
        "category": "software",
        "technique": "lines",
        "order": 2,
        "title": "Tangent",
        "tags": [
          "vector",
          "bezier",
          "handles",
          "path",
          "curve",
          "design",
          "pen"
        ],
        "beats": 5.5,
        "colors": [
          {
            "part": "Mirror",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/software/tangent.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/software/tangent.tsx"
        },
        {
          "path": "src/components/youj/loaders/software/workspace.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/software/workspace.ts"
        }
      ]
    },
    {
      "name": "loader-scion",
      "type": "registry:component",
      "title": "Scion loader",
      "description": "A source component lifts from its card and changes its proportions. Two linked instances receive the edit in succession, their inner controls widening to match; the inheritance links release and all three cards return to their original design. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "software"
      ],
      "meta": {
        "loader": "scion",
        "component": "LoaderScion",
        "category": "software",
        "technique": "planes",
        "order": 3,
        "title": "Scion",
        "tags": [
          "component",
          "instances",
          "inheritance",
          "design",
          "update",
          "linked"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Inheritance",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/software/scion.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/software/scion.tsx"
        },
        {
          "path": "src/components/youj/loaders/software/workspace.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/software/workspace.ts"
        }
      ]
    },
    {
      "name": "loader-quire",
      "type": "registry:component",
      "title": "Quire loader",
      "description": "A compact query strip dispatches into a waiting table. Result rows slide into their ruled slots and reveal unequal values column by column, an accent write bracket follows the returning batch, and the rows drain before the next query. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "software"
      ],
      "meta": {
        "loader": "quire",
        "component": "LoaderQuire",
        "category": "software",
        "technique": "lines",
        "order": 4,
        "title": "Quire",
        "tags": [
          "query",
          "table",
          "database",
          "results",
          "records",
          "rows"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Results",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/software/quire.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/software/quire.tsx"
        },
        {
          "path": "src/components/youj/loaders/software/workspace.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/software/workspace.ts"
        }
      ]
    },
    {
      "name": "loader-graft",
      "type": "registry:component",
      "title": "Graft loader",
      "description": "Two code panes hold the old and proposed versions of a small function. Removed lines contract, two added lines cross the gutter and seat between unchanged context, and the applied version separates back into its review panes. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "software"
      ],
      "meta": {
        "loader": "graft",
        "component": "LoaderGraft",
        "category": "software",
        "technique": "planes",
        "order": 5,
        "title": "Graft",
        "tags": [
          "diff",
          "patch",
          "code",
          "editor",
          "merge",
          "changes"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Added",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/software/graft.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/software/graft.tsx"
        },
        {
          "path": "src/components/youj/loaders/software/workspace.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/software/workspace.ts"
        }
      ]
    },
    {
      "name": "loader-verdict",
      "type": "registry:component",
      "title": "Verdict loader",
      "description": "A test suite works through a stack of assertions. Each active row grows its result rule and resolves into an ink check, the suite counter fills one segment per passing test, and one accent confirmation appears only after the last assertion completes. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "software"
      ],
      "meta": {
        "loader": "verdict",
        "component": "LoaderVerdict",
        "category": "software",
        "technique": "lines",
        "order": 6,
        "title": "Verdict",
        "tags": [
          "tests",
          "suite",
          "assertions",
          "checks",
          "code",
          "success"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Passed",
            "mono": "ink",
            "role": "success"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/software/verdict.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/software/verdict.tsx"
        },
        {
          "path": "src/components/youj/loaders/software/workspace.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/software/workspace.ts"
        }
      ]
    },
    {
      "name": "loader-chorus",
      "type": "registry:component",
      "title": "Chorus loader",
      "description": "Collaborators take three scattered cards and bring them onto one shared baseline. Their pointers follow each card independently, an alignment guide closes across the canvas, and a pinned comment appears above the agreed arrangement before the collaborators release it. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "software"
      ],
      "meta": {
        "loader": "chorus",
        "component": "LoaderChorus",
        "category": "software",
        "technique": "planes",
        "order": 7,
        "title": "Chorus",
        "tags": [
          "collaboration",
          "multiplayer",
          "cursors",
          "canvas",
          "comment",
          "alignment"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Collaborators",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/software/chorus.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/software/chorus.tsx"
        },
        {
          "path": "src/components/youj/loaders/software/workspace.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/software/workspace.ts"
        }
      ]
    },
    {
      "name": "loader-casement",
      "type": "registry:component",
      "title": "Casement loader",
      "description": "A second browser tab opens beside the first. The active underline travels across the tab strip, an article gives way to a compact list, and closing the new tab hands the window back to its original page. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "software"
      ],
      "meta": {
        "loader": "casement",
        "component": "LoaderCasement",
        "category": "software",
        "technique": "planes",
        "order": 8,
        "title": "Casement",
        "tags": [
          "browser",
          "tabs",
          "window",
          "page",
          "navigation",
          "handoff"
        ],
        "beats": 5.5,
        "colors": [
          {
            "part": "New tab",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/software/casement.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/software/casement.tsx"
        },
        {
          "path": "src/components/youj/loaders/software/workspace.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/software/workspace.ts"
        }
      ]
    },
    {
      "name": "loader-cadence",
      "type": "registry:component",
      "title": "Cadence loader",
      "description": "Auto-layout gathers three unequal controls onto a common centreline. Their gaps become equal, the parent widens and redistributes the spare space, and paired spacing rulers follow the constraints before the controls return to their loose arrangement. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "software"
      ],
      "meta": {
        "loader": "cadence",
        "component": "LoaderCadence",
        "category": "software",
        "technique": "lines",
        "order": 9,
        "title": "Cadence",
        "tags": [
          "auto-layout",
          "spacing",
          "design",
          "distribution",
          "padding",
          "constraints"
        ],
        "beats": 5.5,
        "colors": [
          {
            "part": "Rulers",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/software/cadence.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/software/cadence.tsx"
        },
        {
          "path": "src/components/youj/loaders/software/workspace.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/software/workspace.ts"
        }
      ]
    },
    {
      "name": "loader-ledger",
      "type": "registry:component",
      "title": "Ledger loader",
      "description": "An edited spreadsheet input invalidates its dependent cells. Two source values contribute to a subtotal, that subtotal recomputes a final result, and an active cell outline follows the calculation through the grid before the edit unwinds. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "software"
      ],
      "meta": {
        "loader": "ledger",
        "component": "LoaderLedger",
        "category": "software",
        "technique": "lines",
        "order": 10,
        "title": "Ledger",
        "tags": [
          "spreadsheet",
          "formula",
          "recalculate",
          "cells",
          "dependencies",
          "sum"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Recalculation",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/software/ledger.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/software/ledger.tsx"
        },
        {
          "path": "src/components/youj/loaders/software/workspace.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/software/workspace.ts"
        }
      ]
    },
    {
      "name": "loader-winnow",
      "type": "registry:component",
      "title": "Winnow loader",
      "description": "A filter criterion locks into a list toolbar. Nonmatching records slide out, matching rows close the gaps without changing their order, and the result count settles before clearing the criterion restores the complete list. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "software"
      ],
      "meta": {
        "loader": "winnow",
        "component": "LoaderWinnow",
        "category": "software",
        "technique": "planes",
        "order": 11,
        "title": "Winnow",
        "tags": [
          "filter",
          "list",
          "results",
          "criteria",
          "narrow",
          "records"
        ],
        "beats": 5.5,
        "colors": [
          {
            "part": "Matches",
            "mono": "ink",
            "role": "success"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/software/winnow.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/software/winnow.tsx"
        },
        {
          "path": "src/components/youj/loaders/software/workspace.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/software/workspace.ts"
        }
      ]
    },
    {
      "name": "loader-offshoot",
      "type": "registry:component",
      "title": "Offshoot loader",
      "description": "A feature branch leaves the main commit rail and acquires two commits while main advances independently. The branch curves back into one merge commit, the joined history continues, and the new work retraces to its branching point. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "software"
      ],
      "meta": {
        "loader": "offshoot",
        "component": "LoaderOffshoot",
        "category": "software",
        "technique": "paths",
        "order": 12,
        "title": "Offshoot",
        "tags": [
          "commit",
          "branch",
          "merge",
          "version-control",
          "history",
          "code"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Branch",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/software/offshoot.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/software/offshoot.tsx"
        },
        {
          "path": "src/components/youj/loaders/software/workspace.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/software/workspace.ts"
        }
      ]
    },
    {
      "name": "loader-outpost",
      "type": "registry:component",
      "title": "Outpost loader",
      "description": "A release reaches three regional service racks in succession. Each rack provisions a standby above its live service, transfers traffic as the replacement seats, and retires the old slot while the other regions keep serving; the rollout then returns to its original version. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "software"
      ],
      "meta": {
        "loader": "outpost",
        "component": "LoaderOutpost",
        "category": "software",
        "technique": "planes",
        "order": 13,
        "title": "Outpost",
        "tags": [
          "deploy",
          "regions",
          "rollout",
          "services",
          "release",
          "replacement"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Release",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/software/outpost.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/software/outpost.tsx"
        },
        {
          "path": "src/components/youj/loaders/software/workspace.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/software/workspace.ts"
        }
      ]
    },
    {
      "name": "loader-amanuensis",
      "type": "registry:component",
      "title": "Amanuensis loader",
      "description": "A small assistant message feeds a document. Unequal word strokes arrive in reading order behind a moving caret, the caret wraps at the margin, and a completion mark settles beneath the response before the text retracts along the same lines. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "software"
      ],
      "meta": {
        "loader": "amanuensis",
        "component": "LoaderAmanuensis",
        "category": "software",
        "technique": "lines",
        "order": 14,
        "title": "Amanuensis",
        "tags": [
          "assistant",
          "ai",
          "response",
          "document",
          "streaming",
          "writing"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Words",
            "mono": "ink"
          },
          {
            "part": "Done",
            "mono": "ink",
            "role": "success"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/software/amanuensis.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/software/amanuensis.tsx"
        },
        {
          "path": "src/components/youj/loaders/software/workspace.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/software/workspace.ts"
        }
      ]
    },
    {
      "name": "loader-valance",
      "type": "registry:component",
      "title": "Valance loader",
      "description": "An app opens a side sheet over its workspace. The page recedes, the sheet seats against the window edge and reveals its controls in order; a confirmation closes the action before the sheet withdraws and restores the page. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "software"
      ],
      "meta": {
        "loader": "valance",
        "component": "LoaderValance",
        "category": "software",
        "technique": "planes",
        "order": 15,
        "title": "Valance",
        "tags": [
          "app",
          "sheet",
          "panel",
          "overlay",
          "settings",
          "confirm"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Sheet",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/software/valance.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/software/valance.tsx"
        },
        {
          "path": "src/components/youj/loaders/software/workspace.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/software/workspace.ts"
        }
      ]
    },
    {
      "name": "loader-pipette",
      "type": "registry:component",
      "title": "Pipette loader",
      "description": "An eyedropper samples a small colour source on a design canvas. The picked colour seats in the palette, transfers to the selected shape and leaves a short selection edge; the tool releases the sample and restores the original fill. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "software"
      ],
      "meta": {
        "loader": "pipette",
        "component": "LoaderPipette",
        "category": "software",
        "technique": "planes",
        "order": 16,
        "title": "Pipette",
        "tags": [
          "design",
          "colour",
          "eyedropper",
          "swatch",
          "palette",
          "canvas"
        ],
        "beats": 5.5,
        "colors": [
          {
            "part": "First swatch",
            "mono": "ink"
          },
          {
            "part": "Third swatch",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/software/pipette.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/software/pipette.tsx"
        },
        {
          "path": "src/components/youj/loaders/software/workspace.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/software/workspace.ts"
        }
      ]
    },
    {
      "name": "loader-portico",
      "type": "registry:component",
      "title": "Portico loader",
      "description": "A dashboard resolves its two metric cards before plotting the detailed chart below. Unequal columns grow from a common baseline, the latest sample takes the accent and a header receipt closes only after all cards are ready; the cards clear for the next refresh. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "software"
      ],
      "meta": {
        "loader": "portico",
        "component": "LoaderPortico",
        "category": "software",
        "technique": "lines",
        "order": 17,
        "title": "Portico",
        "tags": [
          "dashboard",
          "cards",
          "metrics",
          "chart",
          "analytics",
          "refresh"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Series",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/software/portico.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/software/portico.tsx"
        },
        {
          "path": "src/components/youj/loaders/software/workspace.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/software/workspace.ts"
        }
      ]
    },
    {
      "name": "loader-raccord",
      "type": "registry:component",
      "title": "Raccord loader",
      "description": "Two record stores exchange three edits in both directions. A changed source value travels through the shared gap before its corresponding destination updates; acknowledgements close the row brackets and the paired stores agree before their edits release. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "software"
      ],
      "meta": {
        "loader": "raccord",
        "component": "LoaderRaccord",
        "category": "software",
        "technique": "lines",
        "order": 18,
        "title": "Raccord",
        "tags": [
          "sync",
          "records",
          "stores",
          "replication",
          "bidirectional",
          "data"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Record",
            "mono": "ink"
          },
          {
            "part": "Acknowledged",
            "mono": "ink",
            "role": "success"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/software/raccord.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/software/raccord.tsx"
        },
        {
          "path": "src/components/youj/loaders/software/workspace.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/software/workspace.ts"
        }
      ]
    },
    {
      "name": "loader-elide",
      "type": "registry:component",
      "title": "Elide loader",
      "description": "An editor folds a nested block from its gutter. Indented code rules gather behind a compact fold marker, the closing bracket and following lines move up to recover the space, and reopening restores every line to its original indentation. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "software"
      ],
      "meta": {
        "loader": "elide",
        "component": "LoaderElide",
        "category": "software",
        "technique": "lines",
        "order": 19,
        "title": "Elide",
        "tags": [
          "code",
          "editor",
          "fold",
          "indent",
          "gutter",
          "collapse"
        ],
        "beats": 5.5,
        "colors": [
          {
            "part": "Fold",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/software/elide.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/software/elide.tsx"
        },
        {
          "path": "src/components/youj/loaders/software/workspace.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/software/workspace.ts"
        }
      ]
    },
    {
      "name": "loader-attest",
      "type": "registry:component",
      "title": "Attest loader",
      "description": "A source document supplies the values of an empty form. A read bracket selects each source line, a transfer stroke carries it into its field and the value fills behind the write edge; a single confirmation seals the completed form before the values clear. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "software"
      ],
      "meta": {
        "loader": "attest",
        "component": "LoaderAttest",
        "category": "software",
        "technique": "lines",
        "order": 20,
        "title": "Attest",
        "tags": [
          "form",
          "autofill",
          "document",
          "extract",
          "assistant",
          "fields"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Transfer",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/software/attest.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/software/attest.tsx"
        },
        {
          "path": "src/components/youj/loaders/software/workspace.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/software/workspace.ts"
        }
      ]
    },
    {
      "name": "loader-satchel",
      "type": "registry:component",
      "title": "Satchel loader",
      "description": "Three folded-corner files rise into an open folder one at a time. Each file writes its upload rule while approaching the mouth, seats behind the front cover and adds a receipt to the folder edge; the completed batch fans back out along its original paths. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "software"
      ],
      "meta": {
        "loader": "satchel",
        "component": "LoaderSatchel",
        "category": "software",
        "technique": "planes",
        "order": 21,
        "title": "Satchel",
        "tags": [
          "upload",
          "files",
          "folder",
          "transfer",
          "documents",
          "batch"
        ],
        "beats": 6,
        "colors": [
          {
            "part": "Files",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/software/satchel.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/software/satchel.tsx"
        },
        {
          "path": "src/components/youj/loaders/software/workspace.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/software/workspace.ts"
        }
      ]
    },
    {
      "name": "loader-fulgur",
      "type": "registry:component",
      "title": "Fulgur loader",
      "description": "An electromagnetic pulse leaves a small emitter post. Its expanding front strains a wire grid clamped in a lit frame, lifting a narrow annular ridge; a weaker afterfront follows, and the next pulse leaves as the last one reaches the frame. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "waves"
      ],
      "meta": {
        "loader": "fulgur",
        "component": "LoaderFulgur",
        "category": "waves",
        "technique": "lines",
        "order": 1,
        "title": "Fulgur",
        "tags": [
          "pulse",
          "emp",
          "shockwave",
          "grid",
          "distortion",
          "propagation",
          "3d"
        ],
        "beats": 5,
        "colors": [
          {
            "part": "Echoes",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/waves/fulgur.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/waves/fulgur.tsx"
        },
        {
          "path": "src/components/youj/loaders/waves/propagation.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/waves/propagation.ts"
        }
      ]
    },
    {
      "name": "loader-tensor",
      "type": "registry:component",
      "title": "Tensor loader",
      "description": "Two equal masses orbit in their own wells in a spacetime mesh. A quadrupolar ripple stretches one direction as it contracts the other, radiating outward twice per orbit, and an L-shaped detector at the mesh’s corner trades its arm lengths as each ripple passes. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "waves"
      ],
      "meta": {
        "loader": "tensor",
        "component": "LoaderTensor",
        "category": "waves",
        "technique": "lines",
        "order": 2,
        "title": "Tensor",
        "tags": [
          "gravity",
          "binary",
          "quadrupole",
          "spacetime",
          "mesh",
          "strain",
          "3d"
        ],
        "beats": 5.5,
        "colors": [
          {
            "part": "Second mass",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/waves/tensor.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/waves/tensor.tsx"
        },
        {
          "path": "src/components/youj/loaders/waves/propagation.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/waves/propagation.ts"
        }
      ]
    },
    {
      "name": "loader-duplex",
      "type": "registry:component",
      "title": "Duplex loader",
      "description": "Two fixed exciters send coherent ripples across a lit square surface. Their heights add into moving crests and quiet corridors; a sparse wire skin reveals the cancellation while two small emitter rims breathe out of phase. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "waves"
      ],
      "meta": {
        "loader": "duplex",
        "component": "LoaderDuplex",
        "category": "waves",
        "technique": "planes",
        "order": 3,
        "title": "Duplex",
        "tags": [
          "interference",
          "surface",
          "ripple",
          "coherent",
          "water",
          "superposition",
          "3d"
        ],
        "beats": 5,
        "colors": [
          {
            "part": "Second exciter",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/waves/duplex.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/waves/duplex.tsx"
        },
        {
          "path": "src/components/youj/loaders/waves/propagation.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/waves/propagation.ts"
        }
      ]
    },
    {
      "name": "loader-chirp",
      "type": "registry:component",
      "title": "Chirp loader",
      "description": "A sonar head sends a chirped front across its beam toward three solid reflectors, each casting a shadow in it. Each face answers only after the ping reaches it; narrow echo trains travel back at different times and light the head’s receiver as they arrive. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "waves"
      ],
      "meta": {
        "loader": "chirp",
        "component": "LoaderChirp",
        "category": "waves",
        "technique": "lines",
        "order": 4,
        "title": "Chirp",
        "tags": [
          "sonar",
          "echo",
          "ping",
          "reflector",
          "time-of-flight",
          "pulse",
          "3d"
        ],
        "beats": 5.5,
        "colors": [
          {
            "part": "Ping",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/waves/chirp.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/waves/chirp.tsx"
        },
        {
          "path": "src/components/youj/loaders/waves/propagation.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/waves/propagation.ts"
        }
      ]
    },
    {
      "name": "loader-overtone",
      "type": "registry:component",
      "title": "Overtone loader",
      "description": "Opposing travelling waves combine on a string drawn over two saddle bridges to anchor pins on a lit bed. Three antinodes exchange displacement while two interior nodes stay pinned; faint envelopes and a small exciter riding an antinode expose the standing mode. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "waves"
      ],
      "meta": {
        "loader": "overtone",
        "component": "LoaderOvertone",
        "category": "waves",
        "technique": "lines",
        "order": 5,
        "title": "Overtone",
        "tags": [
          "string",
          "standing-wave",
          "nodes",
          "reflection",
          "resonance",
          "3d"
        ],
        "beats": 4.5,
        "colors": [
          {
            "part": "Incoming wave",
            "mono": "ink"
          },
          {
            "part": "Reflected wave",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/waves/overtone.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/waves/overtone.tsx"
        },
        {
          "path": "src/components/youj/loaders/waves/propagation.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/waves/propagation.ts"
        }
      ]
    },
    {
      "name": "loader-fletch",
      "type": "registry:component",
      "title": "Fletch loader",
      "description": "A finned dart outruns the spherical fronts it emits. Each front drifts back and swells, its ring of contact sliding along the trailing Mach cone; bright tangent rails reveal the common envelope while the ground scale streams past beneath. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "waves"
      ],
      "meta": {
        "loader": "fletch",
        "component": "LoaderFletch",
        "category": "waves",
        "technique": "lines",
        "order": 6,
        "title": "Fletch",
        "tags": [
          "mach",
          "shock-cone",
          "supersonic",
          "wavefront",
          "envelope",
          "3d"
        ],
        "beats": 5,
        "colors": [
          {
            "part": "Contact rings",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/waves/fletch.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/waves/fletch.tsx"
        },
        {
          "path": "src/components/youj/loaders/waves/propagation.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/waves/propagation.ts"
        }
      ]
    },
    {
      "name": "loader-sounding",
      "type": "registry:component",
      "title": "Sounding loader",
      "description": "A hammer strikes an anvil post at the head of two cut ribbons of layered ground. A fast longitudinal packet bunches the upper ribbon’s rulings; the slower transverse packet heaves the lower ribbon, its lit surface tilting as it passes, and both settle as the hammer rises for the next blow. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "waves"
      ],
      "meta": {
        "loader": "sounding",
        "component": "LoaderSounding",
        "category": "waves",
        "technique": "lines",
        "order": 7,
        "title": "Sounding",
        "tags": [
          "seismic",
          "compression",
          "shear",
          "p-wave",
          "s-wave",
          "strata",
          "3d"
        ],
        "beats": 5.5,
        "colors": [
          {
            "part": "Moving ground",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/waves/sounding.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/waves/sounding.tsx"
        },
        {
          "path": "src/components/youj/loaders/waves/propagation.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/waves/propagation.ts"
        }
      ]
    },
    {
      "name": "loader-evanesce",
      "type": "registry:component",
      "title": "Evanesce loader",
      "description": "A guided wave leaves a rapidly decaying field above its lower rail. A receiving guide, carried on two posts, eases into that field and acquires a stronger travelling trace; as the gap opens, the upper wave weakens while the source keeps propagating. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "waves"
      ],
      "meta": {
        "loader": "evanesce",
        "component": "LoaderEvanesce",
        "category": "waves",
        "technique": "lines",
        "order": 8,
        "title": "Evanesce",
        "tags": [
          "near-field",
          "evanescent",
          "coupling",
          "waveguide",
          "decay",
          "3d"
        ],
        "beats": 5.5,
        "colors": [
          {
            "part": "Field",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/waves/evanesce.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/waves/evanesce.tsx"
        },
        {
          "path": "src/components/youj/loaders/waves/propagation.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/waves/propagation.ts"
        }
      ]
    },
    {
      "name": "loader-bragg",
      "type": "registry:component",
      "title": "Bragg loader",
      "description": "Three ruled crystal planes on a mount breathe apart under a collimated beam. Travelling fronts reflect at successive depths toward a detector; the outgoing strokes strengthen and its window lights when the interplane spacing restores their phase agreement, then soften as the crystal detunes. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "waves"
      ],
      "meta": {
        "loader": "bragg",
        "component": "LoaderBragg",
        "category": "waves",
        "technique": "lines",
        "order": 9,
        "title": "Bragg",
        "tags": [
          "crystal",
          "diffraction",
          "coherence",
          "lattice-plane",
          "reflection",
          "3d"
        ],
        "beats": 5,
        "colors": [
          {
            "part": "Reflection",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/waves/bragg.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/waves/bragg.tsx"
        },
        {
          "path": "src/components/youj/loaders/waves/propagation.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/waves/propagation.ts"
        }
      ]
    },
    {
      "name": "loader-whisper",
      "type": "registry:component",
      "title": "Whisper loader",
      "description": "A cutaway annular resonator confines a circulating three-lobed wave. Its lid and outer wall are cut back over the foreground, their hatched sections exposed, so the trace rises and falls along the open channel while short pressure bars on its floor answer the crests. One of the Youj loaders: a polite status with one API (size, color, speed, label, paused), drawn on a shared ticker only while it’s on screen; reduced motion holds a still frame.",
      "categories": [
        "loaders",
        "waves"
      ],
      "meta": {
        "loader": "whisper",
        "component": "LoaderWhisper",
        "category": "waves",
        "technique": "mixed",
        "order": 10,
        "title": "Whisper",
        "tags": [
          "resonator",
          "whispering-gallery",
          "annulus",
          "guided-wave",
          "cutaway",
          "3d"
        ],
        "beats": 5.5,
        "colors": [
          {
            "part": "Pressure",
            "mono": "ink"
          }
        ]
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/loader-kit.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/waves/whisper.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/waves/whisper.tsx"
        },
        {
          "path": "src/components/youj/loaders/waves/propagation.ts",
          "type": "registry:component",
          "target": "components/youj/loaders/waves/propagation.ts"
        }
      ]
    },
    {
      "name": "loader-kit",
      "type": "registry:component",
      "title": "Loader kit",
      "description": "What every Youj loader (beta) draws with: LoaderRoot (a polite status with one API: size, color and accentColor (and colors, for a multicolored loader's parts), speed, label (one or several, taking turns), labelEvery, showLabel, labelPosition, labelEffect, paused), the shown label’s effects (pulse, wave, type, scramble, slide), the engine (a perspective camera, flat lighting, a depth-sorted buffer of particles, dots, hairlines, dashed paths and solid planes, and one shared ticker that runs only while a loader is on screen), the youj letterforms, and the categories. Each loader-<id> item installs one loader on top of it.",
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-spinner.json"
      ],
      "files": [
        {
          "path": "src/components/youj/loaders/kit.tsx",
          "type": "registry:component",
          "target": "components/youj/loaders/kit.tsx"
        },
        {
          "path": "src/components/youj/loaders/label.ts",
          "type": "registry:lib",
          "target": "components/youj/loaders/label.ts"
        },
        {
          "path": "src/components/youj/loaders/field.ts",
          "type": "registry:lib",
          "target": "components/youj/loaders/field.ts"
        },
        {
          "path": "src/components/youj/loaders/glyphs.ts",
          "type": "registry:lib",
          "target": "components/youj/loaders/glyphs.ts"
        },
        {
          "path": "src/components/youj/loaders/categories.ts",
          "type": "registry:lib",
          "target": "components/youj/loaders/categories.ts"
        }
      ]
    },
    {
      "name": "youj-gl",
      "type": "registry:lib",
      "title": "Youj GL",
      "description": "Shared plumbing for canvas and WebGL2 backgrounds. It covers compiling with readable errors, a full-screen triangle, a DPR-capped resize observer, a rAF loop on speed / timeScale, pausing offscreen and in hidden tabs, context loss and restore, a single coalesced frame under reduced motion, token colors read from computed CSS and re-read on theme change, pointer tracking, and a CSS gradient fallback.",
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/components/youj/backgrounds/gl.ts",
          "type": "registry:lib",
          "target": "components/youj/backgrounds/gl.ts"
        },
        {
          "path": "src/components/youj/backgrounds/render-loop.ts",
          "type": "registry:lib",
          "target": "components/youj/backgrounds/render-loop.ts"
        },
        {
          "path": "src/components/youj/backgrounds/webgl.ts",
          "type": "registry:lib",
          "target": "components/youj/backgrounds/webgl.ts"
        },
        {
          "path": "src/components/youj/backgrounds/resolve-colors.ts",
          "type": "registry:lib",
          "target": "components/youj/backgrounds/resolve-colors.ts"
        },
        {
          "path": "src/components/youj/backgrounds/use-background-canvas.ts",
          "type": "registry:lib",
          "target": "components/youj/backgrounds/use-background-canvas.ts"
        },
        {
          "path": "src/components/youj/backgrounds/color.ts",
          "type": "registry:lib",
          "target": "components/youj/backgrounds/color.ts"
        },
        {
          "path": "src/components/youj/backgrounds/common.glsl.ts",
          "type": "registry:lib",
          "target": "components/youj/backgrounds/common.glsl.ts"
        }
      ]
    },
    {
      "name": "mesh-gradient",
      "type": "registry:component",
      "title": "Mesh Gradient",
      "description": "A slow, luxurious flowing mesh gradient. Four color masses drift through a domain-warped field and blend in OKLab, with film grain and dither against banding. Colors default to an analogous family derived from the accent token. Pointer-reactive.",
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-gl.json"
      ],
      "files": [
        {
          "path": "src/components/youj/backgrounds/mesh-gradient.tsx",
          "type": "registry:component",
          "target": "components/youj/backgrounds/mesh-gradient.tsx"
        },
        {
          "path": "src/components/youj/backgrounds/mesh-gradient.glsl.ts",
          "type": "registry:component",
          "target": "components/youj/backgrounds/mesh-gradient.glsl.ts"
        }
      ]
    },
    {
      "name": "noise-field",
      "type": "registry:component",
      "title": "Noise Field",
      "description": "Domain-warped flow noise read as a topographic survey. It has anti-aliased contour lines with every fifth line emphasised, accent-tinted summits, and a grid of survey marks. The pointer raises a mound that bunches the contours.",
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-gl.json"
      ],
      "files": [
        {
          "path": "src/components/youj/backgrounds/noise-field.tsx",
          "type": "registry:component",
          "target": "components/youj/backgrounds/noise-field.tsx"
        },
        {
          "path": "src/components/youj/backgrounds/noise-field.glsl.ts",
          "type": "registry:component",
          "target": "components/youj/backgrounds/noise-field.glsl.ts"
        }
      ]
    },
    {
      "name": "aurora",
      "type": "registry:component",
      "title": "Aurora",
      "description": "Layered curtains of light for a hero backdrop: bright lower edges, rays hanging upward, and pulses travelling along each ribbon. It adds light on dark canvases and tints on light ones, and keeps the lower frame quiet for content.",
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-gl.json"
      ],
      "files": [
        {
          "path": "src/components/youj/backgrounds/aurora.tsx",
          "type": "registry:component",
          "target": "components/youj/backgrounds/aurora.tsx"
        },
        {
          "path": "src/components/youj/backgrounds/aurora.glsl.ts",
          "type": "registry:component",
          "target": "components/youj/backgrounds/aurora.glsl.ts"
        }
      ]
    },
    {
      "name": "particle-constellation",
      "type": "registry:component",
      "title": "Particle Constellation",
      "description": "Drifting particles linked by hairlines when near each other, with density that adapts to area. The pointer attracts particles (or repels them) and lights nearby links in the accent. It is drawn in Canvas 2D with a spatial grid and batched strokes, and holds 60fps at 1440p.",
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-gl.json"
      ],
      "files": [
        {
          "path": "src/components/youj/backgrounds/particle-constellation.tsx",
          "type": "registry:component",
          "target": "components/youj/backgrounds/particle-constellation.tsx"
        }
      ]
    },
    {
      "name": "flow-field",
      "type": "registry:component",
      "title": "Flow Field",
      "description": "Streaks drifting on a smooth noise current, each leaving a fading trail. The pointer stirs a vortex in the current and lights the streaks it catches in the accent. Trails are redrawn from a short history, so nothing ghosts, in Canvas 2D with batched strokes.",
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-gl.json"
      ],
      "files": [
        {
          "path": "src/components/youj/backgrounds/flow-field.tsx",
          "type": "registry:component",
          "target": "components/youj/backgrounds/flow-field.tsx"
        }
      ]
    },
    {
      "name": "swarm",
      "type": "registry:component",
      "title": "Swarm",
      "description": "A flock that roams the canvas, then gathers and circles the pointer. Boids steer by separation, alignment and cohesion with a slow wander, with neighbors from a spatial hash. It is drawn in Canvas 2D as darts batched into alpha tiers.",
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-gl.json"
      ],
      "files": [
        {
          "path": "src/components/youj/backgrounds/swarm.tsx",
          "type": "registry:component",
          "target": "components/youj/backgrounds/swarm.tsx"
        }
      ]
    },
    {
      "name": "dot-matrix-wave",
      "type": "registry:component",
      "title": "Dot Matrix Wave",
      "description": "A precise lattice of dots whose size and brightness ripple from the pointer and from clicks. It has a pointer lens, a wake of soft rings, click ripples and occasional ambient pulses. The dots are anti-aliased discs on a device-pixel grid.",
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-gl.json"
      ],
      "files": [
        {
          "path": "src/components/youj/backgrounds/dot-matrix-wave.tsx",
          "type": "registry:component",
          "target": "components/youj/backgrounds/dot-matrix-wave.tsx"
        },
        {
          "path": "src/components/youj/backgrounds/dot-matrix-wave.glsl.ts",
          "type": "registry:component",
          "target": "components/youj/backgrounds/dot-matrix-wave.glsl.ts"
        }
      ]
    },
    {
      "name": "magnetic-field",
      "type": "registry:component",
      "title": "Magnetic Field",
      "description": "A grid of dots that bends away from the pointer and springs back. Each dot follows a target on a damped spring, so the field flows around the cursor and rebounds when it leaves; a press shoves the dots near it, and dots take the accent as they are pushed. It is drawn in Canvas 2D with batched paths.",
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-gl.json"
      ],
      "files": [
        {
          "path": "src/components/youj/backgrounds/magnetic-field.tsx",
          "type": "registry:component",
          "target": "components/youj/backgrounds/magnetic-field.tsx"
        }
      ]
    },
    {
      "name": "ripple-pond",
      "type": "registry:component",
      "title": "Ripple Pond",
      "description": "A calm dot lattice that behaves like a pond. Moving the pointer drops soft ripples, a press drops a strong one, and an idle field lets a drop fall now and then. Each ring is a travelling wave packet: dots rise and brighten on a crest and sink in the trough. It is drawn in Canvas 2D with batched paths.",
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-gl.json"
      ],
      "files": [
        {
          "path": "src/components/youj/backgrounds/ripple-pond.tsx",
          "type": "registry:component",
          "target": "components/youj/backgrounds/ripple-pond.tsx"
        }
      ]
    },
    {
      "name": "warp-grid",
      "type": "registry:component",
      "title": "Warp Grid",
      "description": "A line grid that sags toward the pointer like mass bending space. Lines bunch and curve around the well and stay put far away; the nearest take the accent. With no pointer the well eases to the middle and breathes. It is drawn in Canvas 2D with batched paths.",
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-gl.json"
      ],
      "files": [
        {
          "path": "src/components/youj/backgrounds/warp-grid.tsx",
          "type": "registry:component",
          "target": "components/youj/backgrounds/warp-grid.tsx"
        }
      ]
    },
    {
      "name": "atmosphere",
      "type": "registry:component",
      "title": "Atmosphere",
      "description": "A painted, grainy ground for a card to float on: a panned meadow, lit dunes with a suede grain, a dark ground glowing into English red, or a dusk. Each scene has its own palette for light and dark (from Sanzo Wada's A Dictionary of Color Combinations) and pairs with the theme preset of its name; the middle stays quiet so the card is the hero. One fragment shader at up to 24 fps, a still frame under reduced motion, and a CSS still without WebGL2.",
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-gl.json"
      ],
      "files": [
        {
          "path": "src/components/youj/backgrounds/atmosphere.tsx",
          "type": "registry:component",
          "target": "components/youj/backgrounds/atmosphere.tsx"
        },
        {
          "path": "src/components/youj/backgrounds/atmosphere.glsl.ts",
          "type": "registry:component",
          "target": "components/youj/backgrounds/atmosphere.glsl.ts"
        }
      ]
    },
    {
      "name": "spotlight",
      "type": "registry:component",
      "title": "Spotlight",
      "description": "The pointer-tracked spotlight for any surface: useSpotlight (tracker writing --yj-spot-x / --yj-spot-y), SpotlightSurface (lit layers, no look of its own) and SpotlightGroup (one light shared across surfaces). Keyboard focus glides the light; off for touch and reduced motion.",
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/components/youj/effects/spotlight.tsx",
          "type": "registry:component",
          "target": "components/youj/effects/spotlight.tsx"
        }
      ]
    },
    {
      "name": "shimmer",
      "type": "registry:component",
      "title": "Shimmer",
      "description": "The travelling border light for any element: useShimmer (rootProps + layers) and a look-free Shimmer wrapper. Pure CSS loop on a registered @property, intensifies on hover and focus, pauses offscreen, parks under reduced motion.",
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/components/youj/effects/shimmer.tsx",
          "type": "registry:component",
          "target": "components/youj/effects/shimmer.tsx"
        }
      ]
    },
    {
      "name": "async-feedback",
      "type": "registry:component",
      "title": "Async Feedback",
      "description": "Pending → success / error feedback for async controls: useAsyncAction (guarded state machine), AsyncFeedback (MorphLabel swap to spinner, drawn CheckIcon or cross, decaying error shake, state tints) and AsyncAnnouncer (polite / assertive live regions).",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/morph-label.json",
        "https://www.youj.dev/r/youj-labels-async-feedback.json"
      ],
      "files": [
        {
          "path": "src/components/youj/effects/async-feedback.tsx",
          "type": "registry:component",
          "target": "components/youj/effects/async-feedback.tsx"
        }
      ]
    },
    {
      "name": "blueprint",
      "type": "registry:component",
      "title": "Blueprint",
      "description": "An entrance for real UI: the demo is drafted as an architect's blueprint (paper grid, dotted bounds with dimensions, regions, every part pencilled by kind, build and value columns), then a ruled edge inks it into the real thing. Blueprint (React, plays on mount) and blueprint(node) (the engine, loaded on first play). Reads the DOM once, animates only opacity, clip-path and transform, leaves nothing behind; reduced motion shows the UI.",
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/entrance.json",
        "https://www.youj.dev/r/youj-labels-blueprint.json"
      ],
      "files": [
        {
          "path": "src/components/youj/effects/blueprint/blueprint.tsx",
          "type": "registry:component",
          "target": "components/youj/effects/blueprint/blueprint.tsx"
        },
        {
          "path": "src/components/youj/effects/blueprint/engine.ts",
          "type": "registry:lib",
          "target": "components/youj/effects/blueprint/engine.ts"
        }
      ]
    },
    {
      "name": "generate",
      "type": "registry:component",
      "title": "Generate",
      "description": "An entrance for real UI that builds it in part by part, in its real colours: the frame and its main regions are dragged out with selection outlines, then every part arrives its own way (surfaces drag out, text types in line by line, controls pop, icons draw their strokes, charts and images wipe in). Generate (React, plays on mount) and generate(node) (the engine, loaded on first play). Needs no script; animates only opacity, clip-path and transform; leaves nothing behind; reduced motion shows the UI.",
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/entrance.json"
      ],
      "files": [
        {
          "path": "src/components/youj/effects/generate/generate.tsx",
          "type": "registry:component",
          "target": "components/youj/effects/generate/generate.tsx"
        },
        {
          "path": "src/components/youj/effects/generate/engine.ts",
          "type": "registry:lib",
          "target": "components/youj/effects/generate/engine.ts"
        }
      ]
    },
    {
      "name": "inspector",
      "type": "registry:component",
      "title": "Inspector",
      "description": "An entrance for real UI: each part appears first as the browser's box model (margin, padding and content in soft tints with a crisp edge), in build order, while a hover with a mono size tag and the element's path runs through the tree; then each part hands off to the real one. Inspector (React, plays on mount) and inspector(node) (the look, loaded on first play). Animates only opacity; leaves nothing behind; reduced motion shows the UI.",
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/entrance.json"
      ],
      "files": [
        {
          "path": "src/components/youj/effects/inspector/inspector.tsx",
          "type": "registry:component",
          "target": "components/youj/effects/inspector/inspector.tsx"
        },
        {
          "path": "src/components/youj/effects/inspector/engine.ts",
          "type": "registry:lib",
          "target": "components/youj/effects/inspector/engine.ts"
        }
      ]
    },
    {
      "name": "layers",
      "type": "registry:component",
      "title": "Layers",
      "description": "An entrance for real UI: the demo starts as an exploded isometric stack of its layers (frame, regions, boxes, content), each a thin plane with its depth label, like a view-hierarchy debugger; the camera settles flat as the stack collapses layer by layer into the real UI. Layers (React, plays on mount) and layers(node) (the look, loaded on first play). Transforms and opacity only; leaves nothing behind; reduced motion shows the UI.",
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/entrance.json",
        "https://www.youj.dev/r/youj-labels-layers.json"
      ],
      "files": [
        {
          "path": "src/components/youj/effects/layers/layers.tsx",
          "type": "registry:component",
          "target": "components/youj/effects/layers/layers.tsx"
        },
        {
          "path": "src/components/youj/effects/layers/engine.ts",
          "type": "registry:lib",
          "target": "components/youj/effects/layers/engine.ts"
        }
      ]
    },
    {
      "name": "render-passes",
      "type": "registry:component",
      "title": "Render Passes",
      "description": "An entrance for real UI: the browser pipeline as theatre. Layout outlines every part with its size, paint fills each in flat greys with its text in grey, composite hands each piece to the real part, each pass sweeping through the parts in build order with its name and count. RenderPasses (React, plays on mount) and renderPasses(node) (the look, loaded on first play). Animates only opacity; leaves nothing behind; reduced motion shows the UI.",
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/entrance.json",
        "https://www.youj.dev/r/youj-labels-render-passes.json"
      ],
      "files": [
        {
          "path": "src/components/youj/effects/passes/passes.tsx",
          "type": "registry:component",
          "target": "components/youj/effects/passes/passes.tsx"
        },
        {
          "path": "src/components/youj/effects/passes/engine.ts",
          "type": "registry:lib",
          "target": "components/youj/effects/passes/engine.ts"
        }
      ]
    },
    {
      "name": "prism",
      "type": "registry:component",
      "title": "Prism",
      "description": "An entrance for real UI that locks it in piece by piece out of its color channels: registration marks and the frame lock first, then each piece arrives as three faint copies a few px apart (its own colors split into red, green and blue light on dark themes, cyan, magenta and yellow ink on light ones) that slide together and snap into register as the real piece. PrismEntrance (React, plays on mount) and prism(node) (the engine, loaded on first play). Copies are drawn once and only moved by transform and opacity; leaves nothing behind; reduced motion shows the UI.",
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/entrance.json"
      ],
      "files": [
        {
          "path": "src/components/youj/effects/prism/prism.tsx",
          "type": "registry:component",
          "target": "components/youj/effects/prism/prism.tsx"
        },
        {
          "path": "src/components/youj/effects/prism/engine.ts",
          "type": "registry:lib",
          "target": "components/youj/effects/prism/engine.ts"
        }
      ]
    },
    {
      "name": "trace",
      "type": "registry:component",
      "title": "Trace",
      "description": "An entrance for real UI that lights it up like a circuit: a thin signal comes in beside the frame, runs both ways round its border, then spreads down the layout along edges, gutters and short square connectors into every region and piece, all branches at once; each piece glows on its edge and appears as the signal reaches it. Monochrome or in the theme accent. Trace (React, plays on mount) and trace(node) (the engine, loaded on first play). Heads move by transform, the path is etched on one canvas; leaves nothing behind; reduced motion shows the UI.",
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/entrance.json"
      ],
      "files": [
        {
          "path": "src/components/youj/effects/trace/trace.tsx",
          "type": "registry:component",
          "target": "components/youj/effects/trace/trace.tsx"
        },
        {
          "path": "src/components/youj/effects/trace/engine.ts",
          "type": "registry:lib",
          "target": "components/youj/effects/trace/engine.ts"
        }
      ]
    },
    {
      "name": "entrance",
      "type": "registry:lib",
      "title": "Entrance",
      "description": "The shared runtime of the entrance effects: reads a demo once (its parts, kinds, build order, type and shapes), times a run from its size, duration, speed and stage shares, keeps one clock for canvas marks and Web Animations, and ends cleanly on cancel, focus, press, abort or reduced motion, leaving the demo exactly as it was.",
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/components/youj/effects/entrance/run.ts",
          "type": "registry:lib",
          "target": "components/youj/effects/entrance/run.ts"
        },
        {
          "path": "src/components/youj/effects/entrance/read.ts",
          "type": "registry:lib",
          "target": "components/youj/effects/entrance/read.ts"
        },
        {
          "path": "src/components/youj/effects/entrance/draw.ts",
          "type": "registry:lib",
          "target": "components/youj/effects/entrance/draw.ts"
        },
        {
          "path": "src/components/youj/effects/entrance/facts.ts",
          "type": "registry:lib",
          "target": "components/youj/effects/entrance/facts.ts"
        },
        {
          "path": "src/components/youj/effects/entrance/pieces.ts",
          "type": "registry:lib",
          "target": "components/youj/effects/entrance/pieces.ts"
        },
        {
          "path": "src/components/youj/effects/entrance/host.tsx",
          "type": "registry:component",
          "target": "components/youj/effects/entrance/host.tsx"
        },
        {
          "path": "src/components/youj/effects/entrance/ready.ts",
          "type": "registry:lib",
          "target": "components/youj/effects/entrance/ready.ts"
        }
      ]
    },
    {
      "name": "shimmer-border",
      "type": "registry:component",
      "title": "Shimmer Border",
      "description": "A container or button whose border carries a travelling point of accent light (conic gradient on a registered @property, masked to the border). Intensifies on hover and keyboard focus.",
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/shimmer.json"
      ],
      "files": [
        {
          "path": "src/components/youj/interactions/shimmer-border.tsx",
          "type": "registry:component",
          "target": "components/youj/interactions/shimmer-border.tsx"
        }
      ]
    },
    {
      "name": "spotlight-card",
      "type": "registry:component",
      "title": "Spotlight Card",
      "description": "Pointer-tracked surface spotlight and border glow shared across a grid of cards, so neighbours light at their nearest edges. Keyboard focus gets the same treatment.",
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/spotlight.json"
      ],
      "files": [
        {
          "path": "src/components/youj/interactions/spotlight-card.tsx",
          "type": "registry:component",
          "target": "components/youj/interactions/spotlight-card.tsx"
        }
      ]
    },
    {
      "name": "cursor-follower",
      "type": "registry:component",
      "title": "Cursor Follower",
      "description": "Spring-following cursor layer that morphs over data-cursor targets (button, text, link, media). Off for coarse pointers and reduced motion; never hides the native cursor without a fallback.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/components/youj/interactions/cursor-follower.tsx",
          "type": "registry:component",
          "target": "components/youj/interactions/cursor-follower.tsx"
        }
      ]
    },
    {
      "name": "page-transition",
      "type": "registry:component",
      "title": "Page Transition",
      "description": "Route transition kit: fade-through, direction-aware slide, clip-reveal and curtain wipe variants, plus a SharedElement helper built on Motion layoutId.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/components/youj/interactions/page-transition.tsx",
          "type": "registry:component",
          "target": "components/youj/interactions/page-transition.tsx"
        }
      ]
    },
    {
      "name": "dock",
      "type": "registry:component",
      "title": "Dock",
      "description": "macOS-style magnifying dock, transform-only and spring-smoothed, with tooltips, roving-focus keyboard navigation that magnifies on focus, and a travelling active indicator.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-dock.json"
      ],
      "files": [
        {
          "path": "src/components/youj/interactions/dock.tsx",
          "type": "registry:component",
          "target": "components/youj/interactions/dock.tsx"
        }
      ]
    },
    {
      "name": "liquid-glass",
      "type": "registry:component",
      "title": "Liquid Glass",
      "description": "A pane of liquid glass behind any content: backdrop blur and saturation, a lit rim, a highlight that follows the pointer, a lean toward it on a spring that overshoots and settles, and a squish on press. CSS and springs, no WebGL; static glass under reduced motion.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/components/youj/interactions/liquid-glass.tsx",
          "type": "registry:component",
          "target": "components/youj/interactions/liquid-glass.tsx"
        }
      ]
    },
    {
      "name": "settled-entrances",
      "type": "registry:component",
      "title": "Settled Entrances",
      "description": "A scope inside which Reveal, Stagger, Counter and PresenceItem render already settled (no entrance); hover and other motion are untouched.",
      "dependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "src/components/youj/motion/settled.tsx",
          "type": "registry:component",
          "target": "components/youj/motion/settled.tsx"
        }
      ]
    },
    {
      "name": "reveal",
      "type": "registry:component",
      "title": "Reveal",
      "description": "Enter on mount or in view with fade, rise, blur-in, scale or clip-wipe (4 directions); exits via AnimatePresence; delay as a stagger-token multiple.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/settled-entrances.json"
      ],
      "files": [
        {
          "path": "src/components/youj/motion/reveal.tsx",
          "type": "registry:component",
          "target": "components/youj/motion/reveal.tsx"
        }
      ]
    },
    {
      "name": "stagger",
      "type": "registry:component",
      "title": "Stagger",
      "description": "Orchestrates children in sequence with a stagger token, ordered from start, end, center or seeded random; plays in view.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/settled-entrances.json"
      ],
      "files": [
        {
          "path": "src/components/youj/motion/stagger.tsx",
          "type": "registry:component",
          "target": "components/youj/motion/stagger.tsx"
        }
      ]
    },
    {
      "name": "magnetic",
      "type": "registry:component",
      "title": "Magnetic",
      "description": "Pulls an element toward the pointer within a radius with a spring return; MagneticInner adds label parallax.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/components/youj/motion/magnetic.tsx",
          "type": "registry:component",
          "target": "components/youj/motion/magnetic.tsx"
        }
      ]
    },
    {
      "name": "tilt",
      "type": "registry:component",
      "title": "Tilt",
      "description": "3D pointer tilt with perspective, optional compositor-only glare and a spring reset.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/components/youj/motion/tilt.tsx",
          "type": "registry:component",
          "target": "components/youj/motion/tilt.tsx"
        }
      ]
    },
    {
      "name": "text-split",
      "type": "registry:component",
      "title": "TextSplit",
      "description": "Splits text by chars, words or measured lines (resize and font safe) and reveals with any Reveal variant; accessible text preserved.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/reveal.json"
      ],
      "files": [
        {
          "path": "src/components/youj/motion/text-split.tsx",
          "type": "registry:component",
          "target": "components/youj/motion/text-split.tsx"
        }
      ]
    },
    {
      "name": "scramble-text",
      "type": "registry:component",
      "title": "ScrambleText",
      "description": "Decode/scramble toward target text with a configurable glyph set; triggers on mount, view, hover/focus or text change.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/components/youj/motion/scramble-text.tsx",
          "type": "registry:component",
          "target": "components/youj/motion/scramble-text.tsx"
        }
      ]
    },
    {
      "name": "counter",
      "type": "registry:component",
      "title": "Counter",
      "description": "Animated number with Intl.NumberFormat and tabular numerals; tween or odometer roll; retargets mid-animation.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/settled-entrances.json"
      ],
      "files": [
        {
          "path": "src/components/youj/motion/counter.tsx",
          "type": "registry:component",
          "target": "components/youj/motion/counter.tsx"
        }
      ]
    },
    {
      "name": "text-effect",
      "type": "registry:component",
      "title": "TextEffect",
      "description": "Text renderer with a chosen reveal: split-flap board, terminal typing, decode, word blur-in or rolling reels; reserves the final box, one accessible copy, replays on text change.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/scramble-text.json"
      ],
      "files": [
        {
          "path": "src/components/youj/motion/text-effect.tsx",
          "type": "registry:component",
          "target": "components/youj/motion/text-effect.tsx"
        }
      ]
    },
    {
      "name": "marquee",
      "type": "registry:component",
      "title": "Marquee",
      "description": "Seamless infinite loop, horizontal or vertical; auto-fills, faded edges, eases to a stop on hover/focus, pauses offscreen.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/components/youj/motion/marquee.tsx",
          "type": "registry:component",
          "target": "components/youj/motion/marquee.tsx"
        }
      ]
    },
    {
      "name": "scroll-progress",
      "type": "registry:component",
      "title": "ScrollProgress",
      "description": "Spring-smoothed bar or ring bound to page or container scroll, exposed as a progressbar.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-scroll-progress.json"
      ],
      "files": [
        {
          "path": "src/components/youj/motion/scroll-progress.tsx",
          "type": "registry:component",
          "target": "components/youj/motion/scroll-progress.tsx"
        }
      ]
    },
    {
      "name": "parallax",
      "type": "registry:component",
      "title": "Parallax",
      "description": "Scroll-linked translate, scale, rotate and opacity mapped from an input range to output ranges.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/components/youj/motion/parallax.tsx",
          "type": "registry:component",
          "target": "components/youj/motion/parallax.tsx"
        }
      ]
    },
    {
      "name": "player-env",
      "type": "registry:lib",
      "title": "Player environment hooks",
      "description": "Shared hooks for the Lottie player. useInView reports viewport visibility through an IntersectionObserver. useThemeChange fires when data-theme or class changes on the element or any of its ancestors, or when the OS color scheme changes.",
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/components/youj/players/use-player-env.ts",
          "type": "registry:lib",
          "target": "components/youj/players/use-player-env.ts"
        }
      ]
    },
    {
      "name": "lottie-player",
      "type": "registry:component",
      "title": "Lottie player",
      "description": "A dotLottie player for .lottie and Lottie .json files. It supports autoplay, loop, playOnHover (plays forward on enter and in reverse on leave, and can be interrupted), playOnView, segments and a controlled playing prop. Speed is speed / timeScale. Under reduced motion it shows a poster frame. It pauses offscreen. Color slots bind to youj tokens and re-theme live.",
      "dependencies": [
        "@lottiefiles/dotlottie-react@^0.19.16"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/player-env.json"
      ],
      "files": [
        {
          "path": "src/components/youj/players/lottie-player.tsx",
          "type": "registry:component",
          "target": "components/youj/players/lottie-player.tsx"
        }
      ]
    },
    {
      "name": "lottie-samples",
      "type": "registry:file",
      "title": "Youj Lottie samples",
      "description": "Original Lottie JSON animations generated from the youj motion tokens, with color slots named after the color tokens: success-check and an upload-progress loader. The binary logo-sting.lottie isn't included because registry files are text. Copy it from public/samples or regenerate it with scripts/lottie/generate.mjs.",
      "dependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "public/samples/success-check.json",
          "type": "registry:file",
          "target": "public/samples/success-check.json"
        },
        {
          "path": "public/samples/upload-progress.json",
          "type": "registry:file",
          "target": "public/samples/upload-progress.json"
        }
      ]
    },
    {
      "name": "sliding-indicator",
      "type": "registry:component",
      "title": "Sliding Indicator",
      "description": "One highlight per group that glides between tabs, segmented options, toggle items or nav links. Finds the selected item from ARIA / Base UI attributes (or follows pointer and keyboard focus), glides with Motion layout projection on the smooth spring, re-places without motion on resize and RTL. Pill or underline.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json"
      ],
      "files": [
        {
          "path": "src/components/youj/transitions/sliding-indicator.tsx",
          "type": "registry:component",
          "target": "components/youj/transitions/sliding-indicator.tsx"
        }
      ]
    },
    {
      "name": "morph-label",
      "type": "registry:component",
      "title": "Morph Label",
      "description": "Content that crossfades between states while its box morphs to the new width (transform-only layout projection; useMorphRoot gives the box the label's spring). The outgoing label is hidden from assistive tech while it fades.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/components/youj/transitions/morph-label.tsx",
          "type": "registry:component",
          "target": "components/youj/transitions/morph-label.tsx"
        }
      ]
    },
    {
      "name": "collapse",
      "type": "registry:component",
      "title": "Collapse",
      "description": "Height-auto disclosure for non-Base-UI uses: eases between 0 and auto with the content fading, reverses from the current height, clips only while moving, keeps closed content inert, unmounts or keeps it mounted.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/components/youj/transitions/collapse.tsx",
          "type": "registry:component",
          "target": "components/youj/transitions/collapse.tsx"
        }
      ]
    },
    {
      "name": "content-swap",
      "type": "registry:component",
      "title": "Content Swap",
      "description": "Skeleton to content: the placeholder drops away while the content resolves into focus and the box morphs between their heights so the page below moves with it. Both directions, aria-busy while loading.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/components/youj/transitions/content-swap.tsx",
          "type": "registry:component",
          "target": "components/youj/transitions/content-swap.tsx"
        }
      ]
    },
    {
      "name": "presence-list",
      "type": "registry:component",
      "title": "Presence List",
      "description": "Insert, remove and reorder animation for lists and table rows (<PresenceList as=\"tbody\"> + <PresenceItem as=\"tr\">): exits fade in place, the rest FLIP on translate only, measured against the list so a moving list doesn't make rows glide. Works with memoized rows.",
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/settled-entrances.json"
      ],
      "files": [
        {
          "path": "src/components/youj/transitions/presence-list.tsx",
          "type": "registry:component",
          "target": "components/youj/transitions/presence-list.tsx"
        }
      ]
    },
    {
      "name": "sound",
      "type": "registry:lib",
      "title": "Sound",
      "description": "Interface sounds: the packs YoujProvider's `sound` takes (Glass is 28 KB of pre-rendered audio, fetched only while sound is on) and definePack with 40 built-in candidates for a pack of your own. Youj components emit cues through youj-core's useSoundCue; the provider plays them from the pack.",
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/index.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/index.ts"
        },
        {
          "path": "src/lib/lazy.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/lib/lazy.ts"
        },
        {
          "path": "src/lib/player.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/lib/player.ts"
        },
        {
          "path": "src/lib/pack.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/lib/pack.ts"
        },
        {
          "path": "src/lib/define-pack.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/lib/define-pack.ts"
        },
        {
          "path": "src/lib/warn.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/lib/warn.ts"
        },
        {
          "path": "src/packs/index.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/packs/index.ts"
        },
        {
          "path": "src/packs/beacon.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/packs/beacon.ts"
        },
        {
          "path": "src/packs/beacon.data.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/packs/beacon.data.ts"
        },
        {
          "path": "src/packs/halo.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/packs/halo.ts"
        },
        {
          "path": "src/packs/halo.data.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/packs/halo.data.ts"
        },
        {
          "path": "src/packs/rill.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/packs/rill.ts"
        },
        {
          "path": "src/packs/rill.data.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/packs/rill.data.ts"
        },
        {
          "path": "src/packs/glyph.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/packs/glyph.ts"
        },
        {
          "path": "src/packs/glyph.data.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/packs/glyph.data.ts"
        },
        {
          "path": "src/packs/zephyr.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/packs/zephyr.ts"
        },
        {
          "path": "src/packs/zephyr.data.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/packs/zephyr.data.ts"
        },
        {
          "path": "src/packs/glass.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/packs/glass.ts"
        },
        {
          "path": "src/packs/glass.data.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/packs/glass.data.ts"
        },
        {
          "path": "src/candidates/index.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/index.ts"
        },
        {
          "path": "src/candidates/tap.wood.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/tap.wood.ts"
        },
        {
          "path": "src/candidates/tap.glass.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/tap.glass.ts"
        },
        {
          "path": "src/candidates/tap.digital.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/tap.digital.ts"
        },
        {
          "path": "src/candidates/tap.felt.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/tap.felt.ts"
        },
        {
          "path": "src/candidates/tap.beacon.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/tap.beacon.ts"
        },
        {
          "path": "src/candidates/tap.halo.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/tap.halo.ts"
        },
        {
          "path": "src/candidates/tap.rill.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/tap.rill.ts"
        },
        {
          "path": "src/candidates/tap.glyph.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/tap.glyph.ts"
        },
        {
          "path": "src/candidates/tap.zephyr.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/tap.zephyr.ts"
        },
        {
          "path": "src/candidates/select.wood.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/select.wood.ts"
        },
        {
          "path": "src/candidates/select.glass.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/select.glass.ts"
        },
        {
          "path": "src/candidates/select.digital.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/select.digital.ts"
        },
        {
          "path": "src/candidates/select.felt.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/select.felt.ts"
        },
        {
          "path": "src/candidates/select.beacon.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/select.beacon.ts"
        },
        {
          "path": "src/candidates/select.halo.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/select.halo.ts"
        },
        {
          "path": "src/candidates/select.rill.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/select.rill.ts"
        },
        {
          "path": "src/candidates/select.glyph.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/select.glyph.ts"
        },
        {
          "path": "src/candidates/select.zephyr.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/select.zephyr.ts"
        },
        {
          "path": "src/candidates/toggleOn.wood.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/toggleOn.wood.ts"
        },
        {
          "path": "src/candidates/toggleOn.glass.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/toggleOn.glass.ts"
        },
        {
          "path": "src/candidates/toggleOn.digital.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/toggleOn.digital.ts"
        },
        {
          "path": "src/candidates/toggleOn.felt.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/toggleOn.felt.ts"
        },
        {
          "path": "src/candidates/toggleOn.beacon.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/toggleOn.beacon.ts"
        },
        {
          "path": "src/candidates/toggleOn.halo.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/toggleOn.halo.ts"
        },
        {
          "path": "src/candidates/toggleOn.rill.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/toggleOn.rill.ts"
        },
        {
          "path": "src/candidates/toggleOn.glyph.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/toggleOn.glyph.ts"
        },
        {
          "path": "src/candidates/toggleOn.zephyr.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/toggleOn.zephyr.ts"
        },
        {
          "path": "src/candidates/toggleOff.wood.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/toggleOff.wood.ts"
        },
        {
          "path": "src/candidates/toggleOff.glass.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/toggleOff.glass.ts"
        },
        {
          "path": "src/candidates/toggleOff.digital.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/toggleOff.digital.ts"
        },
        {
          "path": "src/candidates/toggleOff.felt.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/toggleOff.felt.ts"
        },
        {
          "path": "src/candidates/toggleOff.beacon.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/toggleOff.beacon.ts"
        },
        {
          "path": "src/candidates/toggleOff.halo.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/toggleOff.halo.ts"
        },
        {
          "path": "src/candidates/toggleOff.rill.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/toggleOff.rill.ts"
        },
        {
          "path": "src/candidates/toggleOff.glyph.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/toggleOff.glyph.ts"
        },
        {
          "path": "src/candidates/toggleOff.zephyr.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/toggleOff.zephyr.ts"
        },
        {
          "path": "src/candidates/success.classic.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/success.classic.ts"
        },
        {
          "path": "src/candidates/success.glass.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/success.glass.ts"
        },
        {
          "path": "src/candidates/success.wood.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/success.wood.ts"
        },
        {
          "path": "src/candidates/success.felt.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/success.felt.ts"
        },
        {
          "path": "src/candidates/success.beacon.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/success.beacon.ts"
        },
        {
          "path": "src/candidates/success.halo.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/success.halo.ts"
        },
        {
          "path": "src/candidates/success.rill.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/success.rill.ts"
        },
        {
          "path": "src/candidates/success.glyph.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/success.glyph.ts"
        },
        {
          "path": "src/candidates/success.zephyr.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/success.zephyr.ts"
        },
        {
          "path": "src/candidates/error.classic.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/error.classic.ts"
        },
        {
          "path": "src/candidates/error.wood.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/error.wood.ts"
        },
        {
          "path": "src/candidates/error.felt.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/error.felt.ts"
        },
        {
          "path": "src/candidates/error.digital.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/error.digital.ts"
        },
        {
          "path": "src/candidates/error.beacon.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/error.beacon.ts"
        },
        {
          "path": "src/candidates/error.halo.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/error.halo.ts"
        },
        {
          "path": "src/candidates/error.rill.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/error.rill.ts"
        },
        {
          "path": "src/candidates/error.glyph.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/error.glyph.ts"
        },
        {
          "path": "src/candidates/error.zephyr.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/error.zephyr.ts"
        },
        {
          "path": "src/candidates/notify.glass.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/notify.glass.ts"
        },
        {
          "path": "src/candidates/notify.wood.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/notify.wood.ts"
        },
        {
          "path": "src/candidates/notify.digital.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/notify.digital.ts"
        },
        {
          "path": "src/candidates/notify.pluck.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/notify.pluck.ts"
        },
        {
          "path": "src/candidates/notify.beacon.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/notify.beacon.ts"
        },
        {
          "path": "src/candidates/notify.halo.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/notify.halo.ts"
        },
        {
          "path": "src/candidates/notify.rill.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/notify.rill.ts"
        },
        {
          "path": "src/candidates/notify.glyph.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/notify.glyph.ts"
        },
        {
          "path": "src/candidates/notify.zephyr.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/notify.zephyr.ts"
        },
        {
          "path": "src/candidates/open.air.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/open.air.ts"
        },
        {
          "path": "src/candidates/open.glass.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/open.glass.ts"
        },
        {
          "path": "src/candidates/open.digital.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/open.digital.ts"
        },
        {
          "path": "src/candidates/open.felt.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/open.felt.ts"
        },
        {
          "path": "src/candidates/open.beacon.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/open.beacon.ts"
        },
        {
          "path": "src/candidates/open.halo.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/open.halo.ts"
        },
        {
          "path": "src/candidates/open.rill.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/open.rill.ts"
        },
        {
          "path": "src/candidates/open.glyph.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/open.glyph.ts"
        },
        {
          "path": "src/candidates/open.zephyr.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/open.zephyr.ts"
        },
        {
          "path": "src/candidates/close.air.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/close.air.ts"
        },
        {
          "path": "src/candidates/close.glass.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/close.glass.ts"
        },
        {
          "path": "src/candidates/close.digital.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/close.digital.ts"
        },
        {
          "path": "src/candidates/close.felt.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/close.felt.ts"
        },
        {
          "path": "src/candidates/close.beacon.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/close.beacon.ts"
        },
        {
          "path": "src/candidates/close.halo.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/close.halo.ts"
        },
        {
          "path": "src/candidates/close.rill.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/close.rill.ts"
        },
        {
          "path": "src/candidates/close.glyph.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/close.glyph.ts"
        },
        {
          "path": "src/candidates/close.zephyr.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/close.zephyr.ts"
        },
        {
          "path": "src/candidates/tick.wood.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/tick.wood.ts"
        },
        {
          "path": "src/candidates/tick.glass.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/tick.glass.ts"
        },
        {
          "path": "src/candidates/tick.digital.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/tick.digital.ts"
        },
        {
          "path": "src/candidates/tick.felt.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/tick.felt.ts"
        },
        {
          "path": "src/candidates/tick.beacon.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/tick.beacon.ts"
        },
        {
          "path": "src/candidates/tick.halo.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/tick.halo.ts"
        },
        {
          "path": "src/candidates/tick.rill.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/tick.rill.ts"
        },
        {
          "path": "src/candidates/tick.glyph.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/tick.glyph.ts"
        },
        {
          "path": "src/candidates/tick.zephyr.ts",
          "type": "registry:lib",
          "target": "lib/youj/sound/candidates/tick.zephyr.ts"
        }
      ]
    },
    {
      "name": "youj-ui-core",
      "type": "registry:lib",
      "title": "Youj UI core",
      "description": "cn() (re-exported from youj-core), safeHref and safeLink (the links built from data), and ui.css: radius, density, focus, elevation, scrollbars (yj-scrollbar) and the reduced: variant, built on youj's colour roles. Import ui.css right after youj.css.",
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/lib/utils.ts",
          "type": "registry:lib",
          "target": "lib/utils.ts"
        },
        {
          "path": "src/lib/safe-href.ts",
          "type": "registry:lib",
          "target": "lib/safe-href.ts"
        },
        {
          "path": "src/styles/ui.css",
          "type": "registry:file",
          "target": "styles/ui.css"
        }
      ]
    },
    {
      "name": "youj-look-bezel",
      "type": "registry:lib",
      "title": "Bezel look",
      "description": "The Bezel look: recipes keyed on data-yj-look=\"bezel\" that change how components are built, with any theme. Import styles/bezel.css right after ui.css, then set look=\"bezel\" on YoujProvider (or data-yj-look=\"bezel\" on any element).",
      "registryDependencies": [
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/styles/bezel.css",
          "type": "registry:file",
          "target": "styles/bezel.css"
        }
      ]
    },
    {
      "name": "youj-shadcn-compat",
      "type": "registry:lib",
      "title": "shadcn compatibility",
      "description": "shadcn's token names (background, foreground, card, muted, primary, border, input, ring, sidebar...) on youj's colour roles, so code written for shadcn keeps working beside youj. Opt in: import styles/shadcn.css right after ui.css. shadcn's accent stays unmapped, since accent is youj's brand colour.",
      "registryDependencies": [
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/styles/shadcn.css",
          "type": "registry:file",
          "target": "styles/shadcn.css"
        }
      ]
    },
    {
      "name": "accordion",
      "type": "registry:ui",
      "title": "Accordion",
      "description": "Base UI accordion.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "navigation"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/collapsible.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/accordion.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "account-menu",
      "type": "registry:ui",
      "title": "Account Menu",
      "description": "The signed-in user's menu: an avatar that opens a DropdownMenu with a profile header, the workspaces to switch between, your own rows (profile, settings, keyboard shortcuts), a Theme submenu and Sign out.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "navigation-and-app-chrome"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/icon-log-out.json",
        "https://www.youj.dev/r/icon-theme.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-account-menu.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/account-menu.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "action-island",
      "type": "registry:ui",
      "title": "Action Island",
      "description": "A floating tray of actions over a canvas.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "actions"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/action-island.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "action-list",
      "type": "registry:ui",
      "title": "Action List",
      "description": "Things to act on, one per row: an icon tile in the row’s `tone`, a title and one line of `detail`, an optional `meta` chip (the date, amount or state that makes it urgent, in `metaTone`) and the row’s own `action`.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "data-and-tables"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/action-list.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "activity-rings",
      "type": "registry:ui",
      "title": "Activity Rings",
      "description": "Goals side by side as concentric rings: a day’s move, exercise and stand, a team’s quotas, a quarter’s key results.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "charts-and-meters"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-activity-rings.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/activity-rings.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "alert-dialog",
      "type": "registry:ui",
      "title": "Alert Dialog",
      "description": "Base UI alert dialog: it asks before something happens.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "overlays"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "class-variance-authority@^0.7.1"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/dialog.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-copy.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-alert-dialog.json",
        "https://www.youj.dev/r/youj-labels-code-block.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/alert-dialog.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "alert",
      "type": "registry:ui",
      "title": "Alert",
      "description": "A status message in four severities.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "feedback"
      },
      "dependencies": [
        "class-variance-authority@^0.7.1"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/collapse.json",
        "https://www.youj.dev/r/icon-alert-triangle.json",
        "https://www.youj.dev/r/icon-check-circle.json",
        "https://www.youj.dev/r/icon-info.json",
        "https://www.youj.dev/r/icon-octagon-alert.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-alert.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/alert.tsx",
          "type": "registry:ui"
        },
        {
          "path": "src/components/ui/alert.variants.ts",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "allocation-meter",
      "type": "registry:ui",
      "title": "Allocation Meter",
      "description": "Budget envelopes as a rack of cells, one column each, draining from the top as money goes.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "charts-and-meters"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-allocation-meter.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/allocation-meter.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "anchor-nav",
      "type": "registry:ui",
      "title": "Anchor Nav",
      "description": "A table of contents that follows the reader.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "navigation"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/sliding-indicator.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-anchor-nav.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/anchor-nav.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "annotated-image",
      "type": "registry:ui",
      "title": "Annotated Image",
      "description": "A picture with numbered callouts joined by leader lines to labels in the gutters beside it.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "media"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-annotated-image.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/annotated-image.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "app-header",
      "type": "registry:ui",
      "title": "App Header",
      "description": "The app's top bar (a navbar): brand, primary navigation (plain links or a MegaMenu), a search trigger for the command palette, actions and the account menu.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "navigation-and-app-chrome"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/icon-menu.json",
        "https://www.youj.dev/r/icon-search.json",
        "https://www.youj.dev/r/kbd.json",
        "https://www.youj.dev/r/sheet.json",
        "https://www.youj.dev/r/use-mobile.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-app-header.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/app-header.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "app-page",
      "type": "registry:ui",
      "title": "App Page",
      "description": "A page inside an app’s frame: the title, a line under it and the actions at the end, over the page’s sections on one gutter, so every page of the app starts at the same place.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "navigation-and-app-chrome"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/app-page.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "aspect-ratio",
      "type": "registry:ui",
      "title": "Aspect Ratio",
      "description": "A box that keeps its shape as its width changes: the CSS aspect-ratio property, with the ratio as a number (16 / 9).",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "layout"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/aspect-ratio.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "async-button",
      "type": "registry:ui",
      "title": "Async Button",
      "description": "A Button that runs async work on press and shows its whole lifecycle in place.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "actions"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/async-feedback.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/morph-label.json",
        "https://www.youj.dev/r/spinner.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-button-async.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/async-button.tsx",
          "type": "registry:ui"
        },
        {
          "path": "src/components/ui/async-button.hold.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "avatar-stack",
      "type": "registry:ui",
      "title": "Avatar Stack",
      "description": "Who is here: overlapping avatars (the Avatar primitives), the first `max` shown and the rest behind a \"+N\" that opens the full list in a Popover, with each person's role and status.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "display"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/popover.json",
        "https://www.youj.dev/r/scroll-area.json",
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-avatar-stack.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/avatar-stack.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "avatar-upload",
      "type": "registry:ui",
      "title": "Avatar Upload",
      "description": "A profile photo you can replace.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "pickers-and-inputs"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/dialog.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/file-upload.json",
        "https://www.youj.dev/r/icon-camera.json",
        "https://www.youj.dev/r/icon-zoom-in.json",
        "https://www.youj.dev/r/icon-zoom-out.json",
        "https://www.youj.dev/r/slider.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-avatar-upload.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/avatar-upload.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "avatar",
      "type": "registry:ui",
      "title": "Avatar",
      "description": "Base UI avatar: the fallback shows until the image has actually loaded, and stays if it fails, so there is never a broken-image frame.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "display"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/avatar.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "badge",
      "type": "registry:ui",
      "title": "Badge",
      "description": "A 20px pill in 12px medium type.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "display"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "class-variance-authority@^0.7.1"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/badge.tsx",
          "type": "registry:ui"
        },
        {
          "path": "src/components/ui/badge.variants.ts",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "banner",
      "type": "registry:ui",
      "title": "Banner",
      "description": "An announcement bar across the top of a page or app: a launch, a maintenance window, a trial running out.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "feedback"
      },
      "dependencies": [
        "class-variance-authority@^0.7.1"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/collapse.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-banner.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/banner.tsx",
          "type": "registry:ui"
        },
        {
          "path": "src/components/ui/banner.variants.ts",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "bottom-tab-bar",
      "type": "registry:ui",
      "title": "Bottom Tab Bar",
      "description": "A phone app's primary navigation, pinned to the bottom edge and padded by the safe-area inset.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "navigation"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/sliding-indicator.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-bottom-tab-bar.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/bottom-tab-bar.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "breadcrumb",
      "type": "registry:ui",
      "title": "Breadcrumb",
      "description": "shadcn's breadcrumb in youj's type: a named `nav` around an ordered list, 13px muted crumbs, the current page in full ink (plain text with aria-current=\"page\", not a link to itself), slanted hairline separators hidden from assistive tech.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "navigation"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-ellipsis.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-breadcrumb.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/breadcrumb.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "breakdown-list",
      "type": "registry:ui",
      "title": "Breakdown List",
      "description": "How a total splits, as rows of a color marker, a name (with an optional line of `detail`), a value and its share of the total.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "data-and-tables"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/share-bar.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/breakdown-list.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "button-group",
      "type": "registry:ui",
      "title": "Button Group",
      "description": "shadcn’s button group: buttons, inputs and menus joined into one strip (role=\"group\").",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "actions"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "class-variance-authority@^0.7.1"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/separator.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/button-group.tsx",
          "type": "registry:ui"
        },
        {
          "path": "src/components/ui/button-group.variants.ts",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "button",
      "type": "registry:ui",
      "title": "Button",
      "description": "Base UI button in six variants and eight sizes on the control-height scale (24/28/32/40px, +8px on touch).",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "actions"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "class-variance-authority@^0.7.1"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/spinner.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-button.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/button.tsx",
          "type": "registry:ui"
        },
        {
          "path": "src/components/ui/button.press.tsx",
          "type": "registry:ui"
        },
        {
          "path": "src/components/ui/button.variants.ts",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "calendar-heatmap",
      "type": "registry:ui",
      "title": "Calendar Heatmap",
      "description": "A habit’s days as heat dots: a column per week, a row per weekday, the newest week at the inline end (mirrored in RTL).",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "charts-and-meters"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-flame.json",
        "https://www.youj.dev/r/icon-snowflake.json",
        "https://www.youj.dev/r/morph-label.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-now.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-calendar-heatmap.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/calendar-heatmap.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "calendar",
      "type": "registry:ui",
      "title": "Calendar",
      "description": "A month grid on react-day-picker whose days and arrows are the library’s Button, so hover, press and focus match every other control.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "form-controls"
      },
      "dependencies": [
        "date-fns@^4.4.0",
        "react-day-picker@^10.0.1"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/icon-chevron-down.json",
        "https://www.youj.dev/r/icon-chevron-left.json",
        "https://www.youj.dev/r/icon-chevron-right.json",
        "https://www.youj.dev/r/icon-chevron-up.json",
        "https://www.youj.dev/r/use-now.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-calendar.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/calendar.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "capsule-player",
      "type": "registry:ui",
      "title": "Capsule Player",
      "description": "Now playing, in one capsule: cover art in a disc, the title and artist, a thin rail you can seek (a Base UI slider: arrows step five seconds, Home/End jump; spoken as “1:12 of 3:40”), the time played in mono, and previous, play and next.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "media"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/capsule.json",
        "https://www.youj.dev/r/icon-play.json",
        "https://www.youj.dev/r/icon-skip-back.json",
        "https://www.youj.dev/r/icon-skip-forward.json",
        "https://www.youj.dev/r/waveform-scrubber.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-capsule-player.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/capsule-player.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "capsule-search",
      "type": "registry:ui",
      "title": "Capsule Search",
      "description": "A search that waits as a small capsule with its shortcut on it and opens when it’s wanted.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "capsules"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/icon-search.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/kbd.json",
        "https://www.youj.dev/r/morph-label.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-capsule-search.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/capsule-search.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "capsule-stepper",
      "type": "registry:ui",
      "title": "Capsule Stepper",
      "description": "− value + in a capsule, for a number you nudge more than type.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "capsules"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/capsule.json",
        "https://www.youj.dev/r/icon-minus.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-capsule-stepper.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/capsule-stepper.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "capsule-toggle",
      "type": "registry:ui",
      "title": "Capsule Toggle",
      "description": "Two or three options in a capsule: a SegmentedControl whose track is the capsule itself, so the lit key glides inside the floating pill (motion’s SlidingIndicator on the smooth spring, retargeting mid-glide; it jumps under reduced motion).",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "capsules"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/capsule.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/capsule-toggle.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "capsule",
      "type": "registry:ui",
      "title": "Capsule",
      "description": "The shell every capsule shares: one row of controls or figures on a floating surface, the control height plus an inset that keeps the discs inside concentric with its ends.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "capsules"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/capsule.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "card",
      "type": "registry:ui",
      "title": "Card",
      "description": "shadcn's card on youj surfaces: a hairline-bordered panel with a header (title, description, and an action slot beside them), content and a recessed footer.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "display"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/spotlight.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/card.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "carousel",
      "type": "registry:ui",
      "title": "Carousel",
      "description": "shadcn's carousel on Embla: swipe, drag and flick, looping, and responsive slides per view (a basis on each item).",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "media"
      },
      "dependencies": [
        "embla-carousel-react@^8.6.0",
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/icon-chevron-left.json",
        "https://www.youj.dev/r/icon-chevron-right.json",
        "https://www.youj.dev/r/icon-play.json",
        "https://www.youj.dev/r/sliding-indicator.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-carousel.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/carousel.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "cell-bar",
      "type": "registry:ui",
      "title": "Cell Bar",
      "description": "A total built from its periods: a cell per month, each as wide as its amount, solid when settled and hatched when projected.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "data-marks"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/hatched-bar.json",
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-cell-bar.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/cell-bar.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "chart",
      "type": "registry:ui",
      "title": "Chart",
      "description": "shadcn's chart on Recharts, colored by the theme and timed by youj.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "charts-and-meters"
      },
      "dependencies": [
        "recharts@^3.8.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/collapse.json",
        "https://www.youj.dev/r/table.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-chart.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/chart.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "checkbox",
      "type": "registry:ui",
      "title": "Checkbox",
      "description": "Base UI checkbox.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "form-controls"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/checkbox.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "choice-card",
      "type": "registry:ui",
      "title": "Choice Card",
      "description": "A selectable card: icon, title, description and its control, with the whole card as the target.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "form-controls"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/checkbox.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/radio-group.json",
        "https://www.youj.dev/r/switch.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/choice-card.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "collapsible",
      "type": "registry:ui",
      "title": "Collapsible",
      "description": "Base UI collapsible: a trigger with aria-expanded / aria-controls and a panel that wears motion's yj-collapse preset (height to the measured size, then auto, with the content fading; a reversal mid-way continues from where it is).",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "navigation"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-chevron-down.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/collapsible.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "color-opacity-field",
      "type": "registry:ui",
      "title": "Color Opacity Field",
      "description": "A color and its opacity as one grouped control: a swatch that opens the Color Picker, a hex field that reads 3, 4, 6 or 8 digits (pasted or typed), and an opacity percentage you can drag.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "pickers-and-inputs"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/color-picker.json",
        "https://www.youj.dev/r/icon-droplet.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/scrub-number-field.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-color-opacity-field.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/color-opacity-field.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "color-picker",
      "type": "registry:ui",
      "title": "Color Picker",
      "description": "A color picked in a Popover: a saturation/brightness area, a hue Slider on a spectrum, hex and OKLCH fields, swatches (the theme presets’ accents by default) and the browser’s eyedropper where it exists.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "pickers-and-inputs"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/icon-chevron-down.json",
        "https://www.youj.dev/r/icon-pipette.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/popover.json",
        "https://www.youj.dev/r/presentation.json",
        "https://www.youj.dev/r/slider.json",
        "https://www.youj.dev/r/sliding-indicator.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-color-picker.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/color-picker.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "combobox",
      "type": "registry:ui",
      "title": "Combobox",
      "description": "A single-select picker with search, composed from Popover and Command: the popup grows out of the trigger on yj-pop, the active row glides, the list eases its height, and the chosen row draws its check.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "pickers-and-inputs"
      },
      "dependencies": [
        "cmdk@^1.1.1"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/command.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-chevron-down.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/popover.json",
        "https://www.youj.dev/r/presentation.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-combobox.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/combobox.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "command-palette",
      "type": "registry:ui",
      "title": "Command Palette",
      "description": "A ⌘K palette on CommandDialog: groups, nested pages with a breadcrumb back stack (Backspace on an empty search or Escape steps back; the last Escape closes), recent items, results loaded as you type, and a footer that spells out the keys.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "navigation-and-app-chrome"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/command.json",
        "https://www.youj.dev/r/icon-chevron-right.json",
        "https://www.youj.dev/r/kbd.json",
        "https://www.youj.dev/r/presentation.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-command-palette.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/command-palette.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "command",
      "type": "registry:ui",
      "title": "Command",
      "description": "cmdk, re-skinned: a flush search row over a list.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "overlays"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "cmdk@^1.1.1"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/checkbox.json",
        "https://www.youj.dev/r/dialog.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-search.json",
        "https://www.youj.dev/r/presentation.json",
        "https://www.youj.dev/r/sliding-indicator.json",
        "https://www.youj.dev/r/spinner.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-command.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/command.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "context-menu",
      "type": "registry:ui",
      "title": "Context Menu",
      "description": "Base UI context menu: right click, long press, or the Menu key / Shift+F10 on a focused row.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "overlays"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/presentation.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/context-menu.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "contribution-list",
      "type": "registry:ui",
      "title": "Contribution List",
      "description": "A waterfall told as a list: the `baseline` row, each thing that moved the figure as a signed step (`items`: an icon, a label, a line of `detail`, +n or −n), and the `total` row, highlighted.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "data-and-tables"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/contribution-list.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "countdown",
      "type": "registry:ui",
      "title": "Countdown",
      "description": "Days, hours, minutes and seconds to a moment, in tabular figures under their unit names.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "display"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/countdown.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "coverage-matrix",
      "type": "registry:ui",
      "title": "Coverage Matrix",
      "description": "How well each row is covered by each column: every cell fills from the bottom by depth in its column’s color, and a cell with nothing is hatched.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "charts-and-meters"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/hatched-bar.json",
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-coverage-matrix.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/coverage-matrix.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "currency-swap",
      "type": "registry:ui",
      "title": "Currency Swap",
      "description": "A converter card: what you pay (an amount field and its currency) over what you receive (the converted amount, rolling digit by digit), each with its value below, a round button that flips the two sides, the rate and the primary action.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "pickers-and-inputs"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/icon-arrow-up-down.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-currency-swap.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/currency-swap.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "date-picker",
      "type": "registry:ui",
      "title": "Date Picker",
      "description": "A date you can type or pick: an InputGroup field in the locale’s short format (a complete date selects as you type; it also reads “Sep 27, 2026”, ISO and today/tomorrow) and a calendar button that opens the Calendar in a Popover (yj-pop, then the month slide).",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "pickers-and-inputs"
      },
      "dependencies": [
        "date-fns@^4.4.0",
        "react-day-picker@^10.0.1"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/calendar.json",
        "https://www.youj.dev/r/icon-calendar.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/popover.json",
        "https://www.youj.dev/r/presentation.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-date-picker.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/date-picker.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "date-range-picker",
      "type": "registry:ui",
      "title": "Date Range Picker",
      "description": "A span of days: two typed fields (start – end) under one label, and a Popover with presets beside a two-month range Calendar (one month and a row of presets on phones).",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "pickers-and-inputs"
      },
      "dependencies": [
        "date-fns@^4.4.0",
        "react-day-picker@^10.0.1"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/calendar.json",
        "https://www.youj.dev/r/date-picker.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-calendar.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/popover.json",
        "https://www.youj.dev/r/presentation.json",
        "https://www.youj.dev/r/sliding-indicator.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/use-mobile.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-date-range-picker.json",
        "https://www.youj.dev/r/youj-labels-file-upload.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/date-range-picker.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "day-rail",
      "type": "registry:ui",
      "title": "Day Rail",
      "description": "A trip on one rail, a column per day.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "specialized"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-plane.json",
        "https://www.youj.dev/r/use-now.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-day-rail.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/day-rail.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "day-ring",
      "type": "registry:ui",
      "title": "Day Ring",
      "description": "A day of scheduled runs on a 24-hour dial (`role=\"img\"`, described in words): midnight at the top, clockwise, a quarter-hour ruler with the elapsed part of the day shaded, and one thin track per job with its runs as arcs as long as they take (ticks when they have no duration).",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "charts-and-meters"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/use-now.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-day-ring.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/day-ring.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "density-lanes",
      "type": "registry:ui",
      "title": "Density Lanes",
      "description": "When things happen, one lane per kind: each column swells above and below the lane’s spine by its value, on one scale for every lane, over a faint grid of dots.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "charts-and-meters"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-density-lanes.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/density-lanes.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "dial",
      "type": "registry:ui",
      "title": "Dial",
      "description": "A bounded value on a ruled arc: a three-quarter ring ticked at every step, the value as an ink knob on the band and large in mono in the middle.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "form-controls"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-dial.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/dial.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "dialog",
      "type": "registry:ui",
      "title": "Dialog",
      "description": "Base UI dialog.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "overlays"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/presentation.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-dialog.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/dialog.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "diff-bar",
      "type": "registry:ui",
      "title": "Diff Bar",
      "description": "Two values of one measure, A against B, as a diverging bar: each side grows out from a shared center toward its own end, in cells, with the values in mono at the outer ends.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "data-marks"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-diff-bar.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/diff-bar.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "distribution-strip",
      "type": "registry:ui",
      "title": "Distribution Strip",
      "description": "How sampled requests spread across latency: every sample is a dot on a log-scaled strip, stacked into rows where they crowd, with the percentiles (p50, p90 and p99 by default) as flagged hairlines and the objective as a dashed line; past it the strip is hatched and its dots take the warning tone.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "charts-and-meters"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/hatched-bar.json",
        "https://www.youj.dev/r/use-resize-measure.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-distribution-strip.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/distribution-strip.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "dot-map",
      "type": "registry:ui",
      "title": "Dot Map",
      "description": "The world as a grid of dots, lit where the numbers are: each region lights the land dots around it like LEDs, the reach and strength growing with its share of the largest value, under a soft halo in its tone (the accent unless it sets one).",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "charts-and-meters"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-dot-map.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/dot-map.tsx",
          "type": "registry:ui"
        },
        {
          "path": "src/components/ui/dot-map.land.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "drawer",
      "type": "registry:ui",
      "title": "Drawer",
      "description": "Base UI drawer: a modal panel on an edge that follows the finger and dismisses when swiped towards that edge (drag the handle with a mouse).",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "overlays"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/dialog.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/drawer.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "dropdown-menu",
      "type": "registry:ui",
      "title": "Dropdown Menu",
      "description": "Base UI menu.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "overlays"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-chevron-right.json",
        "https://www.youj.dev/r/presentation.json",
        "https://www.youj.dev/r/sliding-indicator.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/dropdown-menu.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "empty",
      "type": "registry:ui",
      "title": "Empty",
      "description": "An empty state: what isn't here yet, why, and what to do next.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "feedback"
      },
      "dependencies": [
        "class-variance-authority@^0.7.1"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/empty.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "field",
      "type": "registry:ui",
      "title": "Field",
      "description": "Field is Base UI's Field.Root with shadcn's layout parts.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "form-controls"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "class-variance-authority@^0.7.1"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/collapse.json",
        "https://www.youj.dev/r/label.json",
        "https://www.youj.dev/r/separator.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/field.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "file-upload",
      "type": "registry:ui",
      "title": "File Upload",
      "description": "Files in, with the whole lifecycle shown.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "pickers-and-inputs"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-file.json",
        "https://www.youj.dev/r/icon-file-text.json",
        "https://www.youj.dev/r/icon-image.json",
        "https://www.youj.dev/r/icon-refresh.json",
        "https://www.youj.dev/r/icon-upload.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/progress.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-file-upload.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/file-upload.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "filter-chips",
      "type": "registry:ui",
      "title": "Filter Chips",
      "description": "A filter query as chips (`label:bug`, `priority:in(p1,p2)`) with a field for the next one, in a filled well.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "data-and-tables"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/collapse.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-filter-chips.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/filter-chips.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "flow-graph",
      "type": "registry:ui",
      "title": "Flow Graph",
      "description": "A graph of steps that lays itself out along the flow, showing each step’s state.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "charts-and-meters"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/icon-maximize.json",
        "https://www.youj.dev/r/icon-minus.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-flow-graph.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/flow-graph.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "flow-lanes",
      "type": "registry:ui",
      "title": "Flow Lanes",
      "description": "Where a stream goes: one source fans out to a lane per destination, each ending beside its name and rate.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "charts-and-meters"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/use-resize-measure.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-flow-lanes.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/flow-lanes.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "forecast-band",
      "type": "registry:ui",
      "title": "Forecast Band",
      "description": "Where a running total will land against a budget.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "charts-and-meters"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/hatched-bar.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-forecast-band.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/forecast-band.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "form",
      "type": "registry:ui",
      "title": "Form",
      "description": "react-hook-form (with any resolver, zod here) wired into Field and AsyncButton, with shadcn’s part names (FormField, FormItem, FormLabel, FormControl, FormDescription, FormMessage).",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "form-controls"
      },
      "dependencies": [
        "react-hook-form@^7.89.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-form.json"
      ],
      "files": [
        {
          "path": "src/components/ui/form.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "gauge",
      "type": "registry:ui",
      "title": "Gauge",
      "description": "One bounded score at a glance: a thin half-ring on a scale of ticks, read left to right, the value in its bowl and a word for its band underneath, between the range’s ends (`role=\"meter\"`).",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "data-marks"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-meter.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/gauge.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "gradient-slider",
      "type": "registry:ui",
      "title": "Gradient Slider",
      "description": "A value on a spectrum.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "form-controls"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-gradient-slider.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/gradient-slider.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "hatched-bar",
      "type": "registry:ui",
      "title": "Hatched Bar",
      "description": "Solid for what is settled, hatched for what isn’t: a baseline, a pending or projected amount, a run that missed its gate.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "data-marks"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/hatched-bar.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "histogram-range",
      "type": "registry:ui",
      "title": "Histogram Range",
      "description": "A two-thumb range over the distribution it filters.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "form-controls"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/slider.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-histogram-range.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/histogram-range.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "history-strip",
      "type": "registry:ui",
      "title": "History Strip",
      "description": "Availability a day at a time: one slim cell per day, oldest at the inline start and today at the end (mirrored in RTL).",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "charts-and-meters"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-history-strip.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/history-strip.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "hours-dial",
      "type": "registry:ui",
      "title": "Hours Dial",
      "description": "A stretch of the day on a 24-hour face: midnight at the top, a ruler of quarter-hour ticks all the way round, and two handles on it, a hollow start and a solid end.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "form-controls"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-hours-dial.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/hours-dial.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "hover-card",
      "type": "registry:ui",
      "title": "Hover Card",
      "description": "Base UI preview card: a preview of where a link goes, after resting on it (500ms) or focusing it.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "overlays"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/hover-card.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "image-accordion",
      "type": "registry:ui",
      "title": "Image Accordion",
      "description": "A row or column of pictures where one is open wide and the rest wait as slim strips.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "media"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-image-accordion.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/image-accordion.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "image-compare",
      "type": "registry:ui",
      "title": "Image Compare",
      "description": "Two pictures stacked with a divider between them: `before` shows on the start side (or the top) up to the divider, `after` past it.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "media"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-chevrons-left-right.json",
        "https://www.youj.dev/r/icon-chevrons-up-down.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-image-compare.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/image-compare.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "inline-confirm",
      "type": "registry:ui",
      "title": "Inline Confirm",
      "description": "A button that confirms in its own place instead of opening a dialog.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "actions"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/async-feedback.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/morph-label.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-inline-confirm.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/inline-confirm.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "input-group",
      "type": "registry:ui",
      "title": "Input Group",
      "description": "One bordered frame around a bare text control and its addons (text, icons, keycaps, buttons) on the inline or block edges.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "form-controls"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "class-variance-authority@^0.7.1"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/textarea.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/input-group.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "input-otp",
      "type": "registry:ui",
      "title": "Input OTP",
      "description": "A one-time code field for 2FA and email verification.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "form-controls"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/async-feedback.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/sliding-indicator.json",
        "https://www.youj.dev/r/spinner.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-input-otp.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/input-otp.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "input",
      "type": "registry:ui",
      "title": "Input",
      "description": "Base UI input (a field control, so inside a Field it is labeled, described and validated automatically). 32px on the control scale, 13px text (16px on touch so iOS never zooms).",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "form-controls"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/input.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "inspector-panel",
      "type": "registry:ui",
      "title": "Inspector Panel",
      "description": "One property group of a design tool’s side panel.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "layout"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/checkbox.json",
        "https://www.youj.dev/r/collapsible.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/icon-chevron-down.json",
        "https://www.youj.dev/r/icon-eye.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/icon-trash.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-inspector.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/inspector-panel.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "item-pager",
      "type": "registry:ui",
      "title": "Item Pager",
      "description": "Steps through the records of a list from a detail panel: ↓ opens the next row, ↑ the previous one, and \"5 of 48\" says where you are.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "navigation"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/icon-chevron-down.json",
        "https://www.youj.dev/r/icon-chevron-up.json",
        "https://www.youj.dev/r/kbd.json",
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-item-pager.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/item-pager.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "kbd",
      "type": "registry:ui",
      "title": "Kbd",
      "description": "A keycap: a recessed tint with a hairline and a 1px bottom edge for depth, in 11px medium type on a 20px square minimum.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "display"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/kbd.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "label",
      "type": "registry:ui",
      "title": "Label",
      "description": "A plain `<label>` for use outside a Field (inside one, use FieldLabel, which wires itself).",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "form-controls"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/label.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "lane-meter",
      "type": "registry:ui",
      "title": "Lane Meter",
      "description": "Load across the lanes of a queue or a pipeline as stacked rows of countable cells that share one grid, so lanes compare at a glance: a label, the cells, the value (with a lane’s own capacity muted, “24 / 32”) and an optional action.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "charts-and-meters"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-lane-meter.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/lane-meter.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "level-matrix",
      "type": "registry:ui",
      "title": "Level Matrix",
      "description": "Roles by resources, each cell an access level (none, read, write, admin) drawn as three segments lit to it.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "specialized"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/checkbox.json",
        "https://www.youj.dev/r/collapse.json",
        "https://www.youj.dev/r/icon-lock.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-level-matrix.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/level-matrix.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "limit-meter",
      "type": "registry:ui",
      "title": "Limit Meter",
      "description": "A budget read like an instrument (`role=\"meter\"`): what is left, large, with its decimals quiet; the spent and the limit as a quiet readout under it; and a ruler of minor and major ticks from zero to the limit, with an index caret under it at the spend and named lines for policies such as a freeze.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "charts-and-meters"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-limit-meter.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/limit-meter.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "live-cursors",
      "type": "registry:ui",
      "title": "Live Cursors",
      "description": "Multiplayer presence for a collaborative surface.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "specialized"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-live-cursors.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/live-cursors.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "lollipop-chart",
      "type": "registry:ui",
      "title": "Lollipop Chart",
      "description": "Many items on one value scale, each a dot on a stem from a baseline, in its tone.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "charts-and-meters"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-lollipop-chart.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/lollipop-chart.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "mega-menu",
      "type": "registry:ui",
      "title": "Mega Menu",
      "description": "Multi-column panels for a NavigationMenu: groups of links with an icon tile, a title and a line of description, and an optional featured card at the inline end.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "navigation-and-app-chrome"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/navigation-menu.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/mega-menu.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "menubar",
      "type": "registry:ui",
      "title": "Menubar",
      "description": "A desktop-app menu bar on Base UI Menubar.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "navigation"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/sliding-indicator.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/menubar.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "milestone-ruler",
      "type": "registry:ui",
      "title": "Milestone Ruler",
      "description": "A year (or any span of days) as a ruler of fine ticks, each milestone a pin standing on it: taller when major, solid when done, hollow when upcoming, in the warning tone when at risk.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "timelines-and-planning"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/use-now.json",
        "https://www.youj.dev/r/use-resize-measure.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-milestone-ruler.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/milestone-ruler.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "multi-select",
      "type": "registry:ui",
      "title": "Multi Select",
      "description": "Several values from a searchable, grouped list, composed from InputGroup, Badge chips, Popover and Command checkbox rows.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "pickers-and-inputs"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/command.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-chevron-down.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/popover.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/presentation.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/use-resize-measure.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-button-async.json",
        "https://www.youj.dev/r/youj-labels-multi-select.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/multi-select.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "native-select",
      "type": "registry:ui",
      "title": "Native Select",
      "description": "The browser’s own <select>, dressed as a Youj field: Input’s border, hover and focus ring, the control heights and Select’s chevron.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "form-controls"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-chevron-down.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/native-select.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "navigation-menu",
      "type": "registry:ui",
      "title": "Navigation Menu",
      "description": "Base UI's navigation menu.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "navigation"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "class-variance-authority@^0.7.1"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/collapsible.json",
        "https://www.youj.dev/r/sliding-indicator.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/navigation-menu.tsx",
          "type": "registry:ui"
        },
        {
          "path": "src/components/ui/navigation-menu.variants.ts",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "notification-center",
      "type": "registry:ui",
      "title": "Notification Center",
      "description": "A bell with an unread count that opens your notifications: a Popover on desktop, a bottom Sheet below the md breakpoint.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "navigation-and-app-chrome"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-bell.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-engine.json",
        "https://www.youj.dev/r/icon-inbox.json",
        "https://www.youj.dev/r/popover.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/scroll-area.json",
        "https://www.youj.dev/r/sheet.json",
        "https://www.youj.dev/r/tabs.json",
        "https://www.youj.dev/r/timeline.json",
        "https://www.youj.dev/r/toast.json",
        "https://www.youj.dev/r/use-mobile.json",
        "https://www.youj.dev/r/use-now.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-notification-center.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/notification-center.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "number-input",
      "type": "registry:ui",
      "title": "Number Input",
      "description": "Base UI’s NumberField as an InputGroup with − / + InputGroupButtons: Intl parsing and formatting in the locale (currency, percent, units), min/max, `step` and `largeStep` (Shift+arrows), press-and-hold on the buttons, and no wheel changes unless `allowWheelScrub`.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "form-controls"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-minus.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-number-input.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/number-input.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "pagination",
      "type": "registry:ui",
      "title": "Pagination",
      "description": "shadcn's pagination: a named `nav` of links, the current one marked aria-current=\"page\".",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "navigation"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/icon-chevron-left.json",
        "https://www.youj.dev/r/icon-chevron-right.json",
        "https://www.youj.dev/r/icon-ellipsis.json",
        "https://www.youj.dev/r/sliding-indicator.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-pagination.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/pagination.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "password-input",
      "type": "registry:ui",
      "title": "Password Input",
      "description": "A password field with a reveal toggle, a strength meter and a requirements checklist, composed inside one Field.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "form-controls"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-caps-lock.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-eye.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-password-input.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/password-input.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "phone-input",
      "type": "registry:ui",
      "title": "Phone Input",
      "description": "A phone number in one InputGroup: a country Select (flag, calling code, typeahead by name) and the national number, formatted as you type from a per-country pattern.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "form-controls"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-phone-input.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/phone-input.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "popover",
      "type": "registry:ui",
      "title": "Popover",
      "description": "Base UI popover.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "overlays"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/presentation.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/popover.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "presentation",
      "type": "registry:ui",
      "title": "Presentation",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "overlays"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/presentation.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "progress-list",
      "type": "registry:ui",
      "title": "Progress List",
      "description": "File transfers in flight, one row each: a run of cells that lights as the bytes move, what has moved of the size, the live rate and time left in mono, and pause, resume and cancel per row (Retry on a failed one).",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "specialized"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/collapse.json",
        "https://www.youj.dev/r/icon-alert-triangle.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-file.json",
        "https://www.youj.dev/r/icon-file-code.json",
        "https://www.youj.dev/r/icon-file-image.json",
        "https://www.youj.dev/r/icon-file-text.json",
        "https://www.youj.dev/r/icon-play.json",
        "https://www.youj.dev/r/icon-rotate-ccw.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/segmented-meter.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-progress-list.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/progress-list.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "progress-path",
      "type": "registry:ui",
      "title": "Progress Path",
      "description": "A course as a winding trail of lesson nodes, grouped into sections that each take a chart color and close on a trophy milestone.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "specialized"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-crown.json",
        "https://www.youj.dev/r/icon-lock.json",
        "https://www.youj.dev/r/icon-star.json",
        "https://www.youj.dev/r/icon-trophy.json",
        "https://www.youj.dev/r/share-bar.json",
        "https://www.youj.dev/r/use-resize-measure.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-progress-path.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/progress-path.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "progress",
      "type": "registry:ui",
      "title": "Progress",
      "description": "Base UI progress (role=\"progressbar\" with a formatted aria-valuetext).",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "feedback"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/progress.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "property-list",
      "type": "registry:ui",
      "title": "Property List",
      "description": "A record's properties as rows of icon, label and value: a description list (`dl`, `dt`, `dd`), with a fixed label column and values that truncate.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "data-and-tables"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/icon-pencil.json",
        "https://www.youj.dev/r/progress.json",
        "https://www.youj.dev/r/use-now.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-property-list.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/property-list.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "proposal-card",
      "type": "registry:ui",
      "title": "Proposal Card",
      "description": "A change someone (or an agent) proposes and a person decides on: where it came from, what it is, the options side by side with the proposed one as a dashed accent outline, the impact as figures, and your actions.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "specialized"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/collapse.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-proposal-card.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/proposal-card.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "radar-chart",
      "type": "registry:ui",
      "title": "Radar Chart",
      "description": "Several things scored on the same axes, one filled shape each, so what one has more of than another reads at a glance.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "charts-and-meters"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-radar-chart.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/radar-chart.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "radial-graph",
      "type": "registry:ui",
      "title": "Radial Graph",
      "description": "What one thing reaches, in rings by how many hops away: each branch a wedge, each dot in its kind’s color, and a solid or dashed ring with a matching link for a node’s state, so a path shows at a glance.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "charts-and-meters"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-radial-graph.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/radial-graph.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "radial-menu",
      "type": "registry:ui",
      "title": "Radial Menu",
      "description": "A pie menu: a ring of actions that fans out around the pointer, one icon per circular slot, with a hub that names the highlighted one.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "overlays"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-radial-menu.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/radial-menu.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "radio-group",
      "type": "registry:ui",
      "title": "Radio Group",
      "description": "Base UI radio group: one tab stop, arrow keys move the selection (and wrap), Space selects.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "form-controls"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/radio-group.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "rating",
      "type": "registry:ui",
      "title": "Rating",
      "description": "A rating in stars, or any Youj or lucide-style icon, in whole or half steps.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "form-controls"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-rating.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/rating.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "refill-meter",
      "type": "registry:ui",
      "title": "Refill Meter",
      "description": "A rate limit’s token bucket as cells you can count: one per token (or a share of the capacity), lit while the token is in the bucket.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "specialized"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-refill-meter.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/refill-meter.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "resizable",
      "type": "registry:ui",
      "title": "Resizable",
      "description": "shadcn's resizable on react-resizable-panels 4: horizontal and vertical split groups that nest, with min / max sizes (px, %, rem) and collapsible panels that snap shut past their threshold.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "layout"
      },
      "dependencies": [
        "react-resizable-panels@^4.14.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-grip.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/resizable.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "rollout-ruler",
      "type": "registry:ui",
      "title": "Rollout Ruler",
      "description": "How far a feature has rolled out, on a ruled track cut into its stages (Internal 1%, Beta 5%, 10%, 50%, GA 100% by default), each an equal stretch so the early cohorts get room; the axis says what each gate is worth.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "specialized"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-rollout-ruler.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/rollout-ruler.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "route-map",
      "type": "registry:ui",
      "title": "Route Map",
      "description": "A route on a drawn map with no tiles: abstract land, water, parks and roads in the theme’s tones, and routes as smooth lines in their state: driven, on time, delayed (danger) or proposed (a dotted accent line nobody has accepted yet).",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "specialized"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-route-map.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/route-map.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "score-ring",
      "type": "registry:ui",
      "title": "Score Ring",
      "description": "A score out of a range as a full ring of fine ticks, lit clockwise from the top up to the score, the tick at the score reaching past the rest.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "data-marks"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-score-ring.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/score-ring.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "scroll-area",
      "type": "registry:ui",
      "title": "Scroll Area",
      "description": "Base UI's scroll area: native scrolling (wheel, touch, and the keyboard once the viewport has focus) with thin overlay scrollbars that fade in while you hover or scroll and fade away on the slow token after.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "layout"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/scroll-area.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "scrub-number-field",
      "type": "registry:ui",
      "title": "Scrub Number Field",
      "description": "A compact number you can drag.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "form-controls"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/scrub-number-field.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "seat-map",
      "type": "registry:ui",
      "title": "Seat Map",
      "description": "A venue from above: the stage, then rows of seats bending round it with aisles, the row’s letter at both ends.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "timelines-and-planning"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-seat-map.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/seat-map.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "segmented-control",
      "type": "registry:ui",
      "title": "Segmented Control",
      "description": "One choice out of a few, always made: plain labels on a hairline, with a 2px accent bar that glides to the pressed segment on the smooth spring and retargets mid-flight (`variant=\"pill\"` makes it a recessed track with a raised key).",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "actions"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/toggle-group.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/segmented-control.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "segmented-meter",
      "type": "registry:ui",
      "title": "Segmented Meter",
      "description": "How full a resource is, in cells you can count (`role=\"meter\"`): a label and its value on one line, a row of discrete cells under them, lit from the inline start.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "data-marks"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-meter.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/segmented-meter.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "segmented-ring",
      "type": "registry:ui",
      "title": "Segmented Ring",
      "description": "An interval workout on one dial: every interval an arc as long as it lasts, round the ring clockwise from the top inside a ruler of ten-second ticks.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "specialized"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-segmented-ring.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/segmented-ring.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "select",
      "type": "registry:ui",
      "title": "Select",
      "description": "Base UI select: typeahead, Home/End, and by default the macOS-style popup that lines the selected item up over the trigger.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "form-controls"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-chevron-down.json",
        "https://www.youj.dev/r/icon-chevron-up.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/presentation.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/select.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "separator",
      "type": "registry:ui",
      "title": "Separator",
      "description": "A hairline in the border token with role=\"separator\" and aria-orientation from Base UI.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "layout"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/separator.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "session-timeout",
      "type": "registry:ui",
      "title": "Session Timeout",
      "description": "Warns before an inactive session signs out, for banking, admin and health apps.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "feedback"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert-dialog.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/banner.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-session-timeout.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/session-timeout.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "severity-timeline",
      "type": "registry:ui",
      "title": "Severity Timeline",
      "description": "An incident, event by event (`ol`): each row has its clock time and how long after the start it came, a node on a rail (a dot in its severity’s tone, a diamond for a milestone), a soft SEV chip, the title and the detail.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "timelines-and-planning"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/use-now.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-severity-timeline.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/severity-timeline.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "share-bar",
      "type": "registry:ui",
      "title": "Share Bar",
      "description": "A word-sized share of a whole for a table cell or a list row: a solid bar, or a run of cells (`segments`) for the dense, counted look.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "data-marks"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/share-bar.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "share-dialog",
      "type": "registry:ui",
      "title": "Share Dialog",
      "description": "Share one thing with people and by link, Google-Drive style.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "overlays"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/dialog.json",
        "https://www.youj.dev/r/icon-building.json",
        "https://www.youj.dev/r/icon-file-text.json",
        "https://www.youj.dev/r/icon-globe.json",
        "https://www.youj.dev/r/icon-link.json",
        "https://www.youj.dev/r/icon-lock.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/switch.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-share-dialog.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/share-dialog.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "share-ring",
      "type": "registry:ui",
      "title": "Share Ring",
      "description": "A whole split into its parts, as a dial of cells: a dish’s calories by macro, a budget by category, a day by activity.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "charts-and-meters"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-share-ring.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/share-ring.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "sheet",
      "type": "registry:ui",
      "title": "Sheet",
      "description": "A panel that slides in from an edge: a positioned Base UI Dialog (modal, focus-trapped, Escape and the scrim close it, focus returns to the trigger). motion’s yj-sheet-* slides it fully off its edge, decelerating in on the slow token and accelerating away on the base token; reversing mid-slide continues from where it is.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "overlays"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/dialog.json",
        "https://www.youj.dev/r/presentation.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-sheet.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/sheet.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "sidebar",
      "type": "registry:ui",
      "title": "Sidebar",
      "description": "shadcn's sidebar, re-skinned.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "navigation-and-app-chrome"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "class-variance-authority@^0.7.1"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/icon-sidebar.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/scroll-area.json",
        "https://www.youj.dev/r/separator.json",
        "https://www.youj.dev/r/sheet.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/sliding-indicator.json",
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/use-mobile.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-sidebar.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/sidebar.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "signature-pad",
      "type": "registry:ui",
      "title": "Signature Pad",
      "description": "One self-contained surface to sign on: full-width Draw | Sign by typing tabs on top, the signing area under them, and a footer with Undo and Clear (quiet icon buttons) and Accept.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "pickers-and-inputs"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-eraser.json",
        "https://www.youj.dev/r/icon-undo.json",
        "https://www.youj.dev/r/tabs.json",
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/use-stroke.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-signature-pad.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/signature-pad.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "skeleton",
      "type": "registry:ui",
      "title": "Skeleton",
      "description": "A recessed block with a band of light crossing it on the shimmer loop: three deliberate beats per cycle (cross, then rest), so it reads as a calm pulse rather than a constant wash.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "feedback"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/skeleton.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "slide-to-confirm",
      "type": "registry:ui",
      "title": "Slide To Confirm",
      "description": "A confirmation that takes a deliberate gesture: drag the thumb to the end of the track.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "actions"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/async-feedback.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-chevron-right.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/spinner.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-slide-to-confirm.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/slide-to-confirm.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "slider",
      "type": "registry:ui",
      "title": "Slider",
      "description": "Base UI slider: direct manipulation, so the thumb tracks the pointer 1:1 and keyboard steps land instantly, as on a native range.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "form-controls"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/slider.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "slot-grid",
      "type": "registry:ui",
      "title": "Slot Grid",
      "description": "A week of bookable times you can read at a glance: a column per day, a row per start time, and in each cell a run of pips (one per place, up to eight) lit for the places still free.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "timelines-and-planning"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/sliding-indicator.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/use-resize-measure.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-slot-grid.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/slot-grid.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "sortable-list",
      "type": "registry:ui",
      "title": "Sortable List",
      "description": "A vertical list the user puts in order, on the same motion/react layer as Kanban.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "data-and-tables"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-grip.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-sortable-list.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/sortable-list.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "sparkline",
      "type": "registry:ui",
      "title": "Sparkline",
      "description": "A word-sized trend line: a monotone curve (it never overshoots a point), a wash under it and a dot on the latest value, in plain SVG.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "data-marks"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/sparkline.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "spinner",
      "type": "registry:ui",
      "title": "Spinner",
      "description": "youj's LoaderRingIcon: a constant-rate turn with an arc that breathes on a different period, so the loop never visibly repeats.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "feedback"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-loader-ring.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-spinner.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/spinner.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "stage-rail",
      "type": "registry:ui",
      "title": "Stage Rail",
      "description": "A pipeline run as one segmented rail.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "timelines-and-planning"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/sliding-indicator.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/use-now.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-stage-rail.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/stage-rail.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "stat-card",
      "type": "registry:ui",
      "title": "Stat Card",
      "description": "Analytics tiles built like an instrument readout.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "charts-and-meters"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/content-swap.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/share-bar.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-stat-card.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/stat-card.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "stat-pill",
      "type": "registry:ui",
      "title": "Stat Pill",
      "description": "One live figure in a capsule: an icon in a recessed disc, its name as a mono eyebrow, the value in mono with its unit small and muted, then how it moves, a delta (an arrow and the change, tinted by `better`: a fall in latency is good) or a word-sized trend with a dot on the latest reading.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "capsules"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/capsule.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/sparkline.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-stat-pill.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/stat-pill.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "stepper-nav",
      "type": "registry:ui",
      "title": "Stepper Nav",
      "description": "Step navigation for flows that span pages: Stepper in a named nav landmark, with done steps and the current one as links back to their pages (Stepper's `stepHref`).",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "navigation-and-app-chrome"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/stepper.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-stepper-nav.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/stepper-nav.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "stepper",
      "type": "registry:ui",
      "title": "Stepper",
      "description": "Where you are in a sequence: each step is complete, current, upcoming or in error, and can be optional.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "navigation"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-alert-triangle.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-flag.json",
        "https://www.youj.dev/r/icon-route.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-stepper.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/stepper.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "switch",
      "type": "registry:ui",
      "title": "Switch",
      "description": "Base UI switch (role=\"switch\").",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "form-controls"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/switch.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "table",
      "type": "registry:ui",
      "title": "Table",
      "description": "The plain table parts: header, body, footer, row, head, cell and caption.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "display"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-table.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/table.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "tabs",
      "type": "registry:ui",
      "title": "Tabs",
      "description": "Base UI tabs with a kinetic indicator: one motion SlidingIndicator per list glides to the selected tab on the `smooth` spring (transform-only, retargets mid-glide, re-places without motion on resize, jumps under reduced motion).",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "navigation"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-chevron-left.json",
        "https://www.youj.dev/r/icon-chevron-right.json",
        "https://www.youj.dev/r/sliding-indicator.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/tabs.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "tag-input",
      "type": "registry:ui",
      "title": "Tag Input",
      "description": "Free-form values as Badge chips in an InputGroup.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "form-controls"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/collapse.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-tag-input.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/tag-input.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "textarea",
      "type": "registry:ui",
      "title": "Textarea",
      "description": "A textarea rendered through Base UI's field control, so it is labeled, described and validated exactly like Input.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "form-controls"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/textarea.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "theme-toggle",
      "type": "registry:ui",
      "title": "Theme Toggle",
      "description": "Light or dark for the whole page, through `data-theme` on <html>.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "actions"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/icon-monitor.json",
        "https://www.youj.dev/r/icon-moon.json",
        "https://www.youj.dev/r/icon-sun.json",
        "https://www.youj.dev/r/icon-theme.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-account-menu.json"
      ],
      "files": [
        {
          "path": "src/components/ui/theme-toggle.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "time-lanes",
      "type": "registry:ui",
      "title": "Time Lanes",
      "description": "Who is on call when, as a week of lanes: a lane per person or team in the chart colors, each shift a bar, overrides hatched, a dashed baton where one lane hands off to another, and now as an accent line that glides with the clock.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "specialized"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/popover.json",
        "https://www.youj.dev/r/use-now.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-time-lanes.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/time-lanes.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "time-picker",
      "type": "registry:ui",
      "title": "Time Picker",
      "description": "A time as segments in one InputGroup frame: hours, minutes and (on a 12-hour clock) AM/PM, each a spinbutton.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "form-controls"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-clock.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-time-picker.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/time-picker.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "timeline",
      "type": "registry:ui",
      "title": "Timeline",
      "description": "An activity feed: events grouped by day, newest first, each with a typed mark on a rail (commit, comment, deploy, alert, merge, pull request, or your own), who did it and a relative time that stays true.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "timelines-and-planning"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/collapse.json",
        "https://www.youj.dev/r/collapsible.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-alert-triangle.json",
        "https://www.youj.dev/r/icon-engine.json",
        "https://www.youj.dev/r/icon-git-commit.json",
        "https://www.youj.dev/r/icon-git-merge.json",
        "https://www.youj.dev/r/icon-git-pull-request.json",
        "https://www.youj.dev/r/icon-message.json",
        "https://www.youj.dev/r/icon-rocket.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/use-now.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-timeline.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/timeline.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "toast",
      "type": "registry:ui",
      "title": "Toast",
      "description": "Base UI toasts with motion’s yj-toast stack.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "feedback"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/async-feedback.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/icon-alert-triangle.json",
        "https://www.youj.dev/r/icon-check-circle.json",
        "https://www.youj.dev/r/icon-circle-x.json",
        "https://www.youj.dev/r/icon-info.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/spinner.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-toast.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/toast.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "toggle-group",
      "type": "registry:ui",
      "title": "Toggle Group",
      "description": "Base UI toggle group: one tab stop, arrow keys rove (and wrap), Home/End jump, Space/Enter press.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "actions"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "class-variance-authority@^0.7.1"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/sliding-indicator.json",
        "https://www.youj.dev/r/toggle.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/toggle-group.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "toggle",
      "type": "registry:ui",
      "title": "Toggle",
      "description": "Base UI toggle: a two-state button with aria-pressed.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "actions"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "class-variance-authority@^0.7.1"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/toggle.tsx",
          "type": "registry:ui"
        },
        {
          "path": "src/components/ui/toggle.variants.ts",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "toolbar",
      "type": "registry:ui",
      "title": "Toolbar",
      "description": "Base UI Toolbar: a row of buttons, toggles, links and inputs that is one tab stop, roved with the arrow keys (wrapping at the ends).",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "actions"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "class-variance-authority@^0.7.1"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/toggle.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/toolbar.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "tooltip",
      "type": "registry:ui",
      "title": "Tooltip",
      "description": "Base UI tooltip: a short visual label on hover or keyboard focus.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "overlays"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/tooltip.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "tour",
      "type": "registry:ui",
      "title": "Tour",
      "description": "Guided coach-marks: a dim scrim with a rounded cut-out over one element at a time and a card beside it with the step’s title and text, the count (“2 of 5”, and dots), Back / Next / Done and Skip.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "overlays"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-tour.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/tour.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "track-timeline",
      "type": "registry:ui",
      "title": "Track Timeline",
      "description": "Tracks of clips on a time ruler, to move, trim and snap, with mute, solo and a level strip per track.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "media"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/icon-minus.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/toggle.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/waveform-scrubber.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-track-timeline.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/track-timeline.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "treemap",
      "type": "registry:ui",
      "title": "Treemap",
      "description": "How a whole divides: each part is a cell whose area is its value, laid out squarified so cells stay near square, largest first from the top-start corner (mirrored in RTL).",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "charts-and-meters"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/use-resize-measure.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-treemap.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/treemap.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "typography",
      "type": "registry:ui",
      "title": "Typography",
      "description": "shadcn’s typography set as components: H1–H4, P, Lead, Large, Small, Muted, Blockquote, InlineCode and List, in the long-form voice the docs read in.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "display"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/typography.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "unit-chart",
      "type": "registry:ui",
      "title": "Unit Chart",
      "description": "A count you can see one by one: each column is a bucket and each dot in it one unit (`unit` sets how much a dot counts for), stacked from the baseline over a faint grid of every dot the chart could hold.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "charts-and-meters"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-unit-chart.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/unit-chart.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "waffle-chart",
      "type": "registry:ui",
      "title": "Waffle Chart",
      "description": "A whole in countable cells: each cell is one unit (`unit` sets how much), colored by its part.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "charts-and-meters"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-waffle-chart.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/waffle-chart.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "waveform-scrubber",
      "type": "registry:ui",
      "title": "Waveform Scrubber",
      "description": "Where you are in a recording, drawn as its sound: bars from the loudness samples you pass (no decoding), played in ink and the rest dim, chapter starts as ticks with titles above and a ruler of minutes below.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "media"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-waveform-scrubber.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/waveform-scrubber.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "wheel-picker",
      "type": "registry:ui",
      "title": "Wheel Picker",
      "description": "A drum of values you spin: one or more columns, the chosen row of each in one band across the middle, the rows above and below curving away and fading.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "form-controls"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-wheel-picker.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/wheel-picker.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "wizard",
      "type": "registry:ui",
      "title": "Wizard",
      "description": "A multi-step flow on the Stepper: one step at a time with Back and Continue.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "navigation-and-app-chrome"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/stepper.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-wizard.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/wizard.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "workspace-switcher",
      "type": "registry:ui",
      "title": "Workspace Switcher",
      "description": "Switch between workspaces: a trigger with the current one's logo or initials, and a Popover with a searchable Command list.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "navigation-and-app-chrome"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/command.json",
        "https://www.youj.dev/r/icon-chevrons-up-down.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/popover.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-workspace-switcher.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/workspace-switcher.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "world-clock",
      "type": "registry:ui",
      "title": "World Clock",
      "description": "Several time zones side by side, to find a time that works for everyone.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "timelines-and-planning"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/icon-moon.json",
        "https://www.youj.dev/r/icon-sun.json",
        "https://www.youj.dev/r/morph-label.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/use-now.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-world-clock.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/world-clock.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "audio-recorder",
      "type": "registry:ui",
      "title": "Audio Recorder",
      "description": "Record a voice note or an audio clip, listen back, then keep it or not.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "media"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-mic.json",
        "https://www.youj.dev/r/icon-play.json",
        "https://www.youj.dev/r/icon-trash.json",
        "https://www.youj.dev/r/icon-undo.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-audio-meter.json",
        "https://www.youj.dev/r/waveform-scrubber.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-audio-recorder.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/audio-recorder/audio-recorder-media.ts",
          "type": "registry:ui",
          "target": "components/ui/audio-recorder/audio-recorder-media.ts"
        },
        {
          "path": "src/components/ui/audio-recorder/audio-recorder-wave.tsx",
          "type": "registry:ui",
          "target": "components/ui/audio-recorder/audio-recorder-wave.tsx"
        },
        {
          "path": "src/components/ui/audio-recorder/audio-recorder.tsx",
          "type": "registry:ui",
          "target": "components/ui/audio-recorder/audio-recorder.tsx"
        },
        {
          "path": "src/components/ui/audio-recorder/index.ts",
          "type": "registry:ui",
          "target": "components/ui/audio-recorder/index.ts"
        }
      ]
    },
    {
      "name": "chat",
      "type": "registry:ui",
      "title": "Chat",
      "description": "Composable parts for AI chat and assistant interfaces: a message list that stays with a streaming answer, messages with actions, streamed markdown, a composer, thinking and reasoning, tool calls, citations, suggestions and an empty state.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "chat-and-ai"
      },
      "dependencies": [
        "@base-ui/react@~1.8.0",
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/async-feedback.json",
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/code-block.json",
        "https://www.youj.dev/r/collapse.json",
        "https://www.youj.dev/r/collapsible.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/hover-card.json",
        "https://www.youj.dev/r/icon-alert-triangle.json",
        "https://www.youj.dev/r/icon-arrow-down.json",
        "https://www.youj.dev/r/icon-arrow-up.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-clock.json",
        "https://www.youj.dev/r/icon-copy.json",
        "https://www.youj.dev/r/icon-eye.json",
        "https://www.youj.dev/r/icon-eye-off.json",
        "https://www.youj.dev/r/icon-file-text.json",
        "https://www.youj.dev/r/icon-hourglass.json",
        "https://www.youj.dev/r/icon-lightbulb.json",
        "https://www.youj.dev/r/icon-loader-dots.json",
        "https://www.youj.dev/r/icon-octagon-alert.json",
        "https://www.youj.dev/r/icon-paperclip.json",
        "https://www.youj.dev/r/icon-pencil.json",
        "https://www.youj.dev/r/icon-refresh.json",
        "https://www.youj.dev/r/icon-shield-alert.json",
        "https://www.youj.dev/r/icon-shield-check.json",
        "https://www.youj.dev/r/icon-sparkles.json",
        "https://www.youj.dev/r/icon-swap.json",
        "https://www.youj.dev/r/icon-terminal.json",
        "https://www.youj.dev/r/icon-thumbs-up.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/kbd.json",
        "https://www.youj.dev/r/morph-label.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/scroll-area.json",
        "https://www.youj.dev/r/spinner.json",
        "https://www.youj.dev/r/stagger.json",
        "https://www.youj.dev/r/text-split.json",
        "https://www.youj.dev/r/textarea.json",
        "https://www.youj.dev/r/toggle.json",
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-now.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-chat-citation.json",
        "https://www.youj.dev/r/youj-labels-chat-copy-button.json",
        "https://www.youj.dev/r/youj-labels-chat-markdown.json",
        "https://www.youj.dev/r/youj-labels-chat-message.json",
        "https://www.youj.dev/r/youj-labels-chat-message-list.json",
        "https://www.youj.dev/r/youj-labels-chat-prompt-input.json",
        "https://www.youj.dev/r/youj-labels-chat-suggestions.json",
        "https://www.youj.dev/r/youj-labels-chat-thinking.json",
        "https://www.youj.dev/r/youj-labels-chat-tool-approval.json",
        "https://www.youj.dev/r/youj-labels-chat-tool-call.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/chat/chat-citation.tsx",
          "type": "registry:ui",
          "target": "components/ui/chat/chat-citation.tsx"
        },
        {
          "path": "src/components/ui/chat/chat-context.ts",
          "type": "registry:ui",
          "target": "components/ui/chat/chat-context.ts"
        },
        {
          "path": "src/components/ui/chat/chat-copy-button.tsx",
          "type": "registry:ui",
          "target": "components/ui/chat/chat-copy-button.tsx"
        },
        {
          "path": "src/components/ui/chat/chat-empty-state.tsx",
          "type": "registry:ui",
          "target": "components/ui/chat/chat-empty-state.tsx"
        },
        {
          "path": "src/components/ui/chat/chat-keys.ts",
          "type": "registry:ui",
          "target": "components/ui/chat/chat-keys.ts"
        },
        {
          "path": "src/components/ui/chat/chat-markdown-parse.ts",
          "type": "registry:ui",
          "target": "components/ui/chat/chat-markdown-parse.ts"
        },
        {
          "path": "src/components/ui/chat/chat-markdown.tsx",
          "type": "registry:ui",
          "target": "components/ui/chat/chat-markdown.tsx"
        },
        {
          "path": "src/components/ui/chat/chat-message-list.tsx",
          "type": "registry:ui",
          "target": "components/ui/chat/chat-message-list.tsx"
        },
        {
          "path": "src/components/ui/chat/chat-message.tsx",
          "type": "registry:ui",
          "target": "components/ui/chat/chat-message.tsx"
        },
        {
          "path": "src/components/ui/chat/chat-prompt-input.tsx",
          "type": "registry:ui",
          "target": "components/ui/chat/chat-prompt-input.tsx"
        },
        {
          "path": "src/components/ui/chat/chat-styles.tsx",
          "type": "registry:ui",
          "target": "components/ui/chat/chat-styles.tsx"
        },
        {
          "path": "src/components/ui/chat/chat-suggestions.tsx",
          "type": "registry:ui",
          "target": "components/ui/chat/chat-suggestions.tsx"
        },
        {
          "path": "src/components/ui/chat/chat-text-stream.ts",
          "type": "registry:ui",
          "target": "components/ui/chat/chat-text-stream.ts"
        },
        {
          "path": "src/components/ui/chat/chat-thinking.tsx",
          "type": "registry:ui",
          "target": "components/ui/chat/chat-thinking.tsx"
        },
        {
          "path": "src/components/ui/chat/chat-tool-approval-args.tsx",
          "type": "registry:ui",
          "target": "components/ui/chat/chat-tool-approval-args.tsx"
        },
        {
          "path": "src/components/ui/chat/chat-tool-approval.tsx",
          "type": "registry:ui",
          "target": "components/ui/chat/chat-tool-approval.tsx"
        },
        {
          "path": "src/components/ui/chat/chat-tool-call.tsx",
          "type": "registry:ui",
          "target": "components/ui/chat/chat-tool-call.tsx"
        },
        {
          "path": "src/components/ui/chat/index.ts",
          "type": "registry:ui",
          "target": "components/ui/chat/index.ts"
        }
      ]
    },
    {
      "name": "code-block",
      "type": "registry:ui",
      "title": "Code Block",
      "description": "A block of code on a recessed panel: a header with the file name or language and a copy button, then the code, highlighted as tokens (never HTML) and scrolling sideways instead of wrapping.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "display"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/async-feedback.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/icon-copy.json",
        "https://www.youj.dev/r/scroll-area.json",
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-code-block.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/code-block/code-block-highlight.ts",
          "type": "registry:ui",
          "target": "components/ui/code-block/code-block-highlight.ts"
        },
        {
          "path": "src/components/ui/code-block/code-block.tsx",
          "type": "registry:ui",
          "target": "components/ui/code-block/code-block.tsx"
        },
        {
          "path": "src/components/ui/code-block/index.ts",
          "type": "registry:ui",
          "target": "components/ui/code-block/index.ts"
        }
      ]
    },
    {
      "name": "data-table",
      "type": "registry:ui",
      "title": "Data Table",
      "description": "The parts a data table on TanStack Table v9 is built from: a column header that sorts, pins, moves, hides and resizes its column, a toolbar with a search, filters with counts and their chips, the columns menu, pagination, a checkbox column and the bar a selection raises.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "data-and-tables"
      },
      "dependencies": [
        "@tanstack/react-table@^9.2.4",
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/alert-dialog.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/checkbox.json",
        "https://www.youj.dev/r/collapse.json",
        "https://www.youj.dev/r/command.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/dialog.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-arrow-down.json",
        "https://www.youj.dev/r/icon-arrow-left.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-arrow-up.json",
        "https://www.youj.dev/r/icon-bookmark.json",
        "https://www.youj.dev/r/icon-calendar.json",
        "https://www.youj.dev/r/icon-chevron-down.json",
        "https://www.youj.dev/r/icon-chevron-left.json",
        "https://www.youj.dev/r/icon-chevron-right.json",
        "https://www.youj.dev/r/icon-chevrons-left.json",
        "https://www.youj.dev/r/icon-chevrons-right.json",
        "https://www.youj.dev/r/icon-circle-plus.json",
        "https://www.youj.dev/r/icon-columns.json",
        "https://www.youj.dev/r/icon-eye-off.json",
        "https://www.youj.dev/r/icon-more-horizontal.json",
        "https://www.youj.dev/r/icon-pin.json",
        "https://www.youj.dev/r/icon-pin-off.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/icon-rotate-ccw.json",
        "https://www.youj.dev/r/icon-rows.json",
        "https://www.youj.dev/r/icon-rows-2.json",
        "https://www.youj.dev/r/icon-save.json",
        "https://www.youj.dev/r/icon-search.json",
        "https://www.youj.dev/r/icon-sliders.json",
        "https://www.youj.dev/r/icon-trash.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/kbd.json",
        "https://www.youj.dev/r/popover.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/separator.json",
        "https://www.youj.dev/r/slider.json",
        "https://www.youj.dev/r/toggle-group.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-data-table-bulk-bar.json",
        "https://www.youj.dev/r/youj-labels-data-table-columns.json",
        "https://www.youj.dev/r/youj-labels-data-table-confirm.json",
        "https://www.youj.dev/r/youj-labels-data-table-editor.json",
        "https://www.youj.dev/r/youj-labels-data-table-filters.json",
        "https://www.youj.dev/r/youj-labels-data-table-pagination.json",
        "https://www.youj.dev/r/youj-labels-data-table-toolbar.json",
        "https://www.youj.dev/r/youj-labels-data-table-views.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/data-table/data-table-column-header.tsx",
          "type": "registry:ui",
          "target": "components/ui/data-table/data-table-column-header.tsx"
        },
        {
          "path": "src/components/ui/data-table/data-table-columns.tsx",
          "type": "registry:ui",
          "target": "components/ui/data-table/data-table-columns.tsx"
        },
        {
          "path": "src/components/ui/data-table/data-table-confirm.tsx",
          "type": "registry:ui",
          "target": "components/ui/data-table/data-table-confirm.tsx"
        },
        {
          "path": "src/components/ui/data-table/data-table-csv.ts",
          "type": "registry:ui",
          "target": "components/ui/data-table/data-table-csv.ts"
        },
        {
          "path": "src/components/ui/data-table/data-table-editor.tsx",
          "type": "registry:ui",
          "target": "components/ui/data-table/data-table-editor.tsx"
        },
        {
          "path": "src/components/ui/data-table/data-table-filters.tsx",
          "type": "registry:ui",
          "target": "components/ui/data-table/data-table-filters.tsx"
        },
        {
          "path": "src/components/ui/data-table/data-table-grid-nav.ts",
          "type": "registry:ui",
          "target": "components/ui/data-table/data-table-grid-nav.ts"
        },
        {
          "path": "src/components/ui/data-table/data-table-model.ts",
          "type": "registry:ui",
          "target": "components/ui/data-table/data-table-model.ts"
        },
        {
          "path": "src/components/ui/data-table/data-table-pagination.tsx",
          "type": "registry:ui",
          "target": "components/ui/data-table/data-table-pagination.tsx"
        },
        {
          "path": "src/components/ui/data-table/data-table-selection-bar.tsx",
          "type": "registry:ui",
          "target": "components/ui/data-table/data-table-selection-bar.tsx"
        },
        {
          "path": "src/components/ui/data-table/data-table-toolbar.tsx",
          "type": "registry:ui",
          "target": "components/ui/data-table/data-table-toolbar.tsx"
        },
        {
          "path": "src/components/ui/data-table/data-table-views.tsx",
          "type": "registry:ui",
          "target": "components/ui/data-table/data-table-views.tsx"
        },
        {
          "path": "src/components/ui/data-table/index.ts",
          "type": "registry:ui",
          "target": "components/ui/data-table/index.ts"
        }
      ]
    },
    {
      "name": "diff-viewer",
      "type": "registry:ui",
      "title": "Diff Viewer",
      "description": "The difference between two versions of a file, as code review reads it.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "display"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/async-feedback.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/code-block.json",
        "https://www.youj.dev/r/icon-chevron-down.json",
        "https://www.youj.dev/r/icon-chevron-up.json",
        "https://www.youj.dev/r/icon-chevrons-up-down.json",
        "https://www.youj.dev/r/icon-copy.json",
        "https://www.youj.dev/r/icon-file-code.json",
        "https://www.youj.dev/r/icon-wrap-text.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/toggle.json",
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-diff-viewer.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/diff-viewer/diff-viewer-diff.ts",
          "type": "registry:ui",
          "target": "components/ui/diff-viewer/diff-viewer-diff.ts"
        },
        {
          "path": "src/components/ui/diff-viewer/diff-viewer-rows.tsx",
          "type": "registry:ui",
          "target": "components/ui/diff-viewer/diff-viewer-rows.tsx"
        },
        {
          "path": "src/components/ui/diff-viewer/diff-viewer.tsx",
          "type": "registry:ui",
          "target": "components/ui/diff-viewer/diff-viewer.tsx"
        },
        {
          "path": "src/components/ui/diff-viewer/index.ts",
          "type": "registry:ui",
          "target": "components/ui/diff-viewer/index.ts"
        }
      ]
    },
    {
      "name": "export-dialog",
      "type": "registry:ui",
      "title": "Export Dialog",
      "description": "Choose what leaves and in which shape, then export it.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "overlays"
      },
      "dependencies": [
        "date-fns@^4.4.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/checkbox.json",
        "https://www.youj.dev/r/collapse.json",
        "https://www.youj.dev/r/date-range-picker.json",
        "https://www.youj.dev/r/dialog.json",
        "https://www.youj.dev/r/icon-chevron-down.json",
        "https://www.youj.dev/r/popover.json",
        "https://www.youj.dev/r/radio-group.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/use-now.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-export-dialog.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/export-dialog/export-dialog-columns.tsx",
          "type": "registry:ui",
          "target": "components/ui/export-dialog/export-dialog-columns.tsx"
        },
        {
          "path": "src/components/ui/export-dialog/export-dialog-range.ts",
          "type": "registry:ui",
          "target": "components/ui/export-dialog/export-dialog-range.ts"
        },
        {
          "path": "src/components/ui/export-dialog/export-dialog.tsx",
          "type": "registry:ui",
          "target": "components/ui/export-dialog/export-dialog.tsx"
        },
        {
          "path": "src/components/ui/export-dialog/index.ts",
          "type": "registry:ui",
          "target": "components/ui/export-dialog/index.ts"
        }
      ]
    },
    {
      "name": "filter-builder",
      "type": "registry:ui",
      "title": "Filter Builder",
      "description": "Builds a query of AND/OR groups of typed rules, such as “Stage is not Lost and (Owner is Ada or Amount > 100000)”.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "data-and-tables"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-ellipsis.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/popover.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/sliding-indicator.json",
        "https://www.youj.dev/r/toast.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-filter-builder.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/filter-builder/filter-builder-context.ts",
          "type": "registry:ui",
          "target": "components/ui/filter-builder/filter-builder-context.ts"
        },
        {
          "path": "src/components/ui/filter-builder/filter-builder-group.tsx",
          "type": "registry:ui",
          "target": "components/ui/filter-builder/filter-builder-group.tsx"
        },
        {
          "path": "src/components/ui/filter-builder/filter-builder-model.ts",
          "type": "registry:ui",
          "target": "components/ui/filter-builder/filter-builder-model.ts"
        },
        {
          "path": "src/components/ui/filter-builder/filter-builder-token.tsx",
          "type": "registry:ui",
          "target": "components/ui/filter-builder/filter-builder-token.tsx"
        },
        {
          "path": "src/components/ui/filter-builder/filter-builder-tree.ts",
          "type": "registry:ui",
          "target": "components/ui/filter-builder/filter-builder-tree.ts"
        },
        {
          "path": "src/components/ui/filter-builder/filter-builder-values.tsx",
          "type": "registry:ui",
          "target": "components/ui/filter-builder/filter-builder-values.tsx"
        },
        {
          "path": "src/components/ui/filter-builder/filter-builder.tsx",
          "type": "registry:ui",
          "target": "components/ui/filter-builder/filter-builder.tsx"
        },
        {
          "path": "src/components/ui/filter-builder/index.ts",
          "type": "registry:ui",
          "target": "components/ui/filter-builder/index.ts"
        }
      ]
    },
    {
      "name": "hierarchy-chart",
      "type": "registry:ui",
      "title": "Hierarchy Chart",
      "description": "A hierarchy drawn as a tidy tree (Reingold–Tilford): an org chart, a team of teams, any parent-and-children structure.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "charts-and-meters"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/icon-maximize.json",
        "https://www.youj.dev/r/icon-minus.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-hierarchy-chart.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/hierarchy-chart/hierarchy-chart-layout.ts",
          "type": "registry:ui",
          "target": "components/ui/hierarchy-chart/hierarchy-chart-layout.ts"
        },
        {
          "path": "src/components/ui/hierarchy-chart/hierarchy-chart-node.tsx",
          "type": "registry:ui",
          "target": "components/ui/hierarchy-chart/hierarchy-chart-node.tsx"
        },
        {
          "path": "src/components/ui/hierarchy-chart/hierarchy-chart-view.ts",
          "type": "registry:ui",
          "target": "components/ui/hierarchy-chart/hierarchy-chart-view.ts"
        },
        {
          "path": "src/components/ui/hierarchy-chart/hierarchy-chart.tsx",
          "type": "registry:ui",
          "target": "components/ui/hierarchy-chart/hierarchy-chart.tsx"
        },
        {
          "path": "src/components/ui/hierarchy-chart/index.ts",
          "type": "registry:ui",
          "target": "components/ui/hierarchy-chart/index.ts"
        }
      ]
    },
    {
      "name": "import-mapper",
      "type": "registry:ui",
      "title": "Import Mapper",
      "description": "Bring a CSV into an app in two screens: drop a file, then see each column with the field it goes to, fix only the rows with problems and say what happens to duplicates, and import with a button that states what will happen.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "data-and-tables"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/collapsible.json",
        "https://www.youj.dev/r/file-upload.json",
        "https://www.youj.dev/r/icon-alert-triangle.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-file-text.json",
        "https://www.youj.dev/r/icon-upload.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/native-select.json",
        "https://www.youj.dev/r/progress.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/sheet.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-import-mapper.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/import-mapper/import-mapper-columns.tsx",
          "type": "registry:ui",
          "target": "components/ui/import-mapper/import-mapper-columns.tsx"
        },
        {
          "path": "src/components/ui/import-mapper/import-mapper-csv.ts",
          "type": "registry:ui",
          "target": "components/ui/import-mapper/import-mapper-csv.ts"
        },
        {
          "path": "src/components/ui/import-mapper/import-mapper-data.ts",
          "type": "registry:ui",
          "target": "components/ui/import-mapper/import-mapper-data.ts"
        },
        {
          "path": "src/components/ui/import-mapper/import-mapper-issues.tsx",
          "type": "registry:ui",
          "target": "components/ui/import-mapper/import-mapper-issues.tsx"
        },
        {
          "path": "src/components/ui/import-mapper/import-mapper-map.tsx",
          "type": "registry:ui",
          "target": "components/ui/import-mapper/import-mapper-map.tsx"
        },
        {
          "path": "src/components/ui/import-mapper/import-mapper-model.ts",
          "type": "registry:ui",
          "target": "components/ui/import-mapper/import-mapper-model.ts"
        },
        {
          "path": "src/components/ui/import-mapper/import-mapper-review.tsx",
          "type": "registry:ui",
          "target": "components/ui/import-mapper/import-mapper-review.tsx"
        },
        {
          "path": "src/components/ui/import-mapper/import-mapper-run.tsx",
          "type": "registry:ui",
          "target": "components/ui/import-mapper/import-mapper-run.tsx"
        },
        {
          "path": "src/components/ui/import-mapper/import-mapper-upload.tsx",
          "type": "registry:ui",
          "target": "components/ui/import-mapper/import-mapper-upload.tsx"
        },
        {
          "path": "src/components/ui/import-mapper/import-mapper-use-importer.ts",
          "type": "registry:ui",
          "target": "components/ui/import-mapper/import-mapper-use-importer.ts"
        },
        {
          "path": "src/components/ui/import-mapper/import-mapper.tsx",
          "type": "registry:ui",
          "target": "components/ui/import-mapper/import-mapper.tsx"
        },
        {
          "path": "src/components/ui/import-mapper/index.ts",
          "type": "registry:ui",
          "target": "components/ui/import-mapper/index.ts"
        }
      ]
    },
    {
      "name": "kanban",
      "type": "registry:ui",
      "title": "Kanban",
      "description": "A kanban board composed from Card, Badge, Button, Input and ContextMenu.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "data-and-tables"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/context-menu.json",
        "https://www.youj.dev/r/icon-chevrons-left-right.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/icon-sidebar.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-kanban.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/kanban/index.ts",
          "type": "registry:ui",
          "target": "components/ui/kanban/index.ts"
        },
        {
          "path": "src/components/ui/kanban/kanban-model.ts",
          "type": "registry:ui",
          "target": "components/ui/kanban/kanban-model.ts"
        },
        {
          "path": "src/components/ui/kanban/kanban.tsx",
          "type": "registry:ui",
          "target": "components/ui/kanban/kanban.tsx"
        }
      ]
    },
    {
      "name": "multi-language-input",
      "type": "registry:ui",
      "title": "Multi Language Input",
      "description": "One field for text in many languages, from two locales to forty: the value is `Record<locale, string>` and the control edits one locale at a time, named “Title, German” and marked with its `lang` and `dir`.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "pickers-and-inputs"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/alert-dialog.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-chevron-down.json",
        "https://www.youj.dev/r/icon-copy.json",
        "https://www.youj.dev/r/icon-eraser.json",
        "https://www.youj.dev/r/icon-more-horizontal.json",
        "https://www.youj.dev/r/icon-search.json",
        "https://www.youj.dev/r/icon-sparkles.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/kbd.json",
        "https://www.youj.dev/r/popover.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/sliding-indicator.json",
        "https://www.youj.dev/r/toggle.json",
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-multi-language-input-provider.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/multi-language-input/index.ts",
          "type": "registry:ui",
          "target": "components/ui/multi-language-input/index.ts"
        },
        {
          "path": "src/components/ui/multi-language-input/multi-language-input-locales.ts",
          "type": "registry:ui",
          "target": "components/ui/multi-language-input/multi-language-input-locales.ts"
        },
        {
          "path": "src/components/ui/multi-language-input/multi-language-input-model.ts",
          "type": "registry:ui",
          "target": "components/ui/multi-language-input/multi-language-input-model.ts"
        },
        {
          "path": "src/components/ui/multi-language-input/multi-language-input-picker-list.tsx",
          "type": "registry:ui",
          "target": "components/ui/multi-language-input/multi-language-input-picker-list.tsx"
        },
        {
          "path": "src/components/ui/multi-language-input/multi-language-input-picker.tsx",
          "type": "registry:ui",
          "target": "components/ui/multi-language-input/multi-language-input-picker.tsx"
        },
        {
          "path": "src/components/ui/multi-language-input/multi-language-input-provider.tsx",
          "type": "registry:ui",
          "target": "components/ui/multi-language-input/multi-language-input-provider.tsx"
        },
        {
          "path": "src/components/ui/multi-language-input/multi-language-input-source.tsx",
          "type": "registry:ui",
          "target": "components/ui/multi-language-input/multi-language-input-source.tsx"
        },
        {
          "path": "src/components/ui/multi-language-input/multi-language-input-status.tsx",
          "type": "registry:ui",
          "target": "components/ui/multi-language-input/multi-language-input-status.tsx"
        },
        {
          "path": "src/components/ui/multi-language-input/multi-language-input-switcher.tsx",
          "type": "registry:ui",
          "target": "components/ui/multi-language-input/multi-language-input-switcher.tsx"
        },
        {
          "path": "src/components/ui/multi-language-input/multi-language-input.tsx",
          "type": "registry:ui",
          "target": "components/ui/multi-language-input/multi-language-input.tsx"
        }
      ]
    },
    {
      "name": "tree-view",
      "type": "registry:ui",
      "title": "Tree View",
      "description": "A WAI-ARIA tree with one Tab stop: ↑ ↓ move, → opens or steps in, ← closes or steps out, Home / End, * opens every sibling, typing jumps to a matching name, Enter activates, Space selects or checks, F2 renames, Shift+F10 opens the context menu.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "data-and-tables"
      },
      "dependencies": [
        "@tanstack/react-virtual@^3.14.13"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/checkbox.json",
        "https://www.youj.dev/r/collapse.json",
        "https://www.youj.dev/r/context-menu.json",
        "https://www.youj.dev/r/icon-chevron-right.json",
        "https://www.youj.dev/r/icon-file.json",
        "https://www.youj.dev/r/icon-file-code.json",
        "https://www.youj.dev/r/icon-file-json.json",
        "https://www.youj.dev/r/icon-file-terminal.json",
        "https://www.youj.dev/r/icon-file-text.json",
        "https://www.youj.dev/r/icon-folder.json",
        "https://www.youj.dev/r/icon-image.json",
        "https://www.youj.dev/r/icon-palette.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/spinner.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-tree-view.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/tree-view/index.ts",
          "type": "registry:ui",
          "target": "components/ui/tree-view/index.ts"
        },
        {
          "path": "src/components/ui/tree-view/tree-view-icons.tsx",
          "type": "registry:ui",
          "target": "components/ui/tree-view/tree-view-icons.tsx"
        },
        {
          "path": "src/components/ui/tree-view/tree-view-model.ts",
          "type": "registry:ui",
          "target": "components/ui/tree-view/tree-view-model.ts"
        },
        {
          "path": "src/components/ui/tree-view/tree-view.tsx",
          "type": "registry:ui",
          "target": "components/ui/tree-view/tree-view.tsx"
        }
      ]
    },
    {
      "name": "voice-orb",
      "type": "registry:ui",
      "title": "Voice Orb",
      "description": "A voice agent’s presence: a clean, softly lit sphere in the theme’s accent, from a light tint to a deep shade of it.",
      "meta": {
        "level": "component",
        "complexity": "simple",
        "category": "media"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-audio-meter.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-voice-orb.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/voice-orb/index.ts",
          "type": "registry:ui",
          "target": "components/ui/voice-orb/index.ts"
        },
        {
          "path": "src/components/ui/voice-orb/voice-orb-render.ts",
          "type": "registry:ui",
          "target": "components/ui/voice-orb/voice-orb-render.ts"
        },
        {
          "path": "src/components/ui/voice-orb/voice-orb-rings.ts",
          "type": "registry:ui",
          "target": "components/ui/voice-orb/voice-orb-rings.ts"
        },
        {
          "path": "src/components/ui/voice-orb/voice-orb.glsl.ts",
          "type": "registry:ui",
          "target": "components/ui/voice-orb/voice-orb.glsl.ts"
        },
        {
          "path": "src/components/ui/voice-orb/voice-orb.tsx",
          "type": "registry:ui",
          "target": "components/ui/voice-orb/voice-orb.tsx"
        }
      ]
    },
    {
      "name": "whiteboard",
      "type": "registry:ui",
      "title": "Whiteboard",
      "description": "A whiteboard for sketching and arranging: pen, line, arrow, rectangle, ellipse, text, sticky notes that grow to fit, connectors that re-route when the shapes they join move (straight or elbow, with labels), embeds holding any React node, and comment pins that open your thread in a popover.",
      "meta": {
        "level": "component",
        "complexity": "composite",
        "category": "specialized"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/icon-align-center-horizontal.json",
        "https://www.youj.dev/r/icon-align-center-vertical.json",
        "https://www.youj.dev/r/icon-align-end-horizontal.json",
        "https://www.youj.dev/r/icon-align-end-vertical.json",
        "https://www.youj.dev/r/icon-align-start-horizontal.json",
        "https://www.youj.dev/r/icon-align-start-vertical.json",
        "https://www.youj.dev/r/icon-arrow-up-right.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-circle.json",
        "https://www.youj.dev/r/icon-columns.json",
        "https://www.youj.dev/r/icon-hand.json",
        "https://www.youj.dev/r/icon-keyboard.json",
        "https://www.youj.dev/r/icon-layout-grid.json",
        "https://www.youj.dev/r/icon-map.json",
        "https://www.youj.dev/r/icon-message.json",
        "https://www.youj.dev/r/icon-minus.json",
        "https://www.youj.dev/r/icon-mouse-pointer.json",
        "https://www.youj.dev/r/icon-pencil.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/icon-redo.json",
        "https://www.youj.dev/r/icon-rows.json",
        "https://www.youj.dev/r/icon-spline.json",
        "https://www.youj.dev/r/icon-square.json",
        "https://www.youj.dev/r/icon-sticky-note.json",
        "https://www.youj.dev/r/icon-trash.json",
        "https://www.youj.dev/r/icon-type.json",
        "https://www.youj.dev/r/icon-undo.json",
        "https://www.youj.dev/r/kbd.json",
        "https://www.youj.dev/r/live-cursors.json",
        "https://www.youj.dev/r/popover.json",
        "https://www.youj.dev/r/textarea.json",
        "https://www.youj.dev/r/toggle-group.json",
        "https://www.youj.dev/r/toolbar.json",
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/use-resize-measure.json",
        "https://www.youj.dev/r/use-stroke.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-whiteboard.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/components/ui/whiteboard/index.ts",
          "type": "registry:ui",
          "target": "components/ui/whiteboard/index.ts"
        },
        {
          "path": "src/components/ui/whiteboard/whiteboard-arrange.ts",
          "type": "registry:ui",
          "target": "components/ui/whiteboard/whiteboard-arrange.ts"
        },
        {
          "path": "src/components/ui/whiteboard/whiteboard-model.ts",
          "type": "registry:ui",
          "target": "components/ui/whiteboard/whiteboard-model.ts"
        },
        {
          "path": "src/components/ui/whiteboard/whiteboard-overlay.tsx",
          "type": "registry:ui",
          "target": "components/ui/whiteboard/whiteboard-overlay.tsx"
        },
        {
          "path": "src/components/ui/whiteboard/whiteboard-pins.tsx",
          "type": "registry:ui",
          "target": "components/ui/whiteboard/whiteboard-pins.tsx"
        },
        {
          "path": "src/components/ui/whiteboard/whiteboard-shapes.tsx",
          "type": "registry:ui",
          "target": "components/ui/whiteboard/whiteboard-shapes.tsx"
        },
        {
          "path": "src/components/ui/whiteboard/whiteboard-toolbar.tsx",
          "type": "registry:ui",
          "target": "components/ui/whiteboard/whiteboard-toolbar.tsx"
        },
        {
          "path": "src/components/ui/whiteboard/whiteboard-view.tsx",
          "type": "registry:ui",
          "target": "components/ui/whiteboard/whiteboard-view.tsx"
        },
        {
          "path": "src/components/ui/whiteboard/whiteboard.tsx",
          "type": "registry:ui",
          "target": "components/ui/whiteboard/whiteboard.tsx"
        }
      ]
    },
    {
      "name": "use-announcer",
      "type": "registry:hook",
      "title": "useAnnouncer",
      "description": "A polite live region for changes a screen reader wouldn't otherwise hear (a chip removed, a selection cleared, a tag moved). Render `announcer` once, from the first render, since several screen readers ignore a live region that arrives with its message already inside; then call `announce(text)`. Saying the same thing twice is still announced.",
      "dependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "src/hooks/use-announcer.tsx",
          "type": "registry:hook"
        }
      ]
    },
    {
      "name": "use-audio-meter",
      "type": "registry:hook",
      "title": "Use Audio Meter",
      "description": "Null where Web Audio is missing.",
      "dependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "src/hooks/use-audio-meter.ts",
          "type": "registry:hook"
        }
      ]
    },
    {
      "name": "use-controllable-state",
      "type": "registry:hook",
      "title": "useControllableState",
      "description": "State that is controlled when `value` is defined and the component's own otherwise. The setter only writes the internal copy when uncontrolled; the caller reports the change (onValueChange) itself, with whatever extra arguments it has. `null` is a controlled empty value; `undefined` means uncontrolled.",
      "dependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "src/hooks/use-controllable-state.ts",
          "type": "registry:hook"
        }
      ]
    },
    {
      "name": "use-mobile",
      "type": "registry:hook",
      "title": "useIsMobile",
      "description": "True below the `md` breakpoint. Read synchronously on the client (no desktop-first flash); false on the server.",
      "dependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "src/hooks/use-mobile.ts",
          "type": "registry:hook"
        }
      ]
    },
    {
      "name": "use-now",
      "type": "registry:hook",
      "title": "useNow",
      "description": "The current time in ms, refreshed every `refresh` ms (0: never). It is null on the server and in the hydration render: the server's clock and time zone aren't the browser's, so anything relative to now (\"5 min ago\", \"Today\") or in local time waits for the browser. Components mounted after hydration get the time on their first render. While the tab is hidden it stops ticking, and refreshes as soon as the tab is shown again.",
      "dependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "src/hooks/use-now.ts",
          "type": "registry:hook"
        }
      ]
    },
    {
      "name": "use-resize-measure",
      "type": "registry:hook",
      "title": "useResizeMeasure",
      "description": "Runs `measure` with the element once it is laid out, then again each time its box resizes. Where there is no ResizeObserver (old browsers, some test runners) it measures once. `deps` are the effect's, as in `useLayoutEffect`.",
      "dependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "src/hooks/use-resize-measure.ts",
          "type": "registry:hook"
        }
      ]
    },
    {
      "name": "use-stroke",
      "type": "registry:hook",
      "title": "useStrokeInput",
      "description": "The outline of a stroke of varying width, as a closed polygon.",
      "dependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "src/hooks/use-stroke.ts",
          "type": "registry:hook"
        }
      ]
    },
    {
      "name": "use-visible",
      "type": "registry:hook",
      "title": "useVisible",
      "description": "Whether the element is on screen and its tab is showing. A block's timers and loops (a live clock, a simulated feed) run only then, so one scrolled away or left in a background tab costs nothing.",
      "dependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "src/hooks/use-visible.ts",
          "type": "registry:hook"
        }
      ]
    },
    {
      "name": "activity-comment-thread",
      "type": "registry:block",
      "title": "Activity Comment Thread",
      "description": "The discussion on a record: threads with replies, @mentions with autocomplete, reactions, edit and delete, resolve, and an optimistic composer with markdown-lite and keyboard shortcuts.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "activity-and-conversations"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/alert-dialog.json",
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/avatar-stack.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/collapse.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-at-sign.json",
        "https://www.youj.dev/r/icon-bell.json",
        "https://www.youj.dev/r/icon-bell-off.json",
        "https://www.youj.dev/r/icon-bold.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-chevron-down.json",
        "https://www.youj.dev/r/icon-circle-alert.json",
        "https://www.youj.dev/r/icon-code.json",
        "https://www.youj.dev/r/icon-engine.json",
        "https://www.youj.dev/r/icon-italic.json",
        "https://www.youj.dev/r/icon-link.json",
        "https://www.youj.dev/r/icon-loader-dots.json",
        "https://www.youj.dev/r/icon-message.json",
        "https://www.youj.dev/r/icon-more-horizontal.json",
        "https://www.youj.dev/r/icon-pencil.json",
        "https://www.youj.dev/r/icon-reply.json",
        "https://www.youj.dev/r/icon-smile-plus.json",
        "https://www.youj.dev/r/icon-trash.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/kbd.json",
        "https://www.youj.dev/r/popover.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/toggle.json",
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/use-now.json",
        "https://www.youj.dev/r/use-visible.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/activity/comment-thread.tsx",
          "type": "registry:component",
          "target": "blocks/activity/comment-thread.tsx"
        },
        {
          "path": "src/blocks/activity/comment-thread/comment.tsx",
          "type": "registry:component",
          "target": "blocks/activity/comment-thread/comment.tsx"
        },
        {
          "path": "src/blocks/activity/comment-thread/composer-bar.tsx",
          "type": "registry:component",
          "target": "blocks/activity/comment-thread/composer-bar.tsx"
        },
        {
          "path": "src/blocks/activity/comment-thread/composer.tsx",
          "type": "registry:component",
          "target": "blocks/activity/comment-thread/composer.tsx"
        },
        {
          "path": "src/blocks/activity/comment-thread/context.ts",
          "type": "registry:component",
          "target": "blocks/activity/comment-thread/context.ts"
        },
        {
          "path": "src/blocks/activity/comment-thread/data.ts",
          "type": "registry:component",
          "target": "blocks/activity/comment-thread/data.ts"
        },
        {
          "path": "src/blocks/activity/comment-thread/markdown.tsx",
          "type": "registry:component",
          "target": "blocks/activity/comment-thread/markdown.tsx"
        },
        {
          "path": "src/blocks/activity/comment-thread/mentions.tsx",
          "type": "registry:component",
          "target": "blocks/activity/comment-thread/mentions.tsx"
        },
        {
          "path": "src/blocks/activity/comment-thread/reactions.tsx",
          "type": "registry:component",
          "target": "blocks/activity/comment-thread/reactions.tsx"
        },
        {
          "path": "src/blocks/activity/comment-thread/thread.tsx",
          "type": "registry:component",
          "target": "blocks/activity/comment-thread/thread.tsx"
        },
        {
          "path": "src/blocks/activity/comment-thread/time.ts",
          "type": "registry:component",
          "target": "blocks/activity/comment-thread/time.ts"
        },
        {
          "path": "src/blocks/activity/comment-thread/use-discussion.ts",
          "type": "registry:component",
          "target": "blocks/activity/comment-thread/use-discussion.ts"
        }
      ]
    },
    {
      "name": "activity-doc-comments",
      "type": "registry:block",
      "title": "Activity Doc Comments",
      "description": "A document with comments pinned to its words: highlights in the text and a rail of threads beside them, each level with its words and pushed clear of the others.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "activity-and-conversations"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/activity-comment-thread.json",
        "https://www.youj.dev/r/alert-dialog.json",
        "https://www.youj.dev/r/avatar-stack.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-check-circle.json",
        "https://www.youj.dev/r/icon-circle-alert.json",
        "https://www.youj.dev/r/icon-message-plus.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/toggle.json",
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/use-visible.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/activity/doc-comments.tsx",
          "type": "registry:component",
          "target": "blocks/activity/doc-comments.tsx"
        },
        {
          "path": "src/blocks/activity/doc-comments/cards.tsx",
          "type": "registry:component",
          "target": "blocks/activity/doc-comments/cards.tsx"
        },
        {
          "path": "src/blocks/activity/doc-comments/data.ts",
          "type": "registry:component",
          "target": "blocks/activity/doc-comments/data.ts"
        },
        {
          "path": "src/blocks/activity/doc-comments/document.tsx",
          "type": "registry:component",
          "target": "blocks/activity/doc-comments/document.tsx"
        },
        {
          "path": "src/blocks/activity/doc-comments/header.tsx",
          "type": "registry:component",
          "target": "blocks/activity/doc-comments/header.tsx"
        },
        {
          "path": "src/blocks/activity/doc-comments/layout.ts",
          "type": "registry:component",
          "target": "blocks/activity/doc-comments/layout.ts"
        },
        {
          "path": "src/blocks/activity/doc-comments/rail.tsx",
          "type": "registry:component",
          "target": "blocks/activity/doc-comments/rail.tsx"
        },
        {
          "path": "src/blocks/activity/doc-comments/use-selection.ts",
          "type": "registry:component",
          "target": "blocks/activity/doc-comments/use-selection.ts"
        }
      ]
    },
    {
      "name": "activity-feed",
      "type": "registry:block",
      "title": "Activity Feed",
      "description": "A project’s activity by day: one sentence a row, repeats folded together, filters by kind and person, live arrivals that wait while you read, and older pages on demand.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "activity-and-conversations"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/collapse.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-activity.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-arrow-up.json",
        "https://www.youj.dev/r/icon-circle-alert.json",
        "https://www.youj.dev/r/icon-circle-dot.json",
        "https://www.youj.dev/r/icon-engine.json",
        "https://www.youj.dev/r/icon-file-plus.json",
        "https://www.youj.dev/r/icon-git-commit.json",
        "https://www.youj.dev/r/icon-git-merge.json",
        "https://www.youj.dev/r/icon-message.json",
        "https://www.youj.dev/r/icon-rocket.json",
        "https://www.youj.dev/r/icon-signal.json",
        "https://www.youj.dev/r/icon-star.json",
        "https://www.youj.dev/r/icon-tag.json",
        "https://www.youj.dev/r/icon-user-plus.json",
        "https://www.youj.dev/r/icon-users.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/use-now.json",
        "https://www.youj.dev/r/use-visible.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/activity/feed.tsx",
          "type": "registry:component",
          "target": "blocks/activity/feed.tsx"
        },
        {
          "path": "src/blocks/activity/feed/aggregate.ts",
          "type": "registry:component",
          "target": "blocks/activity/feed/aggregate.ts"
        },
        {
          "path": "src/blocks/activity/feed/data.ts",
          "type": "registry:component",
          "target": "blocks/activity/feed/data.ts"
        },
        {
          "path": "src/blocks/activity/feed/list.tsx",
          "type": "registry:component",
          "target": "blocks/activity/feed/list.tsx"
        },
        {
          "path": "src/blocks/activity/feed/row.tsx",
          "type": "registry:component",
          "target": "blocks/activity/feed/row.tsx"
        },
        {
          "path": "src/blocks/activity/feed/time.ts",
          "type": "registry:component",
          "target": "blocks/activity/feed/time.ts"
        },
        {
          "path": "src/blocks/activity/feed/use-feed.ts",
          "type": "registry:component",
          "target": "blocks/activity/feed/use-feed.ts"
        }
      ]
    },
    {
      "name": "activity-inbox",
      "type": "registry:block",
      "title": "Activity Inbox",
      "description": "A notifications triage panel: threads bundled into one row, approve, decline and reply in place, snooze and done with Undo, and every move a key.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "activity-and-conversations"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/activity-comment-thread.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-alarm-clock.json",
        "https://www.youj.dev/r/icon-at-sign.json",
        "https://www.youj.dev/r/icon-bell.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-check-check.json",
        "https://www.youj.dev/r/icon-circle-alert.json",
        "https://www.youj.dev/r/icon-engine.json",
        "https://www.youj.dev/r/icon-git-pull-request.json",
        "https://www.youj.dev/r/icon-key.json",
        "https://www.youj.dev/r/icon-mail.json",
        "https://www.youj.dev/r/icon-mail-open.json",
        "https://www.youj.dev/r/icon-message.json",
        "https://www.youj.dev/r/icon-reply.json",
        "https://www.youj.dev/r/icon-rocket.json",
        "https://www.youj.dev/r/icon-user-plus.json",
        "https://www.youj.dev/r/illustrations.json",
        "https://www.youj.dev/r/kbd.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/tabs.json",
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/use-visible.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/activity/inbox.tsx",
          "type": "registry:component",
          "target": "blocks/activity/inbox.tsx"
        },
        {
          "path": "src/blocks/activity/inbox/data.ts",
          "type": "registry:component",
          "target": "blocks/activity/inbox/data.ts"
        },
        {
          "path": "src/blocks/activity/inbox/parts.tsx",
          "type": "registry:component",
          "target": "blocks/activity/inbox/parts.tsx"
        },
        {
          "path": "src/blocks/activity/inbox/row.tsx",
          "type": "registry:component",
          "target": "blocks/activity/inbox/row.tsx"
        },
        {
          "path": "src/blocks/activity/inbox/use-inbox.ts",
          "type": "registry:component",
          "target": "blocks/activity/inbox/use-inbox.ts"
        }
      ]
    },
    {
      "name": "activity-version-history",
      "type": "registry:block",
      "title": "Activity Version History",
      "description": "A document’s versions by day beside the document as it was, with what changed marked word by word, changed properties as before → after, named versions and a restore that keeps the history.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "activity-and-conversations"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert-dialog.json",
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-chevron-down.json",
        "https://www.youj.dev/r/icon-chevron-up.json",
        "https://www.youj.dev/r/icon-circle-alert.json",
        "https://www.youj.dev/r/icon-history.json",
        "https://www.youj.dev/r/icon-pencil.json",
        "https://www.youj.dev/r/icon-rotate-ccw.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/label.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/switch.json",
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/use-now.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/activity/version-history.tsx",
          "type": "registry:component",
          "target": "blocks/activity/version-history.tsx"
        },
        {
          "path": "src/blocks/activity/version-history/data.ts",
          "type": "registry:component",
          "target": "blocks/activity/version-history/data.ts"
        },
        {
          "path": "src/blocks/activity/version-history/diff.ts",
          "type": "registry:component",
          "target": "blocks/activity/version-history/diff.ts"
        },
        {
          "path": "src/blocks/activity/version-history/preview.tsx",
          "type": "registry:component",
          "target": "blocks/activity/version-history/preview.tsx"
        },
        {
          "path": "src/blocks/activity/version-history/time.ts",
          "type": "registry:component",
          "target": "blocks/activity/version-history/time.ts"
        },
        {
          "path": "src/blocks/activity/version-history/toolbar.tsx",
          "type": "registry:component",
          "target": "blocks/activity/version-history/toolbar.tsx"
        },
        {
          "path": "src/blocks/activity/version-history/use-versions.ts",
          "type": "registry:component",
          "target": "blocks/activity/version-history/use-versions.ts"
        },
        {
          "path": "src/blocks/activity/version-history/versions.tsx",
          "type": "registry:component",
          "target": "blocks/activity/version-history/versions.tsx"
        }
      ]
    },
    {
      "name": "app-accept-invite",
      "type": "registry:block",
      "title": "App Accept Invite",
      "description": "Help new teammates join your workspace with an invitation page that shows who invited them.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "onboarding-and-auth"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-hourglass.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/password-input.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/tabs.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/accept-invite.tsx",
          "type": "registry:component",
          "target": "blocks/app/accept-invite.tsx"
        },
        {
          "path": "src/blocks/app/accept-invite/data.ts",
          "type": "registry:component",
          "target": "blocks/app/accept-invite/data.ts"
        },
        {
          "path": "src/blocks/app/accept-invite/join-form.tsx",
          "type": "registry:component",
          "target": "blocks/app/accept-invite/join-form.tsx"
        }
      ]
    },
    {
      "name": "app-activity-heatmap",
      "type": "registry:block",
      "title": "App Activity Heatmap",
      "description": "When it happens: a year of days as a grid, weeks across and weekdays down, with the total, daily average, busiest day and streak over it.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "calendars-and-schedules"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/stat-card.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/activity-heatmap.tsx",
          "type": "registry:component",
          "target": "blocks/app/activity-heatmap.tsx"
        },
        {
          "path": "src/blocks/app/activity-heatmap/data.ts",
          "type": "registry:component",
          "target": "blocks/app/activity-heatmap/data.ts"
        },
        {
          "path": "src/blocks/app/activity-heatmap/grid.tsx",
          "type": "registry:component",
          "target": "blocks/app/activity-heatmap/grid.tsx"
        },
        {
          "path": "src/blocks/app/activity-heatmap/legend.tsx",
          "type": "registry:component",
          "target": "blocks/app/activity-heatmap/legend.tsx"
        }
      ]
    },
    {
      "name": "app-ai-workspace",
      "type": "registry:block",
      "title": "App AI Workspace",
      "description": "Ask an AI analyst about your team’s data, with streamed answers that show their reasoning, tool calls and sources.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "workspaces-and-tools",
        "inApp": true
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/app-page.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/chat.json",
        "https://www.youj.dev/r/icon-file-text.json",
        "https://www.youj.dev/r/icon-menu.json",
        "https://www.youj.dev/r/icon-pencil.json",
        "https://www.youj.dev/r/icon-search.json",
        "https://www.youj.dev/r/icon-share.json",
        "https://www.youj.dev/r/icon-sparkles.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/sheet.json",
        "https://www.youj.dev/r/sliding-indicator.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/ai-workspace.tsx",
          "type": "registry:component",
          "target": "blocks/app/ai-workspace.tsx"
        },
        {
          "path": "src/blocks/app/ai-workspace/data.ts",
          "type": "registry:component",
          "target": "blocks/app/ai-workspace/data.ts"
        },
        {
          "path": "src/blocks/app/ai-workspace/sidebar.tsx",
          "type": "registry:component",
          "target": "blocks/app/ai-workspace/sidebar.tsx"
        },
        {
          "path": "src/blocks/app/ai-workspace/thread.tsx",
          "type": "registry:component",
          "target": "blocks/app/ai-workspace/thread.tsx"
        },
        {
          "path": "src/blocks/app/ai-workspace/use-workspace.ts",
          "type": "registry:component",
          "target": "blocks/app/ai-workspace/use-workspace.ts"
        }
      ]
    },
    {
      "name": "app-analytics-overview",
      "type": "registry:block",
      "title": "App Analytics Overview",
      "description": "See how your store did over any date range: headline numbers, a trend against the previous period, channels, categories and top products.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "dashboards",
        "inApp": true
      },
      "dependencies": [
        "recharts@^3.8.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/app-page.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/chart.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/date-range-picker.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-pencil.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/sparkline.json",
        "https://www.youj.dev/r/stat-card.json",
        "https://www.youj.dev/r/table.json",
        "https://www.youj.dev/r/toggle-group.json",
        "https://www.youj.dev/r/treemap.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/use-now.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/analytics-overview.tsx",
          "type": "registry:component",
          "target": "blocks/app/analytics-overview.tsx"
        },
        {
          "path": "src/blocks/app/analytics-overview/channels.tsx",
          "type": "registry:component",
          "target": "blocks/app/analytics-overview/channels.tsx"
        },
        {
          "path": "src/blocks/app/analytics-overview/copy.ts",
          "type": "registry:component",
          "target": "blocks/app/analytics-overview/copy.ts"
        },
        {
          "path": "src/blocks/app/analytics-overview/data.ts",
          "type": "registry:component",
          "target": "blocks/app/analytics-overview/data.ts"
        },
        {
          "path": "src/blocks/app/analytics-overview/kpis.tsx",
          "type": "registry:component",
          "target": "blocks/app/analytics-overview/kpis.tsx"
        },
        {
          "path": "src/blocks/app/analytics-overview/top-products.tsx",
          "type": "registry:component",
          "target": "blocks/app/analytics-overview/top-products.tsx"
        },
        {
          "path": "src/blocks/app/analytics-overview/trend.tsx",
          "type": "registry:component",
          "target": "blocks/app/analytics-overview/trend.tsx"
        }
      ]
    },
    {
      "name": "app-api-keys",
      "type": "registry:block",
      "title": "App API Keys",
      "description": "Manage your API keys in a table with scopes, recent use and a flow for creating new keys.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "settings-and-account",
        "inApp": true
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/alert-dialog.json",
        "https://www.youj.dev/r/app-page.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/dialog.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-copy.json",
        "https://www.youj.dev/r/icon-key.json",
        "https://www.youj.dev/r/icon-more-horizontal.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/icon-refresh.json",
        "https://www.youj.dev/r/icon-shield.json",
        "https://www.youj.dev/r/icon-trash.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/scramble-text.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/sliding-indicator.json",
        "https://www.youj.dev/r/sparkline.json",
        "https://www.youj.dev/r/stat-card.json",
        "https://www.youj.dev/r/table.json",
        "https://www.youj.dev/r/toggle-group.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/api-keys.tsx",
          "type": "registry:component",
          "target": "blocks/app/api-keys.tsx"
        },
        {
          "path": "src/blocks/app/api-keys/create-key-dialog.tsx",
          "type": "registry:component",
          "target": "blocks/app/api-keys/create-key-dialog.tsx"
        },
        {
          "path": "src/blocks/app/api-keys/data.ts",
          "type": "registry:component",
          "target": "blocks/app/api-keys/data.ts"
        },
        {
          "path": "src/blocks/app/api-keys/keys-table.tsx",
          "type": "registry:component",
          "target": "blocks/app/api-keys/keys-table.tsx"
        },
        {
          "path": "src/blocks/app/api-keys/secret-reveal.tsx",
          "type": "registry:component",
          "target": "blocks/app/api-keys/secret-reveal.tsx"
        },
        {
          "path": "src/blocks/app/api-keys/top-bar.tsx",
          "type": "registry:component",
          "target": "blocks/app/api-keys/top-bar.tsx"
        }
      ]
    },
    {
      "name": "app-arc-globe",
      "type": "registry:block",
      "title": "App Arc Globe",
      "description": "Watch what comes in from around the world on a turning dot globe, each event arcing to the place that serves it, with live counts, totals, regions and top places for any way of cutting the figures and any period.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "networks-and-maps"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-play.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/share-bar.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/stat-card.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/arc-globe.tsx",
          "type": "registry:component",
          "target": "blocks/app/arc-globe.tsx"
        },
        {
          "path": "src/blocks/app/arc-globe/controls.tsx",
          "type": "registry:component",
          "target": "blocks/app/arc-globe/controls.tsx"
        },
        {
          "path": "src/blocks/app/arc-globe/data.ts",
          "type": "registry:component",
          "target": "blocks/app/arc-globe/data.ts"
        },
        {
          "path": "src/blocks/app/arc-globe/feed.tsx",
          "type": "registry:component",
          "target": "blocks/app/arc-globe/feed.tsx"
        },
        {
          "path": "src/blocks/app/arc-globe/figures.tsx",
          "type": "registry:component",
          "target": "blocks/app/arc-globe/figures.tsx"
        },
        {
          "path": "src/blocks/app/arc-globe/globe-draw.ts",
          "type": "registry:component",
          "target": "blocks/app/arc-globe/globe-draw.ts"
        },
        {
          "path": "src/blocks/app/arc-globe/globe-scene.ts",
          "type": "registry:component",
          "target": "blocks/app/arc-globe/globe-scene.ts"
        },
        {
          "path": "src/blocks/app/arc-globe/globe.tsx",
          "type": "registry:component",
          "target": "blocks/app/arc-globe/globe.tsx"
        },
        {
          "path": "src/blocks/app/arc-globe/head.tsx",
          "type": "registry:component",
          "target": "blocks/app/arc-globe/head.tsx"
        },
        {
          "path": "src/blocks/app/arc-globe/land.ts",
          "type": "registry:component",
          "target": "blocks/app/arc-globe/land.ts"
        },
        {
          "path": "src/blocks/app/arc-globe/panels.tsx",
          "type": "registry:component",
          "target": "blocks/app/arc-globe/panels.tsx"
        },
        {
          "path": "src/blocks/app/arc-globe/placeholder.tsx",
          "type": "registry:component",
          "target": "blocks/app/arc-globe/placeholder.tsx"
        },
        {
          "path": "src/blocks/app/arc-globe/use-live-visits.ts",
          "type": "registry:component",
          "target": "blocks/app/arc-globe/use-live-visits.ts"
        }
      ]
    },
    {
      "name": "app-audit-log",
      "type": "registry:block",
      "title": "App Audit Log",
      "description": "See who changed what in your workspace with a searchable audit log.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "tables-and-lists"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/code-block.json",
        "https://www.youj.dev/r/data-table.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-key.json",
        "https://www.youj.dev/r/icon-shield-check.json",
        "https://www.youj.dev/r/icon-sparkle.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/sheet.json",
        "https://www.youj.dev/r/tables-data-table.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/audit-log.tsx",
          "type": "registry:component",
          "target": "blocks/app/audit-log.tsx"
        },
        {
          "path": "src/blocks/app/audit-log/columns.tsx",
          "type": "registry:component",
          "target": "blocks/app/audit-log/columns.tsx"
        },
        {
          "path": "src/blocks/app/audit-log/data.ts",
          "type": "registry:component",
          "target": "blocks/app/audit-log/data.ts"
        },
        {
          "path": "src/blocks/app/audit-log/event-sheet.tsx",
          "type": "registry:component",
          "target": "blocks/app/audit-log/event-sheet.tsx"
        }
      ]
    },
    {
      "name": "app-auth-flow",
      "type": "registry:block",
      "title": "App Auth Flow",
      "description": "Run the whole way in as one flow: sign in or create an account, reset a forgotten password, confirm a second step or send a sign-in link, with each step sliding in as the card resizes.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "onboarding-and-auth"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/auth-shell.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-check-circle.json",
        "https://www.youj.dev/r/illustrations.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/auth-flow.tsx",
          "type": "registry:component",
          "target": "blocks/app/auth-flow.tsx"
        },
        {
          "path": "src/blocks/app/auth-flow/data.ts",
          "type": "registry:component",
          "target": "blocks/app/auth-flow/data.ts"
        },
        {
          "path": "src/blocks/app/auth-flow/stage.tsx",
          "type": "registry:component",
          "target": "blocks/app/auth-flow/stage.tsx"
        }
      ]
    },
    {
      "name": "app-billing",
      "type": "registry:block",
      "title": "App Billing",
      "description": "Give your customers a place to manage their plan, payment details and invoices.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "settings-and-account",
        "inApp": true
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/app-page.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/dialog.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-credit-card.json",
        "https://www.youj.dev/r/icon-download.json",
        "https://www.youj.dev/r/icon-lock.json",
        "https://www.youj.dev/r/icon-refresh.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/radio-group.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/table.json",
        "https://www.youj.dev/r/textarea.json",
        "https://www.youj.dev/r/toast.json",
        "https://www.youj.dev/r/toggle-group.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/billing.tsx",
          "type": "registry:component",
          "target": "blocks/app/billing.tsx"
        },
        {
          "path": "src/blocks/app/billing/billing-details.tsx",
          "type": "registry:component",
          "target": "blocks/app/billing/billing-details.tsx"
        },
        {
          "path": "src/blocks/app/billing/change-plan-dialog.tsx",
          "type": "registry:component",
          "target": "blocks/app/billing/change-plan-dialog.tsx"
        },
        {
          "path": "src/blocks/app/billing/data.ts",
          "type": "registry:component",
          "target": "blocks/app/billing/data.ts"
        },
        {
          "path": "src/blocks/app/billing/invoices-table.tsx",
          "type": "registry:component",
          "target": "blocks/app/billing/invoices-table.tsx"
        },
        {
          "path": "src/blocks/app/billing/payment-method.tsx",
          "type": "registry:component",
          "target": "blocks/app/billing/payment-method.tsx"
        },
        {
          "path": "src/blocks/app/billing/plan-card.tsx",
          "type": "registry:component",
          "target": "blocks/app/billing/plan-card.tsx"
        }
      ]
    },
    {
      "name": "app-bin-rack",
      "type": "registry:block",
      "title": "App Bin Rack",
      "description": "See a flow rack’s bins as an isometric drawing colored by part, with low and empty bins marked, a tag for the bin you point at (how many are left and when it runs out), and a switch to auto-call the tugger.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "meters-and-limits"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/iso-scene.json",
        "https://www.youj.dev/r/iso-shapes.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/switch.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/bin-rack.tsx",
          "type": "registry:component",
          "target": "blocks/app/bin-rack.tsx"
        },
        {
          "path": "src/blocks/app/bin-rack/data.ts",
          "type": "registry:component",
          "target": "blocks/app/bin-rack/data.ts"
        },
        {
          "path": "src/blocks/app/bin-rack/model.ts",
          "type": "registry:component",
          "target": "blocks/app/bin-rack/model.ts"
        },
        {
          "path": "src/blocks/app/bin-rack/rack.tsx",
          "type": "registry:component",
          "target": "blocks/app/bin-rack/rack.tsx"
        }
      ]
    },
    {
      "name": "app-breakdown",
      "type": "registry:block",
      "title": "App Breakdown",
      "description": "How a total splits: a ring beside a ranked bar list, the long tail folded into Other.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "rankings-and-breakdowns"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-chevron-right.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/stat-card.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/breakdown.tsx",
          "type": "registry:component",
          "target": "blocks/app/breakdown.tsx"
        },
        {
          "path": "src/blocks/app/breakdown/data.ts",
          "type": "registry:component",
          "target": "blocks/app/breakdown/data.ts"
        },
        {
          "path": "src/blocks/app/breakdown/donut.tsx",
          "type": "registry:component",
          "target": "blocks/app/breakdown/donut.tsx"
        },
        {
          "path": "src/blocks/app/breakdown/list.tsx",
          "type": "registry:component",
          "target": "blocks/app/breakdown/list.tsx"
        },
        {
          "path": "src/blocks/app/breakdown/tree.ts",
          "type": "registry:component",
          "target": "blocks/app/breakdown/tree.ts"
        }
      ]
    },
    {
      "name": "app-case-file",
      "type": "registry:block",
      "title": "App Case File",
      "description": "Work one case from open to closed: its stage on a stepper, the verdict with its confidence and the evidence behind it, and the chain of events step by step with its pace on a ribbon.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "timelines-and-steps"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/severity-timeline.json",
        "https://www.youj.dev/r/share-bar.json",
        "https://www.youj.dev/r/stepper.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/use-now.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/case-file.tsx",
          "type": "registry:component",
          "target": "blocks/app/case-file.tsx"
        },
        {
          "path": "src/blocks/app/case-file/data.ts",
          "type": "registry:component",
          "target": "blocks/app/case-file/data.ts"
        },
        {
          "path": "src/blocks/app/case-file/verdict.tsx",
          "type": "registry:component",
          "target": "blocks/app/case-file/verdict.tsx"
        }
      ]
    },
    {
      "name": "app-cause-log",
      "type": "registry:block",
      "title": "App Cause Log",
      "description": "Read recent events (a plant’s stops, escalated tickets, delayed appointments) as a table you can filter by cause and sort, with a last-24-hours strip per source, and file the ticked entries under a cause in one step.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "tables-and-lists"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/checkbox.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/table.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/cause-log.tsx",
          "type": "registry:component",
          "target": "blocks/app/cause-log.tsx"
        },
        {
          "path": "src/blocks/app/cause-log/data.ts",
          "type": "registry:component",
          "target": "blocks/app/cause-log/data.ts"
        },
        {
          "path": "src/blocks/app/cause-log/entries-table.tsx",
          "type": "registry:component",
          "target": "blocks/app/cause-log/entries-table.tsx"
        },
        {
          "path": "src/blocks/app/cause-log/layout.ts",
          "type": "registry:component",
          "target": "blocks/app/cause-log/layout.ts"
        },
        {
          "path": "src/blocks/app/cause-log/timeline.tsx",
          "type": "registry:component",
          "target": "blocks/app/cause-log/timeline.tsx"
        }
      ]
    },
    {
      "name": "app-cause-rings",
      "type": "registry:block",
      "title": "App Cause Rings",
      "description": "See why something was lost: the total and its change, a two-ring donut (the causes inside, where they came from hatched outside), a legend with each figure and one line on how few causes make up most of it.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "rankings-and-breakdowns"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-sparkle.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/cause-rings.tsx",
          "type": "registry:component",
          "target": "blocks/app/cause-rings.tsx"
        },
        {
          "path": "src/blocks/app/cause-rings/data.ts",
          "type": "registry:component",
          "target": "blocks/app/cause-rings/data.ts"
        },
        {
          "path": "src/blocks/app/cause-rings/donut.tsx",
          "type": "registry:component",
          "target": "blocks/app/cause-rings/donut.tsx"
        },
        {
          "path": "src/blocks/app/cause-rings/geometry.ts",
          "type": "registry:component",
          "target": "blocks/app/cause-rings/geometry.ts"
        }
      ]
    },
    {
      "name": "app-chapter-player",
      "type": "registry:block",
      "title": "App Chapter Player",
      "description": "Explore a player with chapter navigation, speed controls and clip selection.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "specialized"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/collapse.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-file-text.json",
        "https://www.youj.dev/r/icon-more-horizontal.json",
        "https://www.youj.dev/r/icon-play.json",
        "https://www.youj.dev/r/icon-rotate-ccw.json",
        "https://www.youj.dev/r/icon-rotate-cw.json",
        "https://www.youj.dev/r/icon-scissors.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/slider.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/waveform-scrubber.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/chapter-player.tsx",
          "type": "registry:component",
          "target": "blocks/app/chapter-player.tsx"
        },
        {
          "path": "src/blocks/app/chapter-player/chapters.tsx",
          "type": "registry:component",
          "target": "blocks/app/chapter-player/chapters.tsx"
        },
        {
          "path": "src/blocks/app/chapter-player/data.ts",
          "type": "registry:component",
          "target": "blocks/app/chapter-player/data.ts"
        },
        {
          "path": "src/blocks/app/chapter-player/player.tsx",
          "type": "registry:component",
          "target": "blocks/app/chapter-player/player.tsx"
        },
        {
          "path": "src/blocks/app/chapter-player/states.tsx",
          "type": "registry:component",
          "target": "blocks/app/chapter-player/states.tsx"
        },
        {
          "path": "src/blocks/app/chapter-player/use-player.ts",
          "type": "registry:component",
          "target": "blocks/app/chapter-player/use-player.ts"
        }
      ]
    },
    {
      "name": "app-check-gate",
      "type": "registry:block",
      "title": "App Check Gate",
      "description": "Review the checks a candidate needs to pass before it goes through: a mobile build, a loan application or a site inspection.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "timelines-and-steps"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/check-gate.tsx",
          "type": "registry:component",
          "target": "blocks/app/check-gate.tsx"
        },
        {
          "path": "src/blocks/app/check-gate/candidate-history.tsx",
          "type": "registry:component",
          "target": "blocks/app/check-gate/candidate-history.tsx"
        },
        {
          "path": "src/blocks/app/check-gate/data.ts",
          "type": "registry:component",
          "target": "blocks/app/check-gate/data.ts"
        },
        {
          "path": "src/blocks/app/check-gate/group-list.tsx",
          "type": "registry:component",
          "target": "blocks/app/check-gate/group-list.tsx"
        }
      ]
    },
    {
      "name": "app-checklist",
      "type": "registry:block",
      "title": "App Checklist",
      "description": "Guide your users through setup with a checklist that tracks progress and keeps the next step close.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "onboarding-and-states"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/collapse.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-chevron-down.json",
        "https://www.youj.dev/r/icon-git-branch.json",
        "https://www.youj.dev/r/icon-globe.json",
        "https://www.youj.dev/r/icon-minimize.json",
        "https://www.youj.dev/r/icon-party-popper.json",
        "https://www.youj.dev/r/icon-rocket.json",
        "https://www.youj.dev/r/icon-user-plus.json",
        "https://www.youj.dev/r/icon-wand.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/checklist.tsx",
          "type": "registry:component",
          "target": "blocks/app/checklist.tsx"
        },
        {
          "path": "src/blocks/app/checklist/data.tsx",
          "type": "registry:component",
          "target": "blocks/app/checklist/data.tsx"
        },
        {
          "path": "src/blocks/app/checklist/step-row.tsx",
          "type": "registry:component",
          "target": "blocks/app/checklist/step-row.tsx"
        }
      ]
    },
    {
      "name": "app-chip-filters",
      "type": "registry:block",
      "title": "App Chip Filters",
      "description": "Narrow a search with filters you can type, paste or edit as chips: a range with a histogram and a checklist of groups, each rewriting the other’s chip.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "forms-and-inputs"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/checkbox.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/filter-chips.json",
        "https://www.youj.dev/r/histogram-range.json",
        "https://www.youj.dev/r/icon-copy.json",
        "https://www.youj.dev/r/icon-more-horizontal.json",
        "https://www.youj.dev/r/icon-rotate-ccw.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/chip-filters.tsx",
          "type": "registry:component",
          "target": "blocks/app/chip-filters.tsx"
        },
        {
          "path": "src/blocks/app/chip-filters/choice-list.tsx",
          "type": "registry:component",
          "target": "blocks/app/chip-filters/choice-list.tsx"
        },
        {
          "path": "src/blocks/app/chip-filters/data.ts",
          "type": "registry:component",
          "target": "blocks/app/chip-filters/data.ts"
        },
        {
          "path": "src/blocks/app/chip-filters/section.tsx",
          "type": "registry:component",
          "target": "blocks/app/chip-filters/section.tsx"
        }
      ]
    },
    {
      "name": "app-collaborative-canvas",
      "type": "registry:block",
      "title": "App Collaborative Canvas",
      "description": "A team’s board: breadcrumbs, who is here and Share over a Whiteboard with a live sign-ups chart and an activation card among sticky notes and connectors, two people’s cursors moving with the board, and comment pins that open a thread to answer and resolve.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "specialized",
        "inApp": true
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/activity-comment-thread.json",
        "https://www.youj.dev/r/app-daily-bars.json",
        "https://www.youj.dev/r/app-page.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/breadcrumb.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-link.json",
        "https://www.youj.dev/r/live-cursors.json",
        "https://www.youj.dev/r/sparkline.json",
        "https://www.youj.dev/r/stat-card.json",
        "https://www.youj.dev/r/whiteboard.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/collaborative-canvas.tsx",
          "type": "registry:component",
          "target": "blocks/app/collaborative-canvas.tsx"
        },
        {
          "path": "src/blocks/app/collaborative-canvas/data.ts",
          "type": "registry:component",
          "target": "blocks/app/collaborative-canvas/data.ts"
        },
        {
          "path": "src/blocks/app/collaborative-canvas/header.tsx",
          "type": "registry:component",
          "target": "blocks/app/collaborative-canvas/header.tsx"
        }
      ]
    },
    {
      "name": "app-compare-items",
      "type": "registry:block",
      "title": "App Compare Items",
      "description": "Two to four things side by side: a picker heads each column, a radar shows where each is strong, and an overview lines every spec up by column.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "trends-and-comparisons"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/radar-chart.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/switch.json",
        "https://www.youj.dev/r/table.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/compare-items.tsx",
          "type": "registry:component",
          "target": "blocks/app/compare-items.tsx"
        },
        {
          "path": "src/blocks/app/compare-items/data.ts",
          "type": "registry:component",
          "target": "blocks/app/compare-items/data.ts"
        },
        {
          "path": "src/blocks/app/compare-items/model.ts",
          "type": "registry:component",
          "target": "blocks/app/compare-items/model.ts"
        },
        {
          "path": "src/blocks/app/compare-items/specs-table.tsx",
          "type": "registry:component",
          "target": "blocks/app/compare-items/specs-table.tsx"
        }
      ]
    },
    {
      "name": "app-compound-projection",
      "type": "registry:block",
      "title": "App Compound Projection",
      "description": "See what a steady addition grows into: a monthly amount, a number of years and a yearly rate drive rising bars and the total at the end.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "trends-and-comparisons"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/capsule-stepper.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/label.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/slider.json",
        "https://www.youj.dev/r/stat-card.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-growth-forecast.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/compound-projection.tsx",
          "type": "registry:component",
          "target": "blocks/app/compound-projection.tsx"
        },
        {
          "path": "src/blocks/app/compound-projection/bars.tsx",
          "type": "registry:component",
          "target": "blocks/app/compound-projection/bars.tsx"
        },
        {
          "path": "src/blocks/app/compound-projection/data.ts",
          "type": "registry:component",
          "target": "blocks/app/compound-projection/data.ts"
        },
        {
          "path": "src/blocks/app/compound-projection/project.ts",
          "type": "registry:component",
          "target": "blocks/app/compound-projection/project.ts"
        }
      ]
    },
    {
      "name": "app-connect-sources",
      "type": "registry:block",
      "title": "App Connect Sources",
      "description": "Plug your sources in during setup: a power strip shows which are connected, each tile shows a source’s day and what it brings, and a meter sums the coverage before you continue.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "onboarding-and-states"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/iso-scene.json",
        "https://www.youj.dev/r/iso-shapes.json",
        "https://www.youj.dev/r/share-bar.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/connect-sources.tsx",
          "type": "registry:component",
          "target": "blocks/app/connect-sources.tsx"
        },
        {
          "path": "src/blocks/app/connect-sources/data.ts",
          "type": "registry:component",
          "target": "blocks/app/connect-sources/data.ts"
        },
        {
          "path": "src/blocks/app/connect-sources/strip.tsx",
          "type": "registry:component",
          "target": "blocks/app/connect-sources/strip.tsx"
        },
        {
          "path": "src/blocks/app/connect-sources/tile.tsx",
          "type": "registry:component",
          "target": "blocks/app/connect-sources/tile.tsx"
        }
      ]
    },
    {
      "name": "app-coverage-grid",
      "type": "registry:block",
      "title": "App Coverage Grid",
      "description": "Find where coverage is thin: rows by columns, each cell filled by how deep the coverage goes and hatched where there is none.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "trends-and-comparisons"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/coverage-matrix.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-sparkle.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/coverage-grid.tsx",
          "type": "registry:component",
          "target": "blocks/app/coverage-grid.tsx"
        },
        {
          "path": "src/blocks/app/coverage-grid/data.ts",
          "type": "registry:component",
          "target": "blocks/app/coverage-grid/data.ts"
        }
      ]
    },
    {
      "name": "app-create-workspace",
      "type": "registry:block",
      "title": "App Create Workspace",
      "description": "Walk your users through creating a workspace, choosing its address and inviting their team.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "onboarding-and-auth"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/avatar-upload.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-alert-triangle.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-check-circle.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/morph-label.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/spinner.json",
        "https://www.youj.dev/r/tag-input.json",
        "https://www.youj.dev/r/wizard.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/create-workspace.tsx",
          "type": "registry:component",
          "target": "blocks/app/create-workspace.tsx"
        },
        {
          "path": "src/blocks/app/create-workspace/data.ts",
          "type": "registry:component",
          "target": "blocks/app/create-workspace/data.ts"
        },
        {
          "path": "src/blocks/app/create-workspace/slug-field.tsx",
          "type": "registry:component",
          "target": "blocks/app/create-workspace/slug-field.tsx"
        }
      ]
    },
    {
      "name": "app-curve-window",
      "type": "registry:block",
      "title": "App Curve Window",
      "description": "Check a station’s tightening bolt by bolt: the torque against angle of the last parts against the pass window, the last one highlighted, and a callout on any part that failed.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "trends-and-comparisons"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/curve-window.tsx",
          "type": "registry:component",
          "target": "blocks/app/curve-window.tsx"
        },
        {
          "path": "src/blocks/app/curve-window/chart.tsx",
          "type": "registry:component",
          "target": "blocks/app/curve-window/chart.tsx"
        },
        {
          "path": "src/blocks/app/curve-window/data.ts",
          "type": "registry:component",
          "target": "blocks/app/curve-window/data.ts"
        },
        {
          "path": "src/blocks/app/curve-window/geometry.ts",
          "type": "registry:component",
          "target": "blocks/app/curve-window/geometry.ts"
        }
      ]
    },
    {
      "name": "app-customers",
      "type": "registry:block",
      "title": "App Customers",
      "description": "Browse every customer account with health, revenue, seats, usage trends and owners in one grid, then assign, tag or archive them in bulk.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "data-and-lists",
        "inApp": true
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/app-page.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/icon-archive.json",
        "https://www.youj.dev/r/icon-arrow-up-right.json",
        "https://www.youj.dev/r/icon-download.json",
        "https://www.youj.dev/r/icon-mail.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/icon-tag.json",
        "https://www.youj.dev/r/icon-upload.json",
        "https://www.youj.dev/r/icon-user-plus.json",
        "https://www.youj.dev/r/icon-users.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/sparkline.json",
        "https://www.youj.dev/r/stat-card.json",
        "https://www.youj.dev/r/tables-data-grid.json",
        "https://www.youj.dev/r/toast.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/customers.tsx",
          "type": "registry:component",
          "target": "blocks/app/customers.tsx"
        },
        {
          "path": "src/blocks/app/customers/columns.tsx",
          "type": "registry:component",
          "target": "blocks/app/customers/columns.tsx"
        },
        {
          "path": "src/blocks/app/customers/data.ts",
          "type": "registry:component",
          "target": "blocks/app/customers/data.ts"
        },
        {
          "path": "src/blocks/app/customers/detail.tsx",
          "type": "registry:component",
          "target": "blocks/app/customers/detail.tsx"
        },
        {
          "path": "src/blocks/app/customers/stats.tsx",
          "type": "registry:component",
          "target": "blocks/app/customers/stats.tsx"
        }
      ]
    },
    {
      "name": "app-daily-bars",
      "type": "registry:block",
      "title": "App Daily Bars",
      "description": "A period read day by day: the total with its change, a bar per day with the busiest lit, the average as a dashed line, notes as callouts and the top, average and quietest days underneath.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "trends-and-comparisons"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/stat-card.json",
        "https://www.youj.dev/r/use-resize-measure.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/daily-bars.tsx",
          "type": "registry:component",
          "target": "blocks/app/daily-bars.tsx"
        },
        {
          "path": "src/blocks/app/daily-bars/data.ts",
          "type": "registry:component",
          "target": "blocks/app/daily-bars/data.ts"
        },
        {
          "path": "src/blocks/app/daily-bars/plot.tsx",
          "type": "registry:component",
          "target": "blocks/app/daily-bars/plot.tsx"
        },
        {
          "path": "src/blocks/app/daily-bars/stats.ts",
          "type": "registry:component",
          "target": "blocks/app/daily-bars/stats.ts"
        }
      ]
    },
    {
      "name": "app-day-schedule",
      "type": "registry:block",
      "title": "App Day Schedule",
      "description": "See when things happen throughout the day and which is coming next: a 24-hour ring with each schedule on its own track, collisions drawn as warning zones, and the schedules listed below with a switch to pause each.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "calendars-and-schedules"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/day-ring.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-more-horizontal.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/switch.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-now.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/day-schedule.tsx",
          "type": "registry:component",
          "target": "blocks/app/day-schedule.tsx"
        },
        {
          "path": "src/blocks/app/day-schedule/cron.ts",
          "type": "registry:component",
          "target": "blocks/app/day-schedule/cron.ts"
        },
        {
          "path": "src/blocks/app/day-schedule/data.ts",
          "type": "registry:component",
          "target": "blocks/app/day-schedule/data.ts"
        },
        {
          "path": "src/blocks/app/day-schedule/job-list.tsx",
          "type": "registry:component",
          "target": "blocks/app/day-schedule/job-list.tsx"
        },
        {
          "path": "src/blocks/app/day-schedule/placeholder.tsx",
          "type": "registry:component",
          "target": "blocks/app/day-schedule/placeholder.tsx"
        }
      ]
    },
    {
      "name": "app-device-controls",
      "type": "registry:block",
      "title": "App Device Controls",
      "description": "Keep an eye on a set of rooms with their temperatures, light controls and a thermostat dial: a home, an office floor, a greenhouse.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "forms-and-inputs"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/dial.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-droplet.json",
        "https://www.youj.dev/r/icon-flame.json",
        "https://www.youj.dev/r/icon-lightbulb.json",
        "https://www.youj.dev/r/icon-more-horizontal.json",
        "https://www.youj.dev/r/icon-snowflake.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/segmented-meter.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/switch.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/device-controls.tsx",
          "type": "registry:component",
          "target": "blocks/app/device-controls.tsx"
        },
        {
          "path": "src/blocks/app/device-controls/data.ts",
          "type": "registry:component",
          "target": "blocks/app/device-controls/data.ts"
        },
        {
          "path": "src/blocks/app/device-controls/room-tile.tsx",
          "type": "registry:component",
          "target": "blocks/app/device-controls/room-tile.tsx"
        },
        {
          "path": "src/blocks/app/device-controls/thermostat-card.tsx",
          "type": "registry:component",
          "target": "blocks/app/device-controls/thermostat-card.tsx"
        }
      ]
    },
    {
      "name": "app-dispatch-board",
      "type": "registry:block",
      "title": "App Dispatch Board",
      "description": "Run a freight dispatch board: a queue of loads, the selected one on a route map with a reroute to approve or compare, every driver’s day as lanes with proposed runs dashed, and the dispatch agent’s proposals.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "workspaces-and-tools"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/app-page.json",
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/icon-alert-triangle.json",
        "https://www.youj.dev/r/icon-calendar.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-check-circle.json",
        "https://www.youj.dev/r/icon-clock.json",
        "https://www.youj.dev/r/icon-engine.json",
        "https://www.youj.dev/r/icon-hammer.json",
        "https://www.youj.dev/r/icon-leaf.json",
        "https://www.youj.dev/r/icon-lock.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/icon-shopping-cart.json",
        "https://www.youj.dev/r/icon-sparkles.json",
        "https://www.youj.dev/r/icon-store.json",
        "https://www.youj.dev/r/icon-truck.json",
        "https://www.youj.dev/r/icon-waves.json",
        "https://www.youj.dev/r/popover.json",
        "https://www.youj.dev/r/proposal-card.json",
        "https://www.youj.dev/r/route-map.json",
        "https://www.youj.dev/r/stat-card.json",
        "https://www.youj.dev/r/time-lanes.json",
        "https://www.youj.dev/r/toast.json",
        "https://www.youj.dev/r/toggle-group.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/dispatch-board.tsx",
          "type": "registry:component",
          "target": "blocks/app/dispatch-board.tsx"
        },
        {
          "path": "src/blocks/app/dispatch-board/components/board.tsx",
          "type": "registry:component",
          "target": "blocks/app/dispatch-board/components/board.tsx"
        },
        {
          "path": "src/blocks/app/dispatch-board/components/decisions.tsx",
          "type": "registry:component",
          "target": "blocks/app/dispatch-board/components/decisions.tsx"
        },
        {
          "path": "src/blocks/app/dispatch-board/components/dispatch-map.tsx",
          "type": "registry:component",
          "target": "blocks/app/dispatch-board/components/dispatch-map.tsx"
        },
        {
          "path": "src/blocks/app/dispatch-board/components/driver-timeline.tsx",
          "type": "registry:component",
          "target": "blocks/app/dispatch-board/components/driver-timeline.tsx"
        },
        {
          "path": "src/blocks/app/dispatch-board/components/kpi-strip.tsx",
          "type": "registry:component",
          "target": "blocks/app/dispatch-board/components/kpi-strip.tsx"
        },
        {
          "path": "src/blocks/app/dispatch-board/components/queue.tsx",
          "type": "registry:component",
          "target": "blocks/app/dispatch-board/components/queue.tsx"
        },
        {
          "path": "src/blocks/app/dispatch-board/data.ts",
          "type": "registry:component",
          "target": "blocks/app/dispatch-board/data.ts"
        },
        {
          "path": "src/blocks/app/dispatch-board/model.ts",
          "type": "registry:component",
          "target": "blocks/app/dispatch-board/model.ts"
        },
        {
          "path": "src/blocks/app/dispatch-board/use-dispatch.ts",
          "type": "registry:component",
          "target": "blocks/app/dispatch-board/use-dispatch.ts"
        }
      ]
    },
    {
      "name": "app-drift-histogram",
      "type": "registry:block",
      "title": "App Drift Histogram",
      "description": "See whether a hole is drifting from nominal: the offset of the recent parts and the process capability, a 3D histogram of where holes landed (older, recent, out of tolerance) with a drift arrow, and the tool offset that would bring them back, with Apply.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "trends-and-comparisons"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/iso-scene.json",
        "https://www.youj.dev/r/iso-shapes.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/drift-histogram.tsx",
          "type": "registry:component",
          "target": "blocks/app/drift-histogram.tsx"
        },
        {
          "path": "src/blocks/app/drift-histogram/data.ts",
          "type": "registry:component",
          "target": "blocks/app/drift-histogram/data.ts"
        },
        {
          "path": "src/blocks/app/drift-histogram/plate.tsx",
          "type": "registry:component",
          "target": "blocks/app/drift-histogram/plate.tsx"
        },
        {
          "path": "src/blocks/app/drift-histogram/stats.ts",
          "type": "registry:component",
          "target": "blocks/app/drift-histogram/stats.ts"
        }
      ]
    },
    {
      "name": "app-effects-inspector",
      "type": "registry:block",
      "title": "App Effects Inspector",
      "description": "A design tool’s effects panel with the thing it styles beside it.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "forms-and-inputs"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/color-opacity-field.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/icon-grip.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/icon-ruler.json",
        "https://www.youj.dev/r/icon-sun.json",
        "https://www.youj.dev/r/inspector-panel.json",
        "https://www.youj.dev/r/scrub-number-field.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/effects-inspector.tsx",
          "type": "registry:component",
          "target": "blocks/app/effects-inspector.tsx"
        },
        {
          "path": "src/blocks/app/effects-inspector/data.ts",
          "type": "registry:component",
          "target": "blocks/app/effects-inspector/data.ts"
        },
        {
          "path": "src/blocks/app/effects-inspector/panels.tsx",
          "type": "registry:component",
          "target": "blocks/app/effects-inspector/panels.tsx"
        },
        {
          "path": "src/blocks/app/effects-inspector/preview.tsx",
          "type": "registry:component",
          "target": "blocks/app/effects-inspector/preview.tsx"
        }
      ]
    },
    {
      "name": "app-empty-states",
      "type": "registry:block",
      "title": "App Empty States",
      "description": "Help your users take the next step when a page has no content, no results or no connection.",
      "meta": {
        "kind": "fragment",
        "level": "card",
        "category": "onboarding-and-states"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-folder.json",
        "https://www.youj.dev/r/icon-git-branch.json",
        "https://www.youj.dev/r/icon-lock.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/icon-search.json",
        "https://www.youj.dev/r/icon-wifi.json",
        "https://www.youj.dev/r/illustrations.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/empty-states.tsx",
          "type": "registry:component",
          "target": "blocks/app/empty-states.tsx"
        }
      ]
    },
    {
      "name": "app-envelopes",
      "type": "registry:block",
      "title": "App Envelopes",
      "description": "Plan spending with envelopes you can move between as your needs change: a household’s dollars, a team’s hours, a cloud account’s credits.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "meters-and-limits"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/allocation-meter.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-car.json",
        "https://www.youj.dev/r/icon-coffee.json",
        "https://www.youj.dev/r/icon-gift.json",
        "https://www.youj.dev/r/icon-more-horizontal.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/icon-shopping-cart.json",
        "https://www.youj.dev/r/icon-ticket.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/envelopes.tsx",
          "type": "registry:component",
          "target": "blocks/app/envelopes.tsx"
        },
        {
          "path": "src/blocks/app/envelopes/data.tsx",
          "type": "registry:component",
          "target": "blocks/app/envelopes/data.tsx"
        },
        {
          "path": "src/blocks/app/envelopes/entries.tsx",
          "type": "registry:component",
          "target": "blocks/app/envelopes/entries.tsx"
        }
      ]
    },
    {
      "name": "app-error",
      "type": "registry:block",
      "title": "App Error",
      "description": "Give your users a way forward when your app cannot load a page, beside a miniature that plays what is happening.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "marketing-and-status"
      },
      "dependencies": [
        "@youj/miniatures@^0.1.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/countdown.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-circle-dashed.json",
        "https://www.youj.dev/r/icon-copy.json",
        "https://www.youj.dev/r/icon-external-link.json",
        "https://www.youj.dev/r/icon-loader-ring.json",
        "https://www.youj.dev/r/icon-refresh.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/progress.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/stagger.json",
        "https://www.youj.dev/r/text-split.json",
        "https://www.youj.dev/r/use-now.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/error.tsx",
          "type": "registry:component",
          "target": "blocks/app/error.tsx"
        },
        {
          "path": "src/blocks/app/error/art.tsx",
          "type": "registry:component",
          "target": "blocks/app/error/art.tsx"
        },
        {
          "path": "src/blocks/app/error/data.ts",
          "type": "registry:component",
          "target": "blocks/app/error/data.ts"
        },
        {
          "path": "src/blocks/app/error/drone-dock.tsx",
          "type": "registry:component",
          "target": "blocks/app/error/drone-dock.tsx"
        },
        {
          "path": "src/blocks/app/error/launch.tsx",
          "type": "registry:component",
          "target": "blocks/app/error/launch.tsx"
        },
        {
          "path": "src/blocks/app/error/mainframe.tsx",
          "type": "registry:component",
          "target": "blocks/app/error/mainframe.tsx"
        },
        {
          "path": "src/blocks/app/error/maintenance.tsx",
          "type": "registry:component",
          "target": "blocks/app/error/maintenance.tsx"
        },
        {
          "path": "src/blocks/app/error/repair-bench.tsx",
          "type": "registry:component",
          "target": "blocks/app/error/repair-bench.tsx"
        },
        {
          "path": "src/blocks/app/error/server-error.tsx",
          "type": "registry:component",
          "target": "blocks/app/error/server-error.tsx"
        }
      ]
    },
    {
      "name": "app-estimate-builder",
      "type": "registry:block",
      "title": "App Estimate Builder",
      "description": "Estimate what anything priced by the amount will cost, from usage pricing to a catering or moving quote: the single-period or twelve-period total with its all-in unit price, a bar and key that split it by line, and a ruler per line in its color with its cost and unit price.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "rankings-and-breakdowns"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/breakdown-list.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/share-bar.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/slider.json",
        "https://www.youj.dev/r/stat-card.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/estimate-builder.tsx",
          "type": "registry:component",
          "target": "blocks/app/estimate-builder.tsx"
        },
        {
          "path": "src/blocks/app/estimate-builder/data.ts",
          "type": "registry:component",
          "target": "blocks/app/estimate-builder/data.ts"
        },
        {
          "path": "src/blocks/app/estimate-builder/usage.tsx",
          "type": "registry:component",
          "target": "blocks/app/estimate-builder/usage.tsx"
        }
      ]
    },
    {
      "name": "app-event-timeline",
      "type": "registry:block",
      "title": "App Event Timeline",
      "description": "Follow an incident from first report to resolution with affected services and key milestones in one timeline.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "timelines-and-steps"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/icon-more-horizontal.json",
        "https://www.youj.dev/r/severity-timeline.json",
        "https://www.youj.dev/r/share-bar.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/use-now.json",
        "https://www.youj.dev/r/use-visible.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/event-timeline.tsx",
          "type": "registry:component",
          "target": "blocks/app/event-timeline.tsx"
        },
        {
          "path": "src/blocks/app/event-timeline/clock.ts",
          "type": "registry:component",
          "target": "blocks/app/event-timeline/clock.ts"
        },
        {
          "path": "src/blocks/app/event-timeline/data.ts",
          "type": "registry:component",
          "target": "blocks/app/event-timeline/data.ts"
        },
        {
          "path": "src/blocks/app/event-timeline/head.tsx",
          "type": "registry:component",
          "target": "blocks/app/event-timeline/head.tsx"
        },
        {
          "path": "src/blocks/app/event-timeline/items.tsx",
          "type": "registry:component",
          "target": "blocks/app/event-timeline/items.tsx"
        },
        {
          "path": "src/blocks/app/event-timeline/stats.tsx",
          "type": "registry:component",
          "target": "blocks/app/event-timeline/stats.tsx"
        }
      ]
    },
    {
      "name": "app-exploded-view",
      "type": "registry:block",
      "title": "App Exploded View",
      "description": "Explore a device layer by layer with an exploded drawing beside its specifications.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "media"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/grid-backdrops.json",
        "https://www.youj.dev/r/icon-file-text.json",
        "https://www.youj.dev/r/icon-more-horizontal.json",
        "https://www.youj.dev/r/iso-scene.json",
        "https://www.youj.dev/r/iso-shapes.json",
        "https://www.youj.dev/r/iso-stack.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-mobile.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/exploded-view.tsx",
          "type": "registry:component",
          "target": "blocks/app/exploded-view.tsx"
        },
        {
          "path": "src/blocks/app/exploded-view/data.ts",
          "type": "registry:component",
          "target": "blocks/app/exploded-view/data.ts"
        },
        {
          "path": "src/blocks/app/exploded-view/drawing.tsx",
          "type": "registry:component",
          "target": "blocks/app/exploded-view/drawing.tsx"
        },
        {
          "path": "src/blocks/app/exploded-view/stats.tsx",
          "type": "registry:component",
          "target": "blocks/app/exploded-view/stats.tsx"
        }
      ]
    },
    {
      "name": "app-feedback",
      "type": "registry:block",
      "title": "App Feedback",
      "description": "Collect feedback inside your product with a form your users can open when they need it.",
      "meta": {
        "kind": "overlay",
        "level": "card",
        "category": "activity-and-conversations"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/collapse.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/file-upload.json",
        "https://www.youj.dev/r/icon-bug.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-heart.json",
        "https://www.youj.dev/r/icon-lightbulb.json",
        "https://www.youj.dev/r/icon-message-sparkle.json",
        "https://www.youj.dev/r/icon-paperclip.json",
        "https://www.youj.dev/r/icon-party-popper.json",
        "https://www.youj.dev/r/icon-pencil.json",
        "https://www.youj.dev/r/icon-sparkles.json",
        "https://www.youj.dev/r/icon-user-plus.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/kbd.json",
        "https://www.youj.dev/r/popover.json",
        "https://www.youj.dev/r/radio-group.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/sliding-indicator.json",
        "https://www.youj.dev/r/text-split.json",
        "https://www.youj.dev/r/textarea.json",
        "https://www.youj.dev/r/toast.json",
        "https://www.youj.dev/r/toggle-group.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/feedback.tsx",
          "type": "registry:component",
          "target": "blocks/app/feedback.tsx"
        },
        {
          "path": "src/blocks/app/feedback/data.ts",
          "type": "registry:component",
          "target": "blocks/app/feedback/data.ts"
        },
        {
          "path": "src/blocks/app/feedback/feedback-form.tsx",
          "type": "registry:component",
          "target": "blocks/app/feedback/feedback-form.tsx"
        },
        {
          "path": "src/blocks/app/feedback/feedback-widget.tsx",
          "type": "registry:component",
          "target": "blocks/app/feedback/feedback-widget.tsx"
        },
        {
          "path": "src/blocks/app/feedback/nps-scale.tsx",
          "type": "registry:component",
          "target": "blocks/app/feedback/nps-scale.tsx"
        },
        {
          "path": "src/blocks/app/feedback/nps-survey.tsx",
          "type": "registry:component",
          "target": "blocks/app/feedback/nps-survey.tsx"
        },
        {
          "path": "src/blocks/app/feedback/nps-thanks.tsx",
          "type": "registry:component",
          "target": "blocks/app/feedback/nps-thanks.tsx"
        },
        {
          "path": "src/blocks/app/feedback/roadmap-page.tsx",
          "type": "registry:component",
          "target": "blocks/app/feedback/roadmap-page.tsx"
        }
      ]
    },
    {
      "name": "app-file-manager",
      "type": "registry:block",
      "title": "App File Manager",
      "description": "Help your team browse, upload and preview files with folders and a choice of grid or list views.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "workspaces-and-tools",
        "inApp": true
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/app-page.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/breadcrumb.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/checkbox.json",
        "https://www.youj.dev/r/context-menu.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-archive.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-cloud-upload.json",
        "https://www.youj.dev/r/icon-copy.json",
        "https://www.youj.dev/r/icon-download.json",
        "https://www.youj.dev/r/icon-eye.json",
        "https://www.youj.dev/r/icon-file.json",
        "https://www.youj.dev/r/icon-file-text.json",
        "https://www.youj.dev/r/icon-film.json",
        "https://www.youj.dev/r/icon-folder.json",
        "https://www.youj.dev/r/icon-image.json",
        "https://www.youj.dev/r/icon-layout-grid.json",
        "https://www.youj.dev/r/icon-layout-list.json",
        "https://www.youj.dev/r/icon-link.json",
        "https://www.youj.dev/r/icon-menu.json",
        "https://www.youj.dev/r/icon-music.json",
        "https://www.youj.dev/r/icon-search.json",
        "https://www.youj.dev/r/icon-table.json",
        "https://www.youj.dev/r/icon-trash.json",
        "https://www.youj.dev/r/icon-upload.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/illustrations.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/morph-label.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/progress.json",
        "https://www.youj.dev/r/resizable.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/sheet.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/switch.json",
        "https://www.youj.dev/r/toast.json",
        "https://www.youj.dev/r/toggle-group.json",
        "https://www.youj.dev/r/tree-view.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-mobile.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/file-manager.tsx",
          "type": "registry:component",
          "target": "blocks/app/file-manager.tsx"
        },
        {
          "path": "src/blocks/app/file-manager/context.ts",
          "type": "registry:component",
          "target": "blocks/app/file-manager/context.ts"
        },
        {
          "path": "src/blocks/app/file-manager/data.tsx",
          "type": "registry:component",
          "target": "blocks/app/file-manager/data.tsx"
        },
        {
          "path": "src/blocks/app/file-manager/drop-target.tsx",
          "type": "registry:component",
          "target": "blocks/app/file-manager/drop-target.tsx"
        },
        {
          "path": "src/blocks/app/file-manager/file-views.tsx",
          "type": "registry:component",
          "target": "blocks/app/file-manager/file-views.tsx"
        },
        {
          "path": "src/blocks/app/file-manager/files-body.tsx",
          "type": "registry:component",
          "target": "blocks/app/file-manager/files-body.tsx"
        },
        {
          "path": "src/blocks/app/file-manager/folder-pane.tsx",
          "type": "registry:component",
          "target": "blocks/app/file-manager/folder-pane.tsx"
        },
        {
          "path": "src/blocks/app/file-manager/preview.tsx",
          "type": "registry:component",
          "target": "blocks/app/file-manager/preview.tsx"
        },
        {
          "path": "src/blocks/app/file-manager/rising.tsx",
          "type": "registry:component",
          "target": "blocks/app/file-manager/rising.tsx"
        },
        {
          "path": "src/blocks/app/file-manager/selection-bar.tsx",
          "type": "registry:component",
          "target": "blocks/app/file-manager/selection-bar.tsx"
        },
        {
          "path": "src/blocks/app/file-manager/thumb.tsx",
          "type": "registry:component",
          "target": "blocks/app/file-manager/thumb.tsx"
        },
        {
          "path": "src/blocks/app/file-manager/toolbar.tsx",
          "type": "registry:component",
          "target": "blocks/app/file-manager/toolbar.tsx"
        },
        {
          "path": "src/blocks/app/file-manager/uploads-tray.tsx",
          "type": "registry:component",
          "target": "blocks/app/file-manager/uploads-tray.tsx"
        },
        {
          "path": "src/blocks/app/file-manager/use-uploads.ts",
          "type": "registry:component",
          "target": "blocks/app/file-manager/use-uploads.ts"
        }
      ]
    },
    {
      "name": "app-first-source",
      "type": "registry:block",
      "title": "App First Source",
      "description": "Guide your users towards adding their first data source with an illustrated empty warehouse.",
      "meta": {
        "kind": "fragment",
        "level": "card",
        "category": "onboarding-and-states"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/grid-backdrops.json",
        "https://www.youj.dev/r/icon-activity.json",
        "https://www.youj.dev/r/icon-book-open.json",
        "https://www.youj.dev/r/icon-database.json",
        "https://www.youj.dev/r/icon-folder-input.json",
        "https://www.youj.dev/r/illustrations.json",
        "https://www.youj.dev/r/iso-scene.json",
        "https://www.youj.dev/r/iso-shapes.json",
        "https://www.youj.dev/r/radio-group.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/first-source.tsx",
          "type": "registry:component",
          "target": "blocks/app/first-source.tsx"
        },
        {
          "path": "src/blocks/app/first-source/data.ts",
          "type": "registry:component",
          "target": "blocks/app/first-source/data.ts"
        },
        {
          "path": "src/blocks/app/first-source/floor.tsx",
          "type": "registry:component",
          "target": "blocks/app/first-source/floor.tsx"
        },
        {
          "path": "src/blocks/app/first-source/source-options.tsx",
          "type": "registry:component",
          "target": "blocks/app/first-source/source-options.tsx"
        }
      ]
    },
    {
      "name": "app-fleet-overview",
      "type": "registry:block",
      "title": "App Fleet Overview",
      "description": "Track an ocean-freight fleet on a map: ships steaming along their lanes, a list of what is sailing, holding or in port, a voyage panel with route, ETA, log and manifest, and a storm to reroute around.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "workspaces-and-tools"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/app-page.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/drawer.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-check-circle.json",
        "https://www.youj.dev/r/icon-cloud-lightning.json",
        "https://www.youj.dev/r/icon-crosshair.json",
        "https://www.youj.dev/r/icon-flag.json",
        "https://www.youj.dev/r/icon-map.json",
        "https://www.youj.dev/r/icon-map-pin.json",
        "https://www.youj.dev/r/icon-minus.json",
        "https://www.youj.dev/r/icon-navigation.json",
        "https://www.youj.dev/r/icon-package.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/icon-route.json",
        "https://www.youj.dev/r/icon-search.json",
        "https://www.youj.dev/r/icon-share.json",
        "https://www.youj.dev/r/icon-shield-check.json",
        "https://www.youj.dev/r/icon-waves.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/kbd.json",
        "https://www.youj.dev/r/pagination.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/progress.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/spotlight.json",
        "https://www.youj.dev/r/stat-card.json",
        "https://www.youj.dev/r/tabs.json",
        "https://www.youj.dev/r/timeline.json",
        "https://www.youj.dev/r/toast.json",
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/fleet-overview.tsx",
          "type": "registry:component",
          "target": "blocks/app/fleet-overview.tsx"
        },
        {
          "path": "src/blocks/app/fleet-overview/components/contacts.tsx",
          "type": "registry:component",
          "target": "blocks/app/fleet-overview/components/contacts.tsx"
        },
        {
          "path": "src/blocks/app/fleet-overview/components/fleet-figures.tsx",
          "type": "registry:component",
          "target": "blocks/app/fleet-overview/components/fleet-figures.tsx"
        },
        {
          "path": "src/blocks/app/fleet-overview/components/fleet-map.tsx",
          "type": "registry:component",
          "target": "blocks/app/fleet-overview/components/fleet-map.tsx"
        },
        {
          "path": "src/blocks/app/fleet-overview/components/harbor-view.tsx",
          "type": "registry:component",
          "target": "blocks/app/fleet-overview/components/harbor-view.tsx"
        },
        {
          "path": "src/blocks/app/fleet-overview/components/live-clock.tsx",
          "type": "registry:component",
          "target": "blocks/app/fleet-overview/components/live-clock.tsx"
        },
        {
          "path": "src/blocks/app/fleet-overview/components/manifest.tsx",
          "type": "registry:component",
          "target": "blocks/app/fleet-overview/components/manifest.tsx"
        },
        {
          "path": "src/blocks/app/fleet-overview/components/map-controls.tsx",
          "type": "registry:component",
          "target": "blocks/app/fleet-overview/components/map-controls.tsx"
        },
        {
          "path": "src/blocks/app/fleet-overview/components/map-layers.tsx",
          "type": "registry:component",
          "target": "blocks/app/fleet-overview/components/map-layers.tsx"
        },
        {
          "path": "src/blocks/app/fleet-overview/components/shipment-list.tsx",
          "type": "registry:component",
          "target": "blocks/app/fleet-overview/components/shipment-list.tsx"
        },
        {
          "path": "src/blocks/app/fleet-overview/components/shipments-panel.tsx",
          "type": "registry:component",
          "target": "blocks/app/fleet-overview/components/shipments-panel.tsx"
        },
        {
          "path": "src/blocks/app/fleet-overview/components/status-badge.tsx",
          "type": "registry:component",
          "target": "blocks/app/fleet-overview/components/status-badge.tsx"
        },
        {
          "path": "src/blocks/app/fleet-overview/components/voyage-detail.tsx",
          "type": "registry:component",
          "target": "blocks/app/fleet-overview/components/voyage-detail.tsx"
        },
        {
          "path": "src/blocks/app/fleet-overview/data.ts",
          "type": "registry:component",
          "target": "blocks/app/fleet-overview/data.ts"
        },
        {
          "path": "src/blocks/app/fleet-overview/geo.ts",
          "type": "registry:component",
          "target": "blocks/app/fleet-overview/geo.ts"
        },
        {
          "path": "src/blocks/app/fleet-overview/model.ts",
          "type": "registry:component",
          "target": "blocks/app/fleet-overview/model.ts"
        },
        {
          "path": "src/blocks/app/fleet-overview/use-harbor.ts",
          "type": "registry:component",
          "target": "blocks/app/fleet-overview/use-harbor.ts"
        },
        {
          "path": "src/blocks/app/fleet-overview/use-map-camera.ts",
          "type": "registry:component",
          "target": "blocks/app/fleet-overview/use-map-camera.ts"
        },
        {
          "path": "src/blocks/app/fleet-overview/use-map-keys.ts",
          "type": "registry:component",
          "target": "blocks/app/fleet-overview/use-map-keys.ts"
        },
        {
          "path": "src/blocks/app/fleet-overview/use-media.ts",
          "type": "registry:component",
          "target": "blocks/app/fleet-overview/use-media.ts"
        },
        {
          "path": "src/blocks/app/fleet-overview/use-sim-time.ts",
          "type": "registry:component",
          "target": "blocks/app/fleet-overview/use-sim-time.ts"
        }
      ]
    },
    {
      "name": "app-flow",
      "type": "registry:block",
      "title": "App Flow",
      "description": "Where things go: a sankey whose ribbons keep their source colour through every stage.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "flows"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/table.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/flow.tsx",
          "type": "registry:component",
          "target": "blocks/app/flow.tsx"
        },
        {
          "path": "src/blocks/app/flow/chart.tsx",
          "type": "registry:component",
          "target": "blocks/app/flow/chart.tsx"
        },
        {
          "path": "src/blocks/app/flow/data.ts",
          "type": "registry:component",
          "target": "blocks/app/flow/data.ts"
        },
        {
          "path": "src/blocks/app/flow/layout.ts",
          "type": "registry:component",
          "target": "blocks/app/flow/layout.ts"
        },
        {
          "path": "src/blocks/app/flow/table.tsx",
          "type": "registry:component",
          "target": "blocks/app/flow/table.tsx"
        }
      ]
    },
    {
      "name": "app-funnel-report",
      "type": "registry:block",
      "title": "App Funnel Report",
      "description": "Follow trial teams to paid: a conversion funnel, step changes against the previous period, cohort retention, time to paid and daily upgrades.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "dashboards",
        "inApp": true
      },
      "dependencies": [
        "recharts@^3.8.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/app-page.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/calendar-heatmap.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/chart.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/diff-bar.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/histogram-range.json",
        "https://www.youj.dev/r/icon-funnel.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/stat-card.json",
        "https://www.youj.dev/r/table.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/use-now.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/funnel-report.tsx",
          "type": "registry:component",
          "target": "blocks/app/funnel-report.tsx"
        },
        {
          "path": "src/blocks/app/funnel-report/cohorts.tsx",
          "type": "registry:component",
          "target": "blocks/app/funnel-report/cohorts.tsx"
        },
        {
          "path": "src/blocks/app/funnel-report/copy.ts",
          "type": "registry:component",
          "target": "blocks/app/funnel-report/copy.ts"
        },
        {
          "path": "src/blocks/app/funnel-report/data.ts",
          "type": "registry:component",
          "target": "blocks/app/funnel-report/data.ts"
        },
        {
          "path": "src/blocks/app/funnel-report/funnel.tsx",
          "type": "registry:component",
          "target": "blocks/app/funnel-report/funnel.tsx"
        },
        {
          "path": "src/blocks/app/funnel-report/step-changes.tsx",
          "type": "registry:component",
          "target": "blocks/app/funnel-report/step-changes.tsx"
        },
        {
          "path": "src/blocks/app/funnel-report/timing.tsx",
          "type": "registry:component",
          "target": "blocks/app/funnel-report/timing.tsx"
        }
      ]
    },
    {
      "name": "app-goals",
      "type": "registry:block",
      "title": "App Goals",
      "description": "The period’s targets and where each will land: progress against an even pace, a status from the recent rate, and the picked goal as a burn-up with its forecast and likely range.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "meters-and-limits"
      },
      "dependencies": [
        "motion@^14",
        "recharts@^3.8.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/chart.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/sliding-indicator.json",
        "https://www.youj.dev/r/stat-card.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/goals.tsx",
          "type": "registry:component",
          "target": "blocks/app/goals.tsx"
        },
        {
          "path": "src/blocks/app/goals/burnup.tsx",
          "type": "registry:component",
          "target": "blocks/app/goals/burnup.tsx"
        },
        {
          "path": "src/blocks/app/goals/data.ts",
          "type": "registry:component",
          "target": "blocks/app/goals/data.ts"
        },
        {
          "path": "src/blocks/app/goals/rows.tsx",
          "type": "registry:component",
          "target": "blocks/app/goals/rows.tsx"
        }
      ]
    },
    {
      "name": "app-head-to-head",
      "type": "registry:block",
      "title": "App Head To Head",
      "description": "Put two things side by side before you choose: who leads overall, every measure as a bar from a shared center, and the trade-off between two of them.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "trends-and-comparisons"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/diff-bar.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-more-horizontal.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/head-to-head.tsx",
          "type": "registry:component",
          "target": "blocks/app/head-to-head.tsx"
        },
        {
          "path": "src/blocks/app/head-to-head/data.ts",
          "type": "registry:component",
          "target": "blocks/app/head-to-head/data.ts"
        },
        {
          "path": "src/blocks/app/head-to-head/quadrant.tsx",
          "type": "registry:component",
          "target": "blocks/app/head-to-head/quadrant.tsx"
        }
      ]
    },
    {
      "name": "app-health-dial",
      "type": "registry:block",
      "title": "App Health Dial",
      "description": "Check how one thing is doing with a health dial, the signals behind it and the parts it is made of: a service and its regions, a patient and their monitors, a wind farm and its turbines.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "meters-and-limits"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/gauge.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/segmented-meter.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/use-visible.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/health-dial.tsx",
          "type": "registry:component",
          "target": "blocks/app/health-dial.tsx"
        },
        {
          "path": "src/blocks/app/health-dial/checked-ago.tsx",
          "type": "registry:component",
          "target": "blocks/app/health-dial/checked-ago.tsx"
        },
        {
          "path": "src/blocks/app/health-dial/data.ts",
          "type": "registry:component",
          "target": "blocks/app/health-dial/data.ts"
        }
      ]
    },
    {
      "name": "app-hour-lanes",
      "type": "registry:block",
      "title": "App Hour Lanes",
      "description": "See when things happen, by lane: a lane of dots per source, entrance or channel across the day, the busiest bucket flagged, and an Off-hours switch that keeps the night in color, with the peak, the off-hours share and the night’s busiest lane below.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "trends-and-comparisons"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/density-lanes.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/switch.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/hour-lanes.tsx",
          "type": "registry:component",
          "target": "blocks/app/hour-lanes.tsx"
        },
        {
          "path": "src/blocks/app/hour-lanes/data.ts",
          "type": "registry:component",
          "target": "blocks/app/hour-lanes/data.ts"
        }
      ]
    },
    {
      "name": "app-hub-map",
      "type": "registry:block",
      "title": "App Hub Map",
      "description": "Follow a network of hubs on a live world map: each hub’s volume and health, flows along the lanes between hubs, and the throughput, backlog and top lanes of the hub you pick.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "networks-and-maps"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-arrow-down-left.json",
        "https://www.youj.dev/r/icon-arrow-up-right.json",
        "https://www.youj.dev/r/icon-more-horizontal.json",
        "https://www.youj.dev/r/icon-play.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/share-bar.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/sparkline.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/hub-map.tsx",
          "type": "registry:component",
          "target": "blocks/app/hub-map.tsx"
        },
        {
          "path": "src/blocks/app/hub-map/arcs.ts",
          "type": "registry:component",
          "target": "blocks/app/hub-map/arcs.ts"
        },
        {
          "path": "src/blocks/app/hub-map/data.ts",
          "type": "registry:component",
          "target": "blocks/app/hub-map/data.ts"
        },
        {
          "path": "src/blocks/app/hub-map/detail.tsx",
          "type": "registry:component",
          "target": "blocks/app/hub-map/detail.tsx"
        },
        {
          "path": "src/blocks/app/hub-map/head.tsx",
          "type": "registry:component",
          "target": "blocks/app/hub-map/head.tsx"
        },
        {
          "path": "src/blocks/app/hub-map/land.ts",
          "type": "registry:component",
          "target": "blocks/app/hub-map/land.ts"
        },
        {
          "path": "src/blocks/app/hub-map/map-css.ts",
          "type": "registry:component",
          "target": "blocks/app/hub-map/map-css.ts"
        },
        {
          "path": "src/blocks/app/hub-map/map.tsx",
          "type": "registry:component",
          "target": "blocks/app/hub-map/map.tsx"
        },
        {
          "path": "src/blocks/app/hub-map/placeholder.tsx",
          "type": "registry:component",
          "target": "blocks/app/hub-map/placeholder.tsx"
        },
        {
          "path": "src/blocks/app/hub-map/totals.tsx",
          "type": "registry:component",
          "target": "blocks/app/hub-map/totals.tsx"
        }
      ]
    },
    {
      "name": "app-integrations",
      "type": "registry:block",
      "title": "App Integrations",
      "description": "Help your users find integrations and review what each one can access before installing it.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "settings-and-account",
        "inApp": true
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/app-page.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/breadcrumb.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/carousel.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-badge-check.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-chevron-down.json",
        "https://www.youj.dev/r/icon-plug.json",
        "https://www.youj.dev/r/icon-search.json",
        "https://www.youj.dev/r/icon-shield-check.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/mesh-gradient.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/sheet.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/sliding-indicator.json",
        "https://www.youj.dev/r/spotlight.json",
        "https://www.youj.dev/r/switch.json",
        "https://www.youj.dev/r/toggle-group.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/integrations.tsx",
          "type": "registry:component",
          "target": "blocks/app/integrations.tsx"
        },
        {
          "path": "src/blocks/app/integrations/app-card.tsx",
          "type": "registry:component",
          "target": "blocks/app/integrations/app-card.tsx"
        },
        {
          "path": "src/blocks/app/integrations/app-sheet.tsx",
          "type": "registry:component",
          "target": "blocks/app/integrations/app-sheet.tsx"
        },
        {
          "path": "src/blocks/app/integrations/category-rail.tsx",
          "type": "registry:component",
          "target": "blocks/app/integrations/category-rail.tsx"
        },
        {
          "path": "src/blocks/app/integrations/data.ts",
          "type": "registry:component",
          "target": "blocks/app/integrations/data.ts"
        },
        {
          "path": "src/blocks/app/integrations/detail-data.ts",
          "type": "registry:component",
          "target": "blocks/app/integrations/detail-data.ts"
        },
        {
          "path": "src/blocks/app/integrations/detail.tsx",
          "type": "registry:component",
          "target": "blocks/app/integrations/detail.tsx"
        },
        {
          "path": "src/blocks/app/integrations/featured.tsx",
          "type": "registry:component",
          "target": "blocks/app/integrations/featured.tsx"
        },
        {
          "path": "src/blocks/app/integrations/monogram.tsx",
          "type": "registry:component",
          "target": "blocks/app/integrations/monogram.tsx"
        }
      ]
    },
    {
      "name": "app-interval-timer",
      "type": "registry:block",
      "title": "App Interval Timer",
      "description": "Run intervals of work and rest with the item at hand beside a log of entries: a ring with an arc for every interval, a countdown that drains while resting, then what’s next, and count × amount steppers.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "timelines-and-steps"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-more-horizontal.json",
        "https://www.youj.dev/r/icon-play.json",
        "https://www.youj.dev/r/icon-rotate-ccw.json",
        "https://www.youj.dev/r/icon-skip-forward.json",
        "https://www.youj.dev/r/number-input.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/segmented-ring.json",
        "https://www.youj.dev/r/share-bar.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/interval-timer.tsx",
          "type": "registry:component",
          "target": "blocks/app/interval-timer.tsx"
        },
        {
          "path": "src/blocks/app/interval-timer/data.ts",
          "type": "registry:component",
          "target": "blocks/app/interval-timer/data.ts"
        },
        {
          "path": "src/blocks/app/interval-timer/set-logger.tsx",
          "type": "registry:component",
          "target": "blocks/app/interval-timer/set-logger.tsx"
        },
        {
          "path": "src/blocks/app/interval-timer/states.tsx",
          "type": "registry:component",
          "target": "blocks/app/interval-timer/states.tsx"
        },
        {
          "path": "src/blocks/app/interval-timer/use-timer.ts",
          "type": "registry:component",
          "target": "blocks/app/interval-timer/use-timer.ts"
        }
      ]
    },
    {
      "name": "app-itinerary",
      "type": "registry:block",
      "title": "App Itinerary",
      "description": "Keep a trip together: the next leg as a boarding pass with a countdown, the days with the place each is spent in, and every booking with its confirmation code to copy.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "calendars-and-schedules"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-building.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-coffee.json",
        "https://www.youj.dev/r/icon-copy.json",
        "https://www.youj.dev/r/icon-home.json",
        "https://www.youj.dev/r/icon-more-horizontal.json",
        "https://www.youj.dev/r/icon-plane.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/icon-share.json",
        "https://www.youj.dev/r/icon-swap.json",
        "https://www.youj.dev/r/icon-ticket.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/tabs.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-visible.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/itinerary.tsx",
          "type": "registry:component",
          "target": "blocks/app/itinerary.tsx"
        },
        {
          "path": "src/blocks/app/itinerary/code-chip.tsx",
          "type": "registry:component",
          "target": "blocks/app/itinerary/code-chip.tsx"
        },
        {
          "path": "src/blocks/app/itinerary/data.ts",
          "type": "registry:component",
          "target": "blocks/app/itinerary/data.ts"
        },
        {
          "path": "src/blocks/app/itinerary/day-plans.tsx",
          "type": "registry:component",
          "target": "blocks/app/itinerary/day-plans.tsx"
        },
        {
          "path": "src/blocks/app/itinerary/next-leg.tsx",
          "type": "registry:component",
          "target": "blocks/app/itinerary/next-leg.tsx"
        },
        {
          "path": "src/blocks/app/itinerary/states.tsx",
          "type": "registry:component",
          "target": "blocks/app/itinerary/states.tsx"
        }
      ]
    },
    {
      "name": "app-kpi-cards",
      "type": "registry:block",
      "title": "App KPI Cards",
      "description": "The numbers at the top of a dashboard, each with its change against the period before, in three looks: figures on hairlines, a line with last period’s ghost, or a bar per bucket.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "trends-and-comparisons"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-info.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/stat-card.json",
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/kpi-cards.tsx",
          "type": "registry:component",
          "target": "blocks/app/kpi-cards.tsx"
        },
        {
          "path": "src/blocks/app/kpi-cards/data.ts",
          "type": "registry:component",
          "target": "blocks/app/kpi-cards/data.ts"
        },
        {
          "path": "src/blocks/app/kpi-cards/tile.tsx",
          "type": "registry:component",
          "target": "blocks/app/kpi-cards/tile.tsx"
        },
        {
          "path": "src/blocks/app/kpi-cards/trend.tsx",
          "type": "registry:component",
          "target": "blocks/app/kpi-cards/trend.tsx"
        }
      ]
    },
    {
      "name": "app-limit-meters",
      "type": "registry:block",
      "title": "App Limit Meters",
      "description": "Watch how much of an allowance is used: a picker for what is limited, a live bucket of what is left, the figures and a raise.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "meters-and-limits"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-more-horizontal.json",
        "https://www.youj.dev/r/refill-meter.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/sparkline.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/limit-meters.tsx",
          "type": "registry:component",
          "target": "blocks/app/limit-meters.tsx"
        },
        {
          "path": "src/blocks/app/limit-meters/data.ts",
          "type": "registry:component",
          "target": "blocks/app/limit-meters/data.ts"
        },
        {
          "path": "src/blocks/app/limit-meters/use-traffic.ts",
          "type": "registry:component",
          "target": "blocks/app/limit-meters/use-traffic.ts"
        }
      ]
    },
    {
      "name": "app-limit-tracker",
      "type": "registry:block",
      "title": "App Limit Tracker",
      "description": "Track what has been used of a limit, with what is left on a ruler, categories and rules you can switch.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "meters-and-limits"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-chevron-down.json",
        "https://www.youj.dev/r/icon-more-horizontal.json",
        "https://www.youj.dev/r/limit-meter.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/switch.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/limit-tracker.tsx",
          "type": "registry:component",
          "target": "blocks/app/limit-tracker.tsx"
        },
        {
          "path": "src/blocks/app/limit-tracker/data.ts",
          "type": "registry:component",
          "target": "blocks/app/limit-tracker/data.ts"
        }
      ]
    },
    {
      "name": "app-list-detail",
      "type": "registry:block",
      "title": "App List Detail",
      "description": "Read feature requests beside the list they come from: move with the arrow keys, drag rows into priority order, resize the panes, and open requests in a drawer on a phone.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "data-and-lists",
        "inApp": true
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/app-page.json",
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/drawer.json",
        "https://www.youj.dev/r/icon-chevron-up.json",
        "https://www.youj.dev/r/icon-git-merge.json",
        "https://www.youj.dev/r/icon-message.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/icon-search.json",
        "https://www.youj.dev/r/illustrations.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/kbd.json",
        "https://www.youj.dev/r/resizable.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/scroll-area.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/sortable-list.json",
        "https://www.youj.dev/r/toast.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/use-mobile.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/list-detail.tsx",
          "type": "registry:component",
          "target": "blocks/app/list-detail.tsx"
        },
        {
          "path": "src/blocks/app/list-detail/data.ts",
          "type": "registry:component",
          "target": "blocks/app/list-detail/data.ts"
        },
        {
          "path": "src/blocks/app/list-detail/detail.tsx",
          "type": "registry:component",
          "target": "blocks/app/list-detail/detail.tsx"
        },
        {
          "path": "src/blocks/app/list-detail/list.tsx",
          "type": "registry:component",
          "target": "blocks/app/list-detail/list.tsx"
        }
      ]
    },
    {
      "name": "app-live-metric",
      "type": "registry:block",
      "title": "App Live Metric",
      "description": "What is happening right now: people on the site rolling digit by digit, the last five minutes as a strip that slides along as each bucket opens, and the pages they are on re-ranking.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "trends-and-comparisons"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/icon-circle-pause.json",
        "https://www.youj.dev/r/icon-circle-play.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/stat-card.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/use-visible.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/live-metric.tsx",
          "type": "registry:component",
          "target": "blocks/app/live-metric.tsx"
        },
        {
          "path": "src/blocks/app/live-metric/data.ts",
          "type": "registry:component",
          "target": "blocks/app/live-metric/data.ts"
        },
        {
          "path": "src/blocks/app/live-metric/pages.tsx",
          "type": "registry:component",
          "target": "blocks/app/live-metric/pages.tsx"
        },
        {
          "path": "src/blocks/app/live-metric/strip.tsx",
          "type": "registry:component",
          "target": "blocks/app/live-metric/strip.tsx"
        },
        {
          "path": "src/blocks/app/live-metric/use-live.ts",
          "type": "registry:component",
          "target": "blocks/app/live-metric/use-live.ts"
        }
      ]
    },
    {
      "name": "app-logistics",
      "type": "registry:block",
      "title": "App Logistics",
      "description": "Run freight from one screen: the ocean fleet on a map, the dispatch board with its queue, route and agent proposals, and one shipment in full, as three views that keep one size.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "workspaces-and-tools",
        "inApp": true
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/app-dispatch-board.json",
        "https://www.youj.dev/r/app-fleet-overview.json",
        "https://www.youj.dev/r/app-page.json",
        "https://www.youj.dev/r/app-shipment-detail.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/tabs.json",
        "https://www.youj.dev/r/toast.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/logistics.tsx",
          "type": "registry:component",
          "target": "blocks/app/logistics.tsx"
        }
      ]
    },
    {
      "name": "app-lollipop-ranking",
      "type": "registry:block",
      "title": "App Lollipop Ranking",
      "description": "See where every item in a set stands against a line, whether that is error budgets, school attendance or supplier ratings: a table with the owner, 90 days of trend, the signed value, when it crosses the line and the alert, filtered by status, group or search; beside it, the index, every item as a dot on a stem from zero from the lowest to the highest.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "rankings-and-breakdowns"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-arrow-down.json",
        "https://www.youj.dev/r/icon-arrow-up.json",
        "https://www.youj.dev/r/icon-bell.json",
        "https://www.youj.dev/r/icon-database.json",
        "https://www.youj.dev/r/icon-layers.json",
        "https://www.youj.dev/r/icon-search.json",
        "https://www.youj.dev/r/icon-server.json",
        "https://www.youj.dev/r/icon-shield.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/lollipop-chart.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/sparkline.json",
        "https://www.youj.dev/r/table.json",
        "https://www.youj.dev/r/tabs.json",
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/lollipop-ranking.tsx",
          "type": "registry:component",
          "target": "blocks/app/lollipop-ranking.tsx"
        },
        {
          "path": "src/blocks/app/lollipop-ranking/data.tsx",
          "type": "registry:component",
          "target": "blocks/app/lollipop-ranking/data.tsx"
        },
        {
          "path": "src/blocks/app/lollipop-ranking/ranking-chart.tsx",
          "type": "registry:component",
          "target": "blocks/app/lollipop-ranking/ranking-chart.tsx"
        },
        {
          "path": "src/blocks/app/lollipop-ranking/ranking-table.tsx",
          "type": "registry:component",
          "target": "blocks/app/lollipop-ranking/ranking-table.tsx"
        }
      ]
    },
    {
      "name": "app-loop-route",
      "type": "registry:block",
      "title": "App Loop Route",
      "description": "Follow a tugger round the plant: a loop map with the stops (done, next, ahead) and the tugger, the bins on board, the stops still to come with their bins and arrival times, and Skip stop and Rush delivery.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "flows"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/loop-route.tsx",
          "type": "registry:component",
          "target": "blocks/app/loop-route.tsx"
        },
        {
          "path": "src/blocks/app/loop-route/data.ts",
          "type": "registry:component",
          "target": "blocks/app/loop-route/data.ts"
        },
        {
          "path": "src/blocks/app/loop-route/loop.ts",
          "type": "registry:component",
          "target": "blocks/app/loop-route/loop.ts"
        },
        {
          "path": "src/blocks/app/loop-route/map.tsx",
          "type": "registry:component",
          "target": "blocks/app/loop-route/map.tsx"
        }
      ]
    },
    {
      "name": "app-loss-waterfall",
      "type": "registry:block",
      "title": "App Loss Waterfall",
      "description": "See where an amount went: an isometric waterfall from the start down through each loss to what is left, the biggest loss called out, and a row to look into the one you pick.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "rankings-and-breakdowns"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/icon-chevron-right.json",
        "https://www.youj.dev/r/iso-scene.json",
        "https://www.youj.dev/r/iso-shapes.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/loss-waterfall.tsx",
          "type": "registry:component",
          "target": "blocks/app/loss-waterfall.tsx"
        },
        {
          "path": "src/blocks/app/loss-waterfall/data.ts",
          "type": "registry:component",
          "target": "blocks/app/loss-waterfall/data.ts"
        },
        {
          "path": "src/blocks/app/loss-waterfall/drawing.tsx",
          "type": "registry:component",
          "target": "blocks/app/loss-waterfall/drawing.tsx"
        },
        {
          "path": "src/blocks/app/loss-waterfall/math.ts",
          "type": "registry:component",
          "target": "blocks/app/loss-waterfall/math.ts"
        }
      ]
    },
    {
      "name": "app-meeting-booking",
      "type": "registry:block",
      "title": "App Meeting Booking",
      "description": "Let visitors choose a meeting time with a booking page that accounts for duration and time zone.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "workspaces-and-tools"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/calendar.json",
        "https://www.youj.dev/r/content-swap.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-arrow-left.json",
        "https://www.youj.dev/r/icon-calendar-plus.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-clock.json",
        "https://www.youj.dev/r/icon-globe.json",
        "https://www.youj.dev/r/icon-refresh.json",
        "https://www.youj.dev/r/icon-video.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/stagger.json",
        "https://www.youj.dev/r/textarea.json",
        "https://www.youj.dev/r/toggle-group.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/meeting-booking.tsx",
          "type": "registry:component",
          "target": "blocks/app/meeting-booking.tsx"
        },
        {
          "path": "src/blocks/app/meeting-booking/data.ts",
          "type": "registry:component",
          "target": "blocks/app/meeting-booking/data.ts"
        },
        {
          "path": "src/blocks/app/meeting-booking/details-form.tsx",
          "type": "registry:component",
          "target": "blocks/app/meeting-booking/details-form.tsx"
        },
        {
          "path": "src/blocks/app/meeting-booking/details-skeleton.tsx",
          "type": "registry:component",
          "target": "blocks/app/meeting-booking/details-skeleton.tsx"
        },
        {
          "path": "src/blocks/app/meeting-booking/meeting-panel.tsx",
          "type": "registry:component",
          "target": "blocks/app/meeting-booking/meeting-panel.tsx"
        },
        {
          "path": "src/blocks/app/meeting-booking/slot-column.tsx",
          "type": "registry:component",
          "target": "blocks/app/meeting-booking/slot-column.tsx"
        },
        {
          "path": "src/blocks/app/meeting-booking/step-pane.tsx",
          "type": "registry:component",
          "target": "blocks/app/meeting-booking/step-pane.tsx"
        }
      ]
    },
    {
      "name": "app-metric-chart",
      "type": "registry:block",
      "title": "App Metric Chart",
      "description": "One metric over time, stacked by the segments it adds up from, against the period before: a legend that hides and solos series and reads the bucket under the crosshair, annotations on the dates that explain the turns, a range switch and the numbers as a table.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "trends-and-comparisons"
      },
      "dependencies": [
        "recharts@^3.8.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/chart.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-download.json",
        "https://www.youj.dev/r/icon-link.json",
        "https://www.youj.dev/r/icon-more-horizontal.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/stat-card.json",
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/metric-chart.tsx",
          "type": "registry:component",
          "target": "blocks/app/metric-chart.tsx"
        },
        {
          "path": "src/blocks/app/metric-chart/annotations.tsx",
          "type": "registry:component",
          "target": "blocks/app/metric-chart/annotations.tsx"
        },
        {
          "path": "src/blocks/app/metric-chart/data.ts",
          "type": "registry:component",
          "target": "blocks/app/metric-chart/data.ts"
        },
        {
          "path": "src/blocks/app/metric-chart/headline.tsx",
          "type": "registry:component",
          "target": "blocks/app/metric-chart/headline.tsx"
        },
        {
          "path": "src/blocks/app/metric-chart/legend.tsx",
          "type": "registry:component",
          "target": "blocks/app/metric-chart/legend.tsx"
        },
        {
          "path": "src/blocks/app/metric-chart/plot.tsx",
          "type": "registry:component",
          "target": "blocks/app/metric-chart/plot.tsx"
        },
        {
          "path": "src/blocks/app/metric-chart/use-dates.ts",
          "type": "registry:component",
          "target": "blocks/app/metric-chart/use-dates.ts"
        },
        {
          "path": "src/blocks/app/metric-chart/use-metric.ts",
          "type": "registry:component",
          "target": "blocks/app/metric-chart/use-metric.ts"
        }
      ]
    },
    {
      "name": "app-money-overview",
      "type": "registry:block",
      "title": "App Money Overview",
      "description": "Show a personal bank’s home: the balance with its hide-amounts toggle, a swipeable card carousel, spending by category, budgets and a day-grouped activity list, with a send-money flow that adds the payment to today.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "specialized",
        "inApp": true
      },
      "dependencies": [
        "recharts@^3.8.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/app-page.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/carousel.json",
        "https://www.youj.dev/r/chart.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/drawer.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-arrow-down-left.json",
        "https://www.youj.dev/r/icon-arrow-left-right.json",
        "https://www.youj.dev/r/icon-arrow-up-right.json",
        "https://www.youj.dev/r/icon-car.json",
        "https://www.youj.dev/r/icon-check-circle.json",
        "https://www.youj.dev/r/icon-coffee.json",
        "https://www.youj.dev/r/icon-engine.json",
        "https://www.youj.dev/r/icon-eye.json",
        "https://www.youj.dev/r/icon-eye-closed.json",
        "https://www.youj.dev/r/icon-leaf.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/icon-receipt.json",
        "https://www.youj.dev/r/icon-search.json",
        "https://www.youj.dev/r/icon-send.json",
        "https://www.youj.dev/r/icon-shopping-bag.json",
        "https://www.youj.dev/r/icon-zap.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/morph-label.json",
        "https://www.youj.dev/r/number-input.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/progress.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/toggle-group.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-mobile.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/money-overview.tsx",
          "type": "registry:component",
          "target": "blocks/app/money-overview.tsx"
        },
        {
          "path": "src/blocks/app/money-overview/components/amount.tsx",
          "type": "registry:component",
          "target": "blocks/app/money-overview/components/amount.tsx"
        },
        {
          "path": "src/blocks/app/money-overview/components/balance.tsx",
          "type": "registry:component",
          "target": "blocks/app/money-overview/components/balance.tsx"
        },
        {
          "path": "src/blocks/app/money-overview/components/budgets.tsx",
          "type": "registry:component",
          "target": "blocks/app/money-overview/components/budgets.tsx"
        },
        {
          "path": "src/blocks/app/money-overview/components/cards.tsx",
          "type": "registry:component",
          "target": "blocks/app/money-overview/components/cards.tsx"
        },
        {
          "path": "src/blocks/app/money-overview/components/send-drawer.tsx",
          "type": "registry:component",
          "target": "blocks/app/money-overview/components/send-drawer.tsx"
        },
        {
          "path": "src/blocks/app/money-overview/components/spending.tsx",
          "type": "registry:component",
          "target": "blocks/app/money-overview/components/spending.tsx"
        },
        {
          "path": "src/blocks/app/money-overview/components/transactions.tsx",
          "type": "registry:component",
          "target": "blocks/app/money-overview/components/transactions.tsx"
        },
        {
          "path": "src/blocks/app/money-overview/data.tsx",
          "type": "registry:component",
          "target": "blocks/app/money-overview/data.tsx"
        },
        {
          "path": "src/blocks/app/money-overview/format.ts",
          "type": "registry:component",
          "target": "blocks/app/money-overview/format.ts"
        }
      ]
    },
    {
      "name": "app-month-agenda",
      "type": "registry:block",
      "title": "App Month Agenda",
      "description": "What comes round each month, on the kit’s Calendar: each day a tile with the marks of what falls on it and a dot for the cycle (solid monthly, a ring yearly), today lit in the accent and the days outside the month hatched.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "calendars-and-schedules"
      },
      "dependencies": [
        "react-day-picker@^10.0.1"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/calendar.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/hatched-bar.json",
        "https://www.youj.dev/r/icon-chevron-left.json",
        "https://www.youj.dev/r/icon-chevron-right.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/use-now.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/month-agenda.tsx",
          "type": "registry:component",
          "target": "blocks/app/month-agenda.tsx"
        },
        {
          "path": "src/blocks/app/month-agenda/data.ts",
          "type": "registry:component",
          "target": "blocks/app/month-agenda/data.ts"
        },
        {
          "path": "src/blocks/app/month-agenda/day.tsx",
          "type": "registry:component",
          "target": "blocks/app/month-agenda/day.tsx"
        },
        {
          "path": "src/blocks/app/month-agenda/marks.tsx",
          "type": "registry:component",
          "target": "blocks/app/month-agenda/marks.tsx"
        }
      ]
    },
    {
      "name": "app-month-forecast",
      "type": "registry:block",
      "title": "App Month Forecast",
      "description": "See where a month’s running total is heading: the projection against a budget, its likely range, the day it crosses, and the parts it is made of, with your own scenarios to switch between.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "rankings-and-breakdowns"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/forecast-band.json",
        "https://www.youj.dev/r/hatched-bar.json",
        "https://www.youj.dev/r/icon-chevron-down.json",
        "https://www.youj.dev/r/icon-more-horizontal.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/month-forecast.tsx",
          "type": "registry:component",
          "target": "blocks/app/month-forecast.tsx"
        },
        {
          "path": "src/blocks/app/month-forecast/data.ts",
          "type": "registry:component",
          "target": "blocks/app/month-forecast/data.ts"
        },
        {
          "path": "src/blocks/app/month-forecast/projection.tsx",
          "type": "registry:component",
          "target": "blocks/app/month-forecast/projection.tsx"
        },
        {
          "path": "src/blocks/app/month-forecast/series-list.tsx",
          "type": "registry:component",
          "target": "blocks/app/month-forecast/series-list.tsx"
        }
      ]
    },
    {
      "name": "app-music-studio",
      "type": "registry:block",
      "title": "App Music Studio",
      "description": "Run a music session from controls that float over the song: play, change the tempo, snap the grid and search for clips.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "workspaces-and-tools",
        "inApp": true
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/app-page.json",
        "https://www.youj.dev/r/capsule.json",
        "https://www.youj.dev/r/capsule-player.json",
        "https://www.youj.dev/r/capsule-search.json",
        "https://www.youj.dev/r/capsule-stepper.json",
        "https://www.youj.dev/r/capsule-toggle.json",
        "https://www.youj.dev/r/icon-activity.json",
        "https://www.youj.dev/r/icon-audio-lines.json",
        "https://www.youj.dev/r/icon-cpu.json",
        "https://www.youj.dev/r/icon-repeat.json",
        "https://www.youj.dev/r/icon-timer.json",
        "https://www.youj.dev/r/stat-pill.json",
        "https://www.youj.dev/r/toggle.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/music-studio.tsx",
          "type": "registry:component",
          "target": "blocks/app/music-studio.tsx"
        },
        {
          "path": "src/blocks/app/music-studio/arrangement.tsx",
          "type": "registry:component",
          "target": "blocks/app/music-studio/arrangement.tsx"
        },
        {
          "path": "src/blocks/app/music-studio/data.ts",
          "type": "registry:component",
          "target": "blocks/app/music-studio/data.ts"
        },
        {
          "path": "src/blocks/app/music-studio/use-transport.ts",
          "type": "registry:component",
          "target": "blocks/app/music-studio/use-transport.ts"
        }
      ]
    },
    {
      "name": "app-notification-inbox",
      "type": "registry:block",
      "title": "App Notification Inbox",
      "description": "An inbox for mentions, replies and alerts, with filters, read states and the channels each kind reaches you on.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "data-and-lists",
        "inApp": true
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/app-page.json",
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-archive.json",
        "https://www.youj.dev/r/icon-at-sign.json",
        "https://www.youj.dev/r/icon-bell.json",
        "https://www.youj.dev/r/icon-check-check.json",
        "https://www.youj.dev/r/icon-credit-card.json",
        "https://www.youj.dev/r/icon-engine.json",
        "https://www.youj.dev/r/icon-inbox.json",
        "https://www.youj.dev/r/icon-mail.json",
        "https://www.youj.dev/r/icon-mail-open.json",
        "https://www.youj.dev/r/icon-message.json",
        "https://www.youj.dev/r/icon-rocket.json",
        "https://www.youj.dev/r/icon-shield-alert.json",
        "https://www.youj.dev/r/illustrations.json",
        "https://www.youj.dev/r/notification-center.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/switch.json",
        "https://www.youj.dev/r/tabs.json",
        "https://www.youj.dev/r/toggle.json",
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-now.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/notification-inbox.tsx",
          "type": "registry:component",
          "target": "blocks/app/notification-inbox.tsx"
        },
        {
          "path": "src/blocks/app/notification-inbox/data.ts",
          "type": "registry:component",
          "target": "blocks/app/notification-inbox/data.ts"
        },
        {
          "path": "src/blocks/app/notification-inbox/inbox-list.tsx",
          "type": "registry:component",
          "target": "blocks/app/notification-inbox/inbox-list.tsx"
        },
        {
          "path": "src/blocks/app/notification-inbox/preferences.tsx",
          "type": "registry:component",
          "target": "blocks/app/notification-inbox/preferences.tsx"
        }
      ]
    },
    {
      "name": "app-onboarding",
      "type": "registry:block",
      "title": "App Onboarding",
      "description": "Welcome your users with a guided flow for naming a workspace, choosing a theme and inviting teammates.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "onboarding-and-auth"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/grid-backdrops.json",
        "https://www.youj.dev/r/icon-check-circle.json",
        "https://www.youj.dev/r/icon-rocket.json",
        "https://www.youj.dev/r/icon-sparkles.json",
        "https://www.youj.dev/r/icon-user-plus.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/illustrations.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/radio-group.json",
        "https://www.youj.dev/r/stepper.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/onboarding.tsx",
          "type": "registry:component",
          "target": "blocks/app/onboarding.tsx"
        },
        {
          "path": "src/blocks/app/onboarding/data.ts",
          "type": "registry:component",
          "target": "blocks/app/onboarding/data.ts"
        },
        {
          "path": "src/blocks/app/onboarding/parts.tsx",
          "type": "registry:component",
          "target": "blocks/app/onboarding/parts.tsx"
        }
      ]
    },
    {
      "name": "app-pace-budget",
      "type": "registry:block",
      "title": "App Pace Budget",
      "description": "See where a period’s budget went, the day it runs out at the current pace, and a plan that frees some of it step by step.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "rankings-and-breakdowns"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-more-horizontal.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/share-bar.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/switch.json",
        "https://www.youj.dev/r/treemap.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/pace-budget.tsx",
          "type": "registry:component",
          "target": "blocks/app/pace-budget.tsx"
        },
        {
          "path": "src/blocks/app/pace-budget/data.ts",
          "type": "registry:component",
          "target": "blocks/app/pace-budget/data.ts"
        },
        {
          "path": "src/blocks/app/pace-budget/steps-plan.tsx",
          "type": "registry:component",
          "target": "blocks/app/pace-budget/steps-plan.tsx"
        }
      ]
    },
    {
      "name": "app-paired-bars",
      "type": "registry:block",
      "title": "App Paired Bars",
      "description": "Two things side by side: per row, two bars on one shared axis, the numbers behind them and optionally a second figure for each, with an old one struck through.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "trends-and-comparisons"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-search.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/paired-bars.tsx",
          "type": "registry:component",
          "target": "blocks/app/paired-bars.tsx"
        },
        {
          "path": "src/blocks/app/paired-bars/data.ts",
          "type": "registry:component",
          "target": "blocks/app/paired-bars/data.ts"
        },
        {
          "path": "src/blocks/app/paired-bars/scale.ts",
          "type": "registry:component",
          "target": "blocks/app/paired-bars/scale.ts"
        },
        {
          "path": "src/blocks/app/paired-bars/table.tsx",
          "type": "registry:component",
          "target": "blocks/app/paired-bars/table.tsx"
        }
      ]
    },
    {
      "name": "app-percentile-trend",
      "type": "registry:block",
      "title": "App Percentile Trend",
      "description": "See how long things take, as a spread: the p99 and its change, every sample on a strip against a target, and the worst items.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "trends-and-comparisons"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/distribution-strip.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-download.json",
        "https://www.youj.dev/r/icon-link.json",
        "https://www.youj.dev/r/icon-more-horizontal.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/share-bar.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/percentile-trend.tsx",
          "type": "registry:component",
          "target": "blocks/app/percentile-trend.tsx"
        },
        {
          "path": "src/blocks/app/percentile-trend/data.ts",
          "type": "registry:component",
          "target": "blocks/app/percentile-trend/data.ts"
        },
        {
          "path": "src/blocks/app/percentile-trend/headline.tsx",
          "type": "registry:component",
          "target": "blocks/app/percentile-trend/headline.tsx"
        },
        {
          "path": "src/blocks/app/percentile-trend/route-list.tsx",
          "type": "registry:component",
          "target": "blocks/app/percentile-trend/route-list.tsx"
        }
      ]
    },
    {
      "name": "app-permission-matrix",
      "type": "registry:block",
      "title": "App Permission Matrix",
      "description": "Choose what each role can see and change, one role at a time or as a grid, then review and save the changes together.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "forms-and-inputs"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/dialog.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-credit-card.json",
        "https://www.youj.dev/r/icon-folder.json",
        "https://www.youj.dev/r/icon-history.json",
        "https://www.youj.dev/r/icon-key.json",
        "https://www.youj.dev/r/icon-lock.json",
        "https://www.youj.dev/r/icon-more-horizontal.json",
        "https://www.youj.dev/r/icon-rocket.json",
        "https://www.youj.dev/r/icon-users.json",
        "https://www.youj.dev/r/level-matrix.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/tabs.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/permission-matrix.tsx",
          "type": "registry:component",
          "target": "blocks/app/permission-matrix.tsx"
        },
        {
          "path": "src/blocks/app/permission-matrix/data.ts",
          "type": "registry:component",
          "target": "blocks/app/permission-matrix/data.ts"
        },
        {
          "path": "src/blocks/app/permission-matrix/review-dialog.tsx",
          "type": "registry:component",
          "target": "blocks/app/permission-matrix/review-dialog.tsx"
        },
        {
          "path": "src/blocks/app/permission-matrix/role-view.tsx",
          "type": "registry:component",
          "target": "blocks/app/permission-matrix/role-view.tsx"
        }
      ]
    },
    {
      "name": "app-plan-vs-actual",
      "type": "registry:block",
      "title": "App Plan Vs Actual",
      "description": "See how each row of a set adds up over a year against its plan, whether that is agent spend, department budgets or a harvest: a row of month cells per big one and one for the rest, on one scale with each plan as a dashed tick, the year by quarter, the total to date against the plan to date, the projected year, a few facts and the biggest movers with why.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "rankings-and-breakdowns"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/cell-bar.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/hatched-bar.json",
        "https://www.youj.dev/r/icon-bell.json",
        "https://www.youj.dev/r/icon-bot.json",
        "https://www.youj.dev/r/icon-clock.json",
        "https://www.youj.dev/r/icon-gauge.json",
        "https://www.youj.dev/r/icon-trending-down.json",
        "https://www.youj.dev/r/icon-trending-up.json",
        "https://www.youj.dev/r/icon-wallet.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/stat-card.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/plan-vs-actual.tsx",
          "type": "registry:component",
          "target": "blocks/app/plan-vs-actual.tsx"
        },
        {
          "path": "src/blocks/app/plan-vs-actual/data.ts",
          "type": "registry:component",
          "target": "blocks/app/plan-vs-actual/data.ts"
        },
        {
          "path": "src/blocks/app/plan-vs-actual/rows.tsx",
          "type": "registry:component",
          "target": "blocks/app/plan-vs-actual/rows.tsx"
        },
        {
          "path": "src/blocks/app/plan-vs-actual/summary.tsx",
          "type": "registry:component",
          "target": "blocks/app/plan-vs-actual/summary.tsx"
        }
      ]
    },
    {
      "name": "app-portfolio",
      "type": "registry:block",
      "title": "App Portfolio",
      "description": "See what something is worth, how it moved over a period and what it is made of: investments, revenue by product line, spend by campaign.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "rankings-and-breakdowns"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-banknote.json",
        "https://www.youj.dev/r/icon-building.json",
        "https://www.youj.dev/r/icon-chart-area.json",
        "https://www.youj.dev/r/icon-info.json",
        "https://www.youj.dev/r/icon-landmark.json",
        "https://www.youj.dev/r/icon-pie-chart.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels-portfolio.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/portfolio.tsx",
          "type": "registry:component",
          "target": "blocks/app/portfolio.tsx"
        },
        {
          "path": "src/blocks/app/portfolio/chart.tsx",
          "type": "registry:component",
          "target": "blocks/app/portfolio/chart.tsx"
        },
        {
          "path": "src/blocks/app/portfolio/data.tsx",
          "type": "registry:component",
          "target": "blocks/app/portfolio/data.tsx"
        },
        {
          "path": "src/blocks/app/portfolio/holdings.tsx",
          "type": "registry:component",
          "target": "blocks/app/portfolio/holdings.tsx"
        }
      ]
    },
    {
      "name": "app-preview-list",
      "type": "registry:block",
      "title": "App Preview List",
      "description": "List things with a picture of each, its status, where to find it, who made it, its latest activity and a button for the details, with search, sort and a create button above.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "tables-and-lists"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-arrow-up-right.json",
        "https://www.youj.dev/r/icon-folder.json",
        "https://www.youj.dev/r/icon-git-branch.json",
        "https://www.youj.dev/r/icon-globe.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/icon-rocket.json",
        "https://www.youj.dev/r/icon-search.json",
        "https://www.youj.dev/r/icon-settings.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/preview-list.tsx",
          "type": "registry:component",
          "target": "blocks/app/preview-list.tsx"
        },
        {
          "path": "src/blocks/app/preview-list/data.ts",
          "type": "registry:component",
          "target": "blocks/app/preview-list/data.ts"
        },
        {
          "path": "src/blocks/app/preview-list/row.tsx",
          "type": "registry:component",
          "target": "blocks/app/preview-list/row.tsx"
        },
        {
          "path": "src/blocks/app/preview-list/thumb.tsx",
          "type": "registry:component",
          "target": "blocks/app/preview-list/thumb.tsx"
        }
      ]
    },
    {
      "name": "app-procedure",
      "type": "registry:block",
      "title": "App Procedure",
      "description": "Follow a procedure that scales its inputs to your yield and keeps timers beside the steps, with a ring that splits what a yield amounts to.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "forms-and-inputs"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/checkbox.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-bookmark.json",
        "https://www.youj.dev/r/icon-list-checks.json",
        "https://www.youj.dev/r/icon-play.json",
        "https://www.youj.dev/r/icon-rotate-ccw.json",
        "https://www.youj.dev/r/number-input.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/share-ring.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/procedure.tsx",
          "type": "registry:component",
          "target": "blocks/app/procedure.tsx"
        },
        {
          "path": "src/blocks/app/procedure/data.ts",
          "type": "registry:component",
          "target": "blocks/app/procedure/data.ts"
        },
        {
          "path": "src/blocks/app/procedure/inputs.tsx",
          "type": "registry:component",
          "target": "blocks/app/procedure/inputs.tsx"
        },
        {
          "path": "src/blocks/app/procedure/states.tsx",
          "type": "registry:component",
          "target": "blocks/app/procedure/states.tsx"
        },
        {
          "path": "src/blocks/app/procedure/steps.tsx",
          "type": "registry:component",
          "target": "blocks/app/procedure/steps.tsx"
        }
      ]
    },
    {
      "name": "app-profile",
      "type": "registry:block",
      "title": "App Profile",
      "description": "Give creators a public profile with a cover, follow controls and a link visitors can copy.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "settings-and-account",
        "inApp": true
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/app-page.json",
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/avatar-stack.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/icon-badge-check.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-external-link.json",
        "https://www.youj.dev/r/icon-heart.json",
        "https://www.youj.dev/r/icon-link.json",
        "https://www.youj.dev/r/icon-map-pin.json",
        "https://www.youj.dev/r/icon-message.json",
        "https://www.youj.dev/r/icon-package.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/icon-star.json",
        "https://www.youj.dev/r/icon-type.json",
        "https://www.youj.dev/r/morph-label.json",
        "https://www.youj.dev/r/stagger.json",
        "https://www.youj.dev/r/tabs.json",
        "https://www.youj.dev/r/timeline.json",
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/profile.tsx",
          "type": "registry:component",
          "target": "blocks/app/profile.tsx"
        },
        {
          "path": "src/blocks/app/profile/data.ts",
          "type": "registry:component",
          "target": "blocks/app/profile/data.ts"
        },
        {
          "path": "src/blocks/app/profile/heatmap.tsx",
          "type": "registry:component",
          "target": "blocks/app/profile/heatmap.tsx"
        },
        {
          "path": "src/blocks/app/profile/profile-aside.tsx",
          "type": "registry:component",
          "target": "blocks/app/profile/profile-aside.tsx"
        },
        {
          "path": "src/blocks/app/profile/profile-header.tsx",
          "type": "registry:component",
          "target": "blocks/app/profile/profile-header.tsx"
        },
        {
          "path": "src/blocks/app/profile/profile-tabs.tsx",
          "type": "registry:component",
          "target": "blocks/app/profile/profile-tabs.tsx"
        }
      ]
    },
    {
      "name": "app-public-status",
      "type": "registry:block",
      "title": "App Public Status",
      "description": "Keep your customers informed with a public status page for the same services, their uptime and incident updates.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "marketing-and-status"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/app-status.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/collapsible.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/history-strip.json",
        "https://www.youj.dev/r/icon-activity.json",
        "https://www.youj.dev/r/icon-alert-triangle.json",
        "https://www.youj.dev/r/icon-bell.json",
        "https://www.youj.dev/r/icon-check-circle.json",
        "https://www.youj.dev/r/icon-circle-x.json",
        "https://www.youj.dev/r/icon-copy.json",
        "https://www.youj.dev/r/icon-rss.json",
        "https://www.youj.dev/r/icon-search.json",
        "https://www.youj.dev/r/icon-webhook.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/popover.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/sparkline.json",
        "https://www.youj.dev/r/tabs.json",
        "https://www.youj.dev/r/timeline.json",
        "https://www.youj.dev/r/toggle-group.json",
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/use-now.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/public-status.tsx",
          "type": "registry:component",
          "target": "blocks/app/public-status.tsx"
        },
        {
          "path": "src/blocks/app/public-status/data.ts",
          "type": "registry:component",
          "target": "blocks/app/public-status/data.ts"
        },
        {
          "path": "src/blocks/app/public-status/past-incidents.tsx",
          "type": "registry:component",
          "target": "blocks/app/public-status/past-incidents.tsx"
        },
        {
          "path": "src/blocks/app/public-status/pulse-dot.tsx",
          "type": "registry:component",
          "target": "blocks/app/public-status/pulse-dot.tsx"
        },
        {
          "path": "src/blocks/app/public-status/response-times.tsx",
          "type": "registry:component",
          "target": "blocks/app/public-status/response-times.tsx"
        },
        {
          "path": "src/blocks/app/public-status/service-row.tsx",
          "type": "registry:component",
          "target": "blocks/app/public-status/service-row.tsx"
        },
        {
          "path": "src/blocks/app/public-status/subscribe-popover.tsx",
          "type": "registry:component",
          "target": "blocks/app/public-status/subscribe-popover.tsx"
        }
      ]
    },
    {
      "name": "app-quadrant",
      "type": "registry:block",
      "title": "App Quadrant",
      "description": "How two measures relate: items as bubbles split into four groups by two lines you can drag.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "trends-and-comparisons"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/switch.json",
        "https://www.youj.dev/r/toggle.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/quadrant.tsx",
          "type": "registry:component",
          "target": "blocks/app/quadrant.tsx"
        },
        {
          "path": "src/blocks/app/quadrant/data.ts",
          "type": "registry:component",
          "target": "blocks/app/quadrant/data.ts"
        },
        {
          "path": "src/blocks/app/quadrant/list.tsx",
          "type": "registry:component",
          "target": "blocks/app/quadrant/list.tsx"
        },
        {
          "path": "src/blocks/app/quadrant/plot.tsx",
          "type": "registry:component",
          "target": "blocks/app/quadrant/plot.tsx"
        }
      ]
    },
    {
      "name": "app-queue-flow",
      "type": "registry:block",
      "title": "App Queue Flow",
      "description": "Watch work move through a queue live: items ride from where they arrive through triage to the teams that handle them, a team over its target slows its route and makes triage hold back, and rejected items go to their own folder.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "flows"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/icon-ban.json",
        "https://www.youj.dev/r/icon-bot.json",
        "https://www.youj.dev/r/icon-code.json",
        "https://www.youj.dev/r/icon-credit-card.json",
        "https://www.youj.dev/r/icon-mail.json",
        "https://www.youj.dev/r/icon-messages.json",
        "https://www.youj.dev/r/icon-phone.json",
        "https://www.youj.dev/r/icon-play.json",
        "https://www.youj.dev/r/icon-route.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/sparkline.json",
        "https://www.youj.dev/r/stat-card.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-visible.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/queue-flow.tsx",
          "type": "registry:component",
          "target": "blocks/app/queue-flow.tsx"
        },
        {
          "path": "src/blocks/app/queue-flow/canvas.tsx",
          "type": "registry:component",
          "target": "blocks/app/queue-flow/canvas.tsx"
        },
        {
          "path": "src/blocks/app/queue-flow/data.ts",
          "type": "registry:component",
          "target": "blocks/app/queue-flow/data.ts"
        },
        {
          "path": "src/blocks/app/queue-flow/inspector.tsx",
          "type": "registry:component",
          "target": "blocks/app/queue-flow/inspector.tsx"
        },
        {
          "path": "src/blocks/app/queue-flow/items.tsx",
          "type": "registry:component",
          "target": "blocks/app/queue-flow/items.tsx"
        }
      ]
    },
    {
      "name": "app-queue-monitor",
      "type": "registry:block",
      "title": "App Queue Monitor",
      "description": "Keep an eye on the work waiting in a queue: throughput, waits, and the backlog, busy slots and failures as lanes of cells.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "status-and-health"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-more-horizontal.json",
        "https://www.youj.dev/r/lane-meter.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/sparkline.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/queue-monitor.tsx",
          "type": "registry:component",
          "target": "blocks/app/queue-monitor.tsx"
        },
        {
          "path": "src/blocks/app/queue-monitor/data.ts",
          "type": "registry:component",
          "target": "blocks/app/queue-monitor/data.ts"
        },
        {
          "path": "src/blocks/app/queue-monitor/throughput.tsx",
          "type": "registry:component",
          "target": "blocks/app/queue-monitor/throughput.tsx"
        },
        {
          "path": "src/blocks/app/queue-monitor/use-live-queue.ts",
          "type": "registry:component",
          "target": "blocks/app/queue-monitor/use-live-queue.ts"
        }
      ]
    },
    {
      "name": "app-radial-network",
      "type": "registry:block",
      "title": "App Radial Network",
      "description": "See what one thing reaches, ring by ring: nodes in their kind’s color, a state can give one a solid or dashed ring in its own tone, and the foot counts each state and the total for the hops shown.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "networks-and-maps"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/radial-graph.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/radial-network.tsx",
          "type": "registry:component",
          "target": "blocks/app/radial-network.tsx"
        },
        {
          "path": "src/blocks/app/radial-network/data.ts",
          "type": "registry:component",
          "target": "blocks/app/radial-network/data.ts"
        }
      ]
    },
    {
      "name": "app-record-drawer",
      "type": "registry:block",
      "title": "App Record Drawer",
      "description": "Open a deal from the pipeline in a floating drawer over the list: its owner, stage, odds, dates and value, then its meetings, progress, notes and activity.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "data-and-lists",
        "inApp": true
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/app-page.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/icon-activity.json",
        "https://www.youj.dev/r/icon-banknote.json",
        "https://www.youj.dev/r/icon-bar-chart.json",
        "https://www.youj.dev/r/icon-briefcase.json",
        "https://www.youj.dev/r/icon-building.json",
        "https://www.youj.dev/r/icon-calendar-check.json",
        "https://www.youj.dev/r/icon-calendar-clock.json",
        "https://www.youj.dev/r/icon-circle-dashed.json",
        "https://www.youj.dev/r/icon-circle-user.json",
        "https://www.youj.dev/r/icon-file-text.json",
        "https://www.youj.dev/r/icon-flag.json",
        "https://www.youj.dev/r/icon-hash.json",
        "https://www.youj.dev/r/icon-list-checks.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/icon-user-check.json",
        "https://www.youj.dev/r/icon-video.json",
        "https://www.youj.dev/r/item-pager.json",
        "https://www.youj.dev/r/property-list.json",
        "https://www.youj.dev/r/sheet.json",
        "https://www.youj.dev/r/tables-data-grid.json",
        "https://www.youj.dev/r/toast.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/record-drawer.tsx",
          "type": "registry:component",
          "target": "blocks/app/record-drawer.tsx"
        },
        {
          "path": "src/blocks/app/record-drawer/columns.tsx",
          "type": "registry:component",
          "target": "blocks/app/record-drawer/columns.tsx"
        },
        {
          "path": "src/blocks/app/record-drawer/data.ts",
          "type": "registry:component",
          "target": "blocks/app/record-drawer/data.ts"
        },
        {
          "path": "src/blocks/app/record-drawer/drawer.tsx",
          "type": "registry:component",
          "target": "blocks/app/record-drawer/drawer.tsx"
        },
        {
          "path": "src/blocks/app/record-drawer/sections.tsx",
          "type": "registry:component",
          "target": "blocks/app/record-drawer/sections.tsx"
        }
      ]
    },
    {
      "name": "app-records-grid",
      "type": "registry:block",
      "title": "App Records Grid",
      "description": "Work through every order in one virtualized grid: filter by payment, fulfillment or channel, open an order in a side sheet, and pack, ship or print labels in bulk.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "data-and-lists",
        "inApp": true
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/app-page.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/icon-arrow-up-right.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-download.json",
        "https://www.youj.dev/r/icon-mail.json",
        "https://www.youj.dev/r/icon-package.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/icon-printer.json",
        "https://www.youj.dev/r/icon-rotate-ccw.json",
        "https://www.youj.dev/r/icon-truck.json",
        "https://www.youj.dev/r/illustrations.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/sheet.json",
        "https://www.youj.dev/r/stat-card.json",
        "https://www.youj.dev/r/tables-data-grid.json",
        "https://www.youj.dev/r/toast.json",
        "https://www.youj.dev/r/use-mobile.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/records-grid.tsx",
          "type": "registry:component",
          "target": "blocks/app/records-grid.tsx"
        },
        {
          "path": "src/blocks/app/records-grid/columns.tsx",
          "type": "registry:component",
          "target": "blocks/app/records-grid/columns.tsx"
        },
        {
          "path": "src/blocks/app/records-grid/copy.ts",
          "type": "registry:component",
          "target": "blocks/app/records-grid/copy.ts"
        },
        {
          "path": "src/blocks/app/records-grid/data.ts",
          "type": "registry:component",
          "target": "blocks/app/records-grid/data.ts"
        },
        {
          "path": "src/blocks/app/records-grid/detail.tsx",
          "type": "registry:component",
          "target": "blocks/app/records-grid/detail.tsx"
        },
        {
          "path": "src/blocks/app/records-grid/props.ts",
          "type": "registry:component",
          "target": "blocks/app/records-grid/props.ts"
        },
        {
          "path": "src/blocks/app/records-grid/stats.tsx",
          "type": "registry:component",
          "target": "blocks/app/records-grid/stats.tsx"
        }
      ]
    },
    {
      "name": "app-region-map",
      "type": "registry:block",
      "title": "App Region Map",
      "description": "See where activity comes from on a world map, region by region: its share of the total, its rate and a reading that flags the ones in trouble.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "networks-and-maps"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/dot-map.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-more-horizontal.json",
        "https://www.youj.dev/r/icon-play.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/share-bar.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/table.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-visible.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/region-map.tsx",
          "type": "registry:component",
          "target": "blocks/app/region-map.tsx"
        },
        {
          "path": "src/blocks/app/region-map/data.ts",
          "type": "registry:component",
          "target": "blocks/app/region-map/data.ts"
        },
        {
          "path": "src/blocks/app/region-map/placeholder.tsx",
          "type": "registry:component",
          "target": "blocks/app/region-map/placeholder.tsx"
        },
        {
          "path": "src/blocks/app/region-map/region-table.tsx",
          "type": "registry:component",
          "target": "blocks/app/region-map/region-table.tsx"
        }
      ]
    },
    {
      "name": "app-request-tracking",
      "type": "registry:block",
      "title": "App Request Tracking",
      "description": "Let people look up an order, request or incident by its reference and see where it stands, step by step, with when each step happened and what comes next.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "marketing-and-status"
      },
      "dependencies": [
        "@youj/miniatures@^0.1.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-circle-alert.json",
        "https://www.youj.dev/r/icon-clock.json",
        "https://www.youj.dev/r/icon-search.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/stagger.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/request-tracking.tsx",
          "type": "registry:component",
          "target": "blocks/app/request-tracking.tsx"
        },
        {
          "path": "src/blocks/app/request-tracking/data.ts",
          "type": "registry:component",
          "target": "blocks/app/request-tracking/data.ts"
        },
        {
          "path": "src/blocks/app/request-tracking/packaging-line.tsx",
          "type": "registry:component",
          "target": "blocks/app/request-tracking/packaging-line.tsx"
        }
      ]
    },
    {
      "name": "app-retention",
      "type": "registry:block",
      "title": "App Retention",
      "description": "Who stays: the cohort triangle under its curve.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "trends-and-comparisons"
      },
      "dependencies": [
        "motion@^14",
        "recharts@^3.8.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/chart.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/stat-card.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/retention.tsx",
          "type": "registry:component",
          "target": "blocks/app/retention.tsx"
        },
        {
          "path": "src/blocks/app/retention/curve.tsx",
          "type": "registry:component",
          "target": "blocks/app/retention/curve.tsx"
        },
        {
          "path": "src/blocks/app/retention/data.ts",
          "type": "registry:component",
          "target": "blocks/app/retention/data.ts"
        },
        {
          "path": "src/blocks/app/retention/grid.tsx",
          "type": "registry:component",
          "target": "blocks/app/retention/grid.tsx"
        }
      ]
    },
    {
      "name": "app-roadmap-timeline",
      "type": "registry:block",
      "title": "App Roadmap Timeline",
      "description": "A year on one ruler, for a product, a wedding or a renovation: a pin per item, taller for the big ones, solid once done, hollow while upcoming and amber when it needs attention, with today marked and a count where items crowd one week.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "timelines-and-steps"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/milestone-ruler.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/use-now.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/roadmap-timeline.tsx",
          "type": "registry:component",
          "target": "blocks/app/roadmap-timeline.tsx"
        },
        {
          "path": "src/blocks/app/roadmap-timeline/data.ts",
          "type": "registry:component",
          "target": "blocks/app/roadmap-timeline/data.ts"
        }
      ]
    },
    {
      "name": "app-routing-flow",
      "type": "registry:block",
      "title": "App Routing Flow",
      "description": "See how a stream is routed and what it costs: the blended cost, a strategy switch (your own strategies) that reshapes the split, the source fanning out to each route as a stream as dense as its share, the routes with share, time, cost and failures, a fallback rule, and Deploy policy for the draft.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "flows"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/flow-lanes.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/share-bar.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/stat-card.json",
        "https://www.youj.dev/r/switch.json",
        "https://www.youj.dev/r/table.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/routing-flow.tsx",
          "type": "registry:component",
          "target": "blocks/app/routing-flow.tsx"
        },
        {
          "path": "src/blocks/app/routing-flow/data.ts",
          "type": "registry:component",
          "target": "blocks/app/routing-flow/data.ts"
        },
        {
          "path": "src/blocks/app/routing-flow/routes.tsx",
          "type": "registry:component",
          "target": "blocks/app/routing-flow/routes.tsx"
        }
      ]
    },
    {
      "name": "app-running-total",
      "type": "registry:block",
      "title": "App Running Total",
      "description": "A total as it builds up against the period before: both running totals by day number, the gap between them washed, each line ending in its value, a note beside its point and the day it passed last period underneath.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "trends-and-comparisons"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/stat-card.json",
        "https://www.youj.dev/r/use-resize-measure.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/running-total.tsx",
          "type": "registry:component",
          "target": "blocks/app/running-total.tsx"
        },
        {
          "path": "src/blocks/app/running-total/data.ts",
          "type": "registry:component",
          "target": "blocks/app/running-total/data.ts"
        },
        {
          "path": "src/blocks/app/running-total/plot.tsx",
          "type": "registry:component",
          "target": "blocks/app/running-total/plot.tsx"
        },
        {
          "path": "src/blocks/app/running-total/stats.ts",
          "type": "registry:component",
          "target": "blocks/app/running-total/stats.ts"
        }
      ]
    },
    {
      "name": "app-score-overview",
      "type": "registry:block",
      "title": "App Score Overview",
      "description": "Where anything audited stands: a ring of ticks lit up to the score with its letter grade, the score and how it moved, then open findings, resolved, assets and the median fix time.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "status-and-health"
      },
      "dependencies": [
        "recharts@^3.8.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/chart.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-download.json",
        "https://www.youj.dev/r/icon-refresh.json",
        "https://www.youj.dev/r/icon-shield-check.json",
        "https://www.youj.dev/r/score-ring.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/sparkline.json",
        "https://www.youj.dev/r/stat-card.json",
        "https://www.youj.dev/r/tabs.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/use-now.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/score-overview.tsx",
          "type": "registry:component",
          "target": "blocks/app/score-overview.tsx"
        },
        {
          "path": "src/blocks/app/score-overview/data.ts",
          "type": "registry:component",
          "target": "blocks/app/score-overview/data.ts"
        },
        {
          "path": "src/blocks/app/score-overview/figures.tsx",
          "type": "registry:component",
          "target": "blocks/app/score-overview/figures.tsx"
        },
        {
          "path": "src/blocks/app/score-overview/lists.tsx",
          "type": "registry:component",
          "target": "blocks/app/score-overview/lists.tsx"
        },
        {
          "path": "src/blocks/app/score-overview/states.tsx",
          "type": "registry:component",
          "target": "blocks/app/score-overview/states.tsx"
        },
        {
          "path": "src/blocks/app/score-overview/trend.tsx",
          "type": "registry:component",
          "target": "blocks/app/score-overview/trend.tsx"
        }
      ]
    },
    {
      "name": "app-search-results",
      "type": "registry:block",
      "title": "App Search Results",
      "description": "Help your users find pages and content with a search results screen for your app or knowledge base.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "data-and-lists",
        "inApp": true
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/app-page.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/checkbox.json",
        "https://www.youj.dev/r/collapse.json",
        "https://www.youj.dev/r/command.json",
        "https://www.youj.dev/r/content-swap.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-arrow-up-right.json",
        "https://www.youj.dev/r/icon-corner-down-left.json",
        "https://www.youj.dev/r/icon-file-text.json",
        "https://www.youj.dev/r/icon-history.json",
        "https://www.youj.dev/r/icon-kanban.json",
        "https://www.youj.dev/r/icon-link.json",
        "https://www.youj.dev/r/icon-search.json",
        "https://www.youj.dev/r/icon-sliders.json",
        "https://www.youj.dev/r/icon-trending-up.json",
        "https://www.youj.dev/r/icon-user.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/kbd.json",
        "https://www.youj.dev/r/popover.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/progress.json",
        "https://www.youj.dev/r/radio-group.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/sheet.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/toast.json",
        "https://www.youj.dev/r/toggle.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/search-results.tsx",
          "type": "registry:component",
          "target": "blocks/app/search-results.tsx"
        },
        {
          "path": "src/blocks/app/search-results/active-filters.tsx",
          "type": "registry:component",
          "target": "blocks/app/search-results/active-filters.tsx"
        },
        {
          "path": "src/blocks/app/search-results/address.tsx",
          "type": "registry:component",
          "target": "blocks/app/search-results/address.tsx"
        },
        {
          "path": "src/blocks/app/search-results/copy.ts",
          "type": "registry:component",
          "target": "blocks/app/search-results/copy.ts"
        },
        {
          "path": "src/blocks/app/search-results/data.ts",
          "type": "registry:component",
          "target": "blocks/app/search-results/data.ts"
        },
        {
          "path": "src/blocks/app/search-results/facets.tsx",
          "type": "registry:component",
          "target": "blocks/app/search-results/facets.tsx"
        },
        {
          "path": "src/blocks/app/search-results/filter-sheet.tsx",
          "type": "registry:component",
          "target": "blocks/app/search-results/filter-sheet.tsx"
        },
        {
          "path": "src/blocks/app/search-results/model.ts",
          "type": "registry:component",
          "target": "blocks/app/search-results/model.ts"
        },
        {
          "path": "src/blocks/app/search-results/query-field.tsx",
          "type": "registry:component",
          "target": "blocks/app/search-results/query-field.tsx"
        },
        {
          "path": "src/blocks/app/search-results/result-cards.tsx",
          "type": "registry:component",
          "target": "blocks/app/search-results/result-cards.tsx"
        },
        {
          "path": "src/blocks/app/search-results/results.tsx",
          "type": "registry:component",
          "target": "blocks/app/search-results/results.tsx"
        },
        {
          "path": "src/blocks/app/search-results/states.tsx",
          "type": "registry:component",
          "target": "blocks/app/search-results/states.tsx"
        }
      ]
    },
    {
      "name": "app-seat-plan",
      "type": "registry:block",
      "title": "App Seat Plan",
      "description": "Let your users choose seats on a plan, with prices, fees and a reservation timer in view.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "forms-and-inputs"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-more-horizontal.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/seat-map.json",
        "https://www.youj.dev/r/share-bar.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-visible.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/seat-plan.tsx",
          "type": "registry:component",
          "target": "blocks/app/seat-plan.tsx"
        },
        {
          "path": "src/blocks/app/seat-plan/data.ts",
          "type": "registry:component",
          "target": "blocks/app/seat-plan/data.ts"
        },
        {
          "path": "src/blocks/app/seat-plan/selection.tsx",
          "type": "registry:component",
          "target": "blocks/app/seat-plan/selection.tsx"
        },
        {
          "path": "src/blocks/app/seat-plan/states.tsx",
          "type": "registry:component",
          "target": "blocks/app/seat-plan/states.tsx"
        }
      ]
    },
    {
      "name": "app-settings",
      "type": "registry:block",
      "title": "App Settings",
      "description": "Bring account, team, billing and notification preferences together in a tabbed settings page.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "settings-and-account",
        "inApp": true
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/alert-dialog.json",
        "https://www.youj.dev/r/app-page.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/avatar-upload.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/checkbox.json",
        "https://www.youj.dev/r/dialog.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-bell.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-credit-card.json",
        "https://www.youj.dev/r/icon-download.json",
        "https://www.youj.dev/r/icon-more-horizontal.json",
        "https://www.youj.dev/r/icon-shield.json",
        "https://www.youj.dev/r/icon-user.json",
        "https://www.youj.dev/r/icon-user-plus.json",
        "https://www.youj.dev/r/icon-users.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/password-input.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/radio-group.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/spotlight.json",
        "https://www.youj.dev/r/switch.json",
        "https://www.youj.dev/r/table.json",
        "https://www.youj.dev/r/tabs.json",
        "https://www.youj.dev/r/textarea.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/use-mobile.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/settings.tsx",
          "type": "registry:component",
          "target": "blocks/app/settings.tsx"
        },
        {
          "path": "src/blocks/app/settings/account-tab.tsx",
          "type": "registry:component",
          "target": "blocks/app/settings/account-tab.tsx"
        },
        {
          "path": "src/blocks/app/settings/billing-tab.tsx",
          "type": "registry:component",
          "target": "blocks/app/settings/billing-tab.tsx"
        },
        {
          "path": "src/blocks/app/settings/data.ts",
          "type": "registry:component",
          "target": "blocks/app/settings/data.ts"
        },
        {
          "path": "src/blocks/app/settings/invite-dialog.tsx",
          "type": "registry:component",
          "target": "blocks/app/settings/invite-dialog.tsx"
        },
        {
          "path": "src/blocks/app/settings/notification-preferences-data.tsx",
          "type": "registry:component",
          "target": "blocks/app/settings/notification-preferences-data.tsx"
        },
        {
          "path": "src/blocks/app/settings/notification-preferences.tsx",
          "type": "registry:component",
          "target": "blocks/app/settings/notification-preferences.tsx"
        },
        {
          "path": "src/blocks/app/settings/notifications-tab.tsx",
          "type": "registry:component",
          "target": "blocks/app/settings/notifications-tab.tsx"
        },
        {
          "path": "src/blocks/app/settings/profile-tab.tsx",
          "type": "registry:component",
          "target": "blocks/app/settings/profile-tab.tsx"
        },
        {
          "path": "src/blocks/app/settings/section.tsx",
          "type": "registry:component",
          "target": "blocks/app/settings/section.tsx"
        },
        {
          "path": "src/blocks/app/settings/team-tab.tsx",
          "type": "registry:component",
          "target": "blocks/app/settings/team-tab.tsx"
        }
      ]
    },
    {
      "name": "app-setup-picker",
      "type": "registry:block",
      "title": "App Setup Picker",
      "description": "Help your users choose a deployment setup with cards that show how each option is arranged.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "onboarding-and-states"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/iso-scene.json",
        "https://www.youj.dev/r/iso-shapes.json",
        "https://www.youj.dev/r/radio-group.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/setup-picker.tsx",
          "type": "registry:component",
          "target": "blocks/app/setup-picker.tsx"
        },
        {
          "path": "src/blocks/app/setup-picker/data.ts",
          "type": "registry:component",
          "target": "blocks/app/setup-picker/data.ts"
        },
        {
          "path": "src/blocks/app/setup-picker/shapes.tsx",
          "type": "registry:component",
          "target": "blocks/app/setup-picker/shapes.tsx"
        }
      ]
    },
    {
      "name": "app-setup-stepper",
      "type": "registry:block",
      "title": "App Setup Stepper",
      "description": "Set something up step by step: name it, pick from a list, place a slider, switch pills on and choose who gets access.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "forms-and-inputs"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/gradient-slider.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-check-circle.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/radio-group.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/textarea.json",
        "https://www.youj.dev/r/toggle.json",
        "https://www.youj.dev/r/wizard.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/setup-stepper.tsx",
          "type": "registry:component",
          "target": "blocks/app/setup-stepper.tsx"
        },
        {
          "path": "src/blocks/app/setup-stepper/config-preview.tsx",
          "type": "registry:component",
          "target": "blocks/app/setup-stepper/config-preview.tsx"
        },
        {
          "path": "src/blocks/app/setup-stepper/data.ts",
          "type": "registry:component",
          "target": "blocks/app/setup-stepper/data.ts"
        },
        {
          "path": "src/blocks/app/setup-stepper/option-chips.tsx",
          "type": "registry:component",
          "target": "blocks/app/setup-stepper/option-chips.tsx"
        }
      ]
    },
    {
      "name": "app-setup-wizard",
      "type": "registry:block",
      "title": "App Setup Wizard",
      "description": "Walk someone through a multi-step setup with checks at each step, a review, a saved draft and a finished state.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "onboarding-and-auth"
      },
      "dependencies": [
        "@hookform/resolvers@^5.9.1",
        "react-hook-form@^7.89.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/date-picker.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/form.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-pencil.json",
        "https://www.youj.dev/r/icon-save.json",
        "https://www.youj.dev/r/icon-user-plus.json",
        "https://www.youj.dev/r/illustrations.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/phone-input.json",
        "https://www.youj.dev/r/progress.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/switch.json",
        "https://www.youj.dev/r/textarea.json",
        "https://www.youj.dev/r/use-mobile.json",
        "https://www.youj.dev/r/wizard.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/setup-wizard.tsx",
          "type": "registry:component",
          "target": "blocks/app/setup-wizard.tsx"
        },
        {
          "path": "src/blocks/app/setup-wizard/data.ts",
          "type": "registry:component",
          "target": "blocks/app/setup-wizard/data.ts"
        },
        {
          "path": "src/blocks/app/setup-wizard/review.tsx",
          "type": "registry:component",
          "target": "blocks/app/setup-wizard/review.tsx"
        },
        {
          "path": "src/blocks/app/setup-wizard/steps.tsx",
          "type": "registry:component",
          "target": "blocks/app/setup-wizard/steps.tsx"
        }
      ]
    },
    {
      "name": "app-share-gauge",
      "type": "registry:block",
      "title": "App Share Gauge",
      "description": "Where a total went: a half-donut of the biggest items over a ranked list, the tail folded into Other.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "rankings-and-breakdowns"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-bot.json",
        "https://www.youj.dev/r/icon-cloud.json",
        "https://www.youj.dev/r/icon-cpu.json",
        "https://www.youj.dev/r/icon-database.json",
        "https://www.youj.dev/r/icon-globe.json",
        "https://www.youj.dev/r/icon-hard-drive.json",
        "https://www.youj.dev/r/icon-key.json",
        "https://www.youj.dev/r/icon-mail.json",
        "https://www.youj.dev/r/icon-message.json",
        "https://www.youj.dev/r/icon-network.json",
        "https://www.youj.dev/r/icon-shield.json",
        "https://www.youj.dev/r/icon-terminal.json",
        "https://www.youj.dev/r/icon-zap.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/share-gauge.tsx",
          "type": "registry:component",
          "target": "blocks/app/share-gauge.tsx"
        },
        {
          "path": "src/blocks/app/share-gauge/data.tsx",
          "type": "registry:component",
          "target": "blocks/app/share-gauge/data.tsx"
        },
        {
          "path": "src/blocks/app/share-gauge/gauge.tsx",
          "type": "registry:component",
          "target": "blocks/app/share-gauge/gauge.tsx"
        },
        {
          "path": "src/blocks/app/share-gauge/list.tsx",
          "type": "registry:component",
          "target": "blocks/app/share-gauge/list.tsx"
        },
        {
          "path": "src/blocks/app/share-gauge/model.ts",
          "type": "registry:component",
          "target": "blocks/app/share-gauge/model.ts"
        }
      ]
    },
    {
      "name": "app-shift-rota",
      "type": "registry:block",
      "title": "App Shift Rota",
      "description": "See who is on call and how the week is covered in a shared schedule.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "calendars-and-schedules"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/hatched-bar.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-more-horizontal.json",
        "https://www.youj.dev/r/icon-phone-call.json",
        "https://www.youj.dev/r/icon-repeat.json",
        "https://www.youj.dev/r/share-bar.json",
        "https://www.youj.dev/r/time-lanes.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-visible.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/shift-rota.tsx",
          "type": "registry:component",
          "target": "blocks/app/shift-rota.tsx"
        },
        {
          "path": "src/blocks/app/shift-rota/clock.tsx",
          "type": "registry:component",
          "target": "blocks/app/shift-rota/clock.tsx"
        },
        {
          "path": "src/blocks/app/shift-rota/current-card.tsx",
          "type": "registry:component",
          "target": "blocks/app/shift-rota/current-card.tsx"
        },
        {
          "path": "src/blocks/app/shift-rota/data.ts",
          "type": "registry:component",
          "target": "blocks/app/shift-rota/data.ts"
        }
      ]
    },
    {
      "name": "app-shipment-detail",
      "type": "registry:block",
      "title": "App Shipment Detail",
      "description": "Follow one shipment: the route as a stage rail with a detour, the vehicle with its readings called out, the route agent’s reroute to approve, the timeline, the record and the documents.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "workspaces-and-tools"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/annotated-image.json",
        "https://www.youj.dev/r/app-page.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/icon-alert-triangle.json",
        "https://www.youj.dev/r/icon-building.json",
        "https://www.youj.dev/r/icon-calendar-clock.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-check-circle.json",
        "https://www.youj.dev/r/icon-clock.json",
        "https://www.youj.dev/r/icon-download.json",
        "https://www.youj.dev/r/icon-eye.json",
        "https://www.youj.dev/r/icon-file-text.json",
        "https://www.youj.dev/r/icon-hash.json",
        "https://www.youj.dev/r/icon-lock.json",
        "https://www.youj.dev/r/icon-map-pin.json",
        "https://www.youj.dev/r/icon-package.json",
        "https://www.youj.dev/r/icon-phone.json",
        "https://www.youj.dev/r/icon-share.json",
        "https://www.youj.dev/r/icon-sparkles.json",
        "https://www.youj.dev/r/icon-thermometer.json",
        "https://www.youj.dev/r/icon-truck.json",
        "https://www.youj.dev/r/icon-user.json",
        "https://www.youj.dev/r/property-list.json",
        "https://www.youj.dev/r/proposal-card.json",
        "https://www.youj.dev/r/stepper.json",
        "https://www.youj.dev/r/timeline.json",
        "https://www.youj.dev/r/toast.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/shipment-detail.tsx",
          "type": "registry:component",
          "target": "blocks/app/shipment-detail.tsx"
        },
        {
          "path": "src/blocks/app/shipment-detail/components/details.tsx",
          "type": "registry:component",
          "target": "blocks/app/shipment-detail/components/details.tsx"
        },
        {
          "path": "src/blocks/app/shipment-detail/components/documents.tsx",
          "type": "registry:component",
          "target": "blocks/app/shipment-detail/components/documents.tsx"
        },
        {
          "path": "src/blocks/app/shipment-detail/components/risk-card.tsx",
          "type": "registry:component",
          "target": "blocks/app/shipment-detail/components/risk-card.tsx"
        },
        {
          "path": "src/blocks/app/shipment-detail/components/route-card.tsx",
          "type": "registry:component",
          "target": "blocks/app/shipment-detail/components/route-card.tsx"
        },
        {
          "path": "src/blocks/app/shipment-detail/components/shipment-timeline.tsx",
          "type": "registry:component",
          "target": "blocks/app/shipment-detail/components/shipment-timeline.tsx"
        },
        {
          "path": "src/blocks/app/shipment-detail/components/truck-art.tsx",
          "type": "registry:component",
          "target": "blocks/app/shipment-detail/components/truck-art.tsx"
        },
        {
          "path": "src/blocks/app/shipment-detail/data.ts",
          "type": "registry:component",
          "target": "blocks/app/shipment-detail/data.ts"
        }
      ]
    },
    {
      "name": "app-slot-booking",
      "type": "registry:block",
      "title": "App Slot Booking",
      "description": "Help your users book a time from a calm month calendar and the chosen day’s timetable.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "calendars-and-schedules"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/calendar.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-calendar-plus.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-check-circle.json",
        "https://www.youj.dev/r/icon-chevron-left.json",
        "https://www.youj.dev/r/icon-chevron-right.json",
        "https://www.youj.dev/r/icon-more-horizontal.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/segmented-meter.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/slot-grid.json",
        "https://www.youj.dev/r/stagger.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/slot-booking.tsx",
          "type": "registry:component",
          "target": "blocks/app/slot-booking.tsx"
        },
        {
          "path": "src/blocks/app/slot-booking/confirm-well.tsx",
          "type": "registry:component",
          "target": "blocks/app/slot-booking/confirm-well.tsx"
        },
        {
          "path": "src/blocks/app/slot-booking/data.ts",
          "type": "registry:component",
          "target": "blocks/app/slot-booking/data.ts"
        },
        {
          "path": "src/blocks/app/slot-booking/month-view.tsx",
          "type": "registry:component",
          "target": "blocks/app/slot-booking/month-view.tsx"
        },
        {
          "path": "src/blocks/app/slot-booking/slot-list.tsx",
          "type": "registry:component",
          "target": "blocks/app/slot-booking/slot-list.tsx"
        },
        {
          "path": "src/blocks/app/slot-booking/slot-review.tsx",
          "type": "registry:component",
          "target": "blocks/app/slot-booking/slot-review.tsx"
        },
        {
          "path": "src/blocks/app/slot-booking/states.tsx",
          "type": "registry:component",
          "target": "blocks/app/slot-booking/states.tsx"
        },
        {
          "path": "src/blocks/app/slot-booking/week-view.tsx",
          "type": "registry:component",
          "target": "blocks/app/slot-booking/week-view.tsx"
        }
      ]
    },
    {
      "name": "app-slot-sorter",
      "type": "registry:block",
      "title": "App Slot Sorter",
      "description": "A setup step that sorts a stream of items into slots: the day’s split as one bar, and the latest items with the slot each went to and how sure the sorting was, which you correct by dragging an item onto another slot or from its slot menu.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "forms-and-inputs"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/hatched-bar.json",
        "https://www.youj.dev/r/icon-chevron-down.json",
        "https://www.youj.dev/r/icon-inbox.json",
        "https://www.youj.dev/r/icon-zap.json",
        "https://www.youj.dev/r/illustrations.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/slot-sorter.tsx",
          "type": "registry:component",
          "target": "blocks/app/slot-sorter.tsx"
        },
        {
          "path": "src/blocks/app/slot-sorter/data.ts",
          "type": "registry:component",
          "target": "blocks/app/slot-sorter/data.ts"
        },
        {
          "path": "src/blocks/app/slot-sorter/item-row.tsx",
          "type": "registry:component",
          "target": "blocks/app/slot-sorter/item-row.tsx"
        },
        {
          "path": "src/blocks/app/slot-sorter/model.ts",
          "type": "registry:component",
          "target": "blocks/app/slot-sorter/model.ts"
        },
        {
          "path": "src/blocks/app/slot-sorter/split-bar.tsx",
          "type": "registry:component",
          "target": "blocks/app/slot-sorter/split-bar.tsx"
        }
      ]
    },
    {
      "name": "app-sound-settings",
      "type": "registry:block",
      "title": "App Sound Settings",
      "description": "Let people choose a sound pack, set the volume and pick which moments make a sound, with a Play button for each.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "forms-and-inputs"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-audio-lines.json",
        "https://www.youj.dev/r/icon-bell.json",
        "https://www.youj.dev/r/icon-check-circle.json",
        "https://www.youj.dev/r/icon-circle-alert.json",
        "https://www.youj.dev/r/icon-mouse-pointer.json",
        "https://www.youj.dev/r/icon-refresh.json",
        "https://www.youj.dev/r/icon-toggle.json",
        "https://www.youj.dev/r/icon-volume.json",
        "https://www.youj.dev/r/radio-group.json",
        "https://www.youj.dev/r/slider.json",
        "https://www.youj.dev/r/switch.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/waveform-scrubber.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/sound-settings.tsx",
          "type": "registry:component",
          "target": "blocks/app/sound-settings.tsx"
        },
        {
          "path": "src/blocks/app/sound-settings/data.ts",
          "type": "registry:component",
          "target": "blocks/app/sound-settings/data.ts"
        },
        {
          "path": "src/blocks/app/sound-settings/event-list.tsx",
          "type": "registry:component",
          "target": "blocks/app/sound-settings/event-list.tsx"
        },
        {
          "path": "src/blocks/app/sound-settings/pack-picker.tsx",
          "type": "registry:component",
          "target": "blocks/app/sound-settings/pack-picker.tsx"
        },
        {
          "path": "src/blocks/app/sound-settings/sound-check.tsx",
          "type": "registry:component",
          "target": "blocks/app/sound-settings/sound-check.tsx"
        }
      ]
    },
    {
      "name": "app-spend-overview",
      "type": "registry:block",
      "title": "App Spend Overview",
      "description": "Show where a workspace’s money is going and whether it lasts the month: the spend so far with its change and one plain status, the running total carried to the period’s end against the limit, the latest requests with their failures, the audit trail, and cards for your usage, the top spenders and billing.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "dashboards",
        "inApp": true
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/app-page.json",
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/forecast-band.json",
        "https://www.youj.dev/r/icon-chevron-right.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/stat-card.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/spend-overview.tsx",
          "type": "registry:component",
          "target": "blocks/app/spend-overview.tsx"
        },
        {
          "path": "src/blocks/app/spend-overview/audit.tsx",
          "type": "registry:component",
          "target": "blocks/app/spend-overview/audit.tsx"
        },
        {
          "path": "src/blocks/app/spend-overview/cards.tsx",
          "type": "registry:component",
          "target": "blocks/app/spend-overview/cards.tsx"
        },
        {
          "path": "src/blocks/app/spend-overview/data.ts",
          "type": "registry:component",
          "target": "blocks/app/spend-overview/data.ts"
        },
        {
          "path": "src/blocks/app/spend-overview/forecast.ts",
          "type": "registry:component",
          "target": "blocks/app/spend-overview/forecast.ts"
        },
        {
          "path": "src/blocks/app/spend-overview/format.ts",
          "type": "registry:component",
          "target": "blocks/app/spend-overview/format.ts"
        },
        {
          "path": "src/blocks/app/spend-overview/headline.tsx",
          "type": "registry:component",
          "target": "blocks/app/spend-overview/headline.tsx"
        },
        {
          "path": "src/blocks/app/spend-overview/panel.tsx",
          "type": "registry:component",
          "target": "blocks/app/spend-overview/panel.tsx"
        },
        {
          "path": "src/blocks/app/spend-overview/requests.tsx",
          "type": "registry:component",
          "target": "blocks/app/spend-overview/requests.tsx"
        }
      ]
    },
    {
      "name": "app-split-allocation",
      "type": "registry:block",
      "title": "App Split Allocation",
      "description": "Split one amount across categories, evenly or by hand: a purchase, the rent, a pool of hours.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "forms-and-inputs"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/hatched-bar.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/split-allocation.tsx",
          "type": "registry:component",
          "target": "blocks/app/split-allocation.tsx"
        },
        {
          "path": "src/blocks/app/split-allocation/allocation.tsx",
          "type": "registry:component",
          "target": "blocks/app/split-allocation/allocation.tsx"
        },
        {
          "path": "src/blocks/app/split-allocation/data.ts",
          "type": "registry:component",
          "target": "blocks/app/split-allocation/data.ts"
        },
        {
          "path": "src/blocks/app/split-allocation/fields.tsx",
          "type": "registry:component",
          "target": "blocks/app/split-allocation/fields.tsx"
        },
        {
          "path": "src/blocks/app/split-allocation/model.ts",
          "type": "registry:component",
          "target": "blocks/app/split-allocation/model.ts"
        }
      ]
    },
    {
      "name": "app-stage-pipeline",
      "type": "registry:block",
      "title": "App Stage Pipeline",
      "description": "Follow a deployment from build to release with stage progress and logs you can pause to inspect.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "timelines-and-steps"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/icon-arrow-down.json",
        "https://www.youj.dev/r/icon-copy.json",
        "https://www.youj.dev/r/icon-more-horizontal.json",
        "https://www.youj.dev/r/icon-play.json",
        "https://www.youj.dev/r/icon-rotate-ccw.json",
        "https://www.youj.dev/r/stage-rail.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-visible.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/stage-pipeline.tsx",
          "type": "registry:component",
          "target": "blocks/app/stage-pipeline.tsx"
        },
        {
          "path": "src/blocks/app/stage-pipeline/data.ts",
          "type": "registry:component",
          "target": "blocks/app/stage-pipeline/data.ts"
        },
        {
          "path": "src/blocks/app/stage-pipeline/log-well.tsx",
          "type": "registry:component",
          "target": "blocks/app/stage-pipeline/log-well.tsx"
        },
        {
          "path": "src/blocks/app/stage-pipeline/run-timing.tsx",
          "type": "registry:component",
          "target": "blocks/app/stage-pipeline/run-timing.tsx"
        },
        {
          "path": "src/blocks/app/stage-pipeline/timing-data.ts",
          "type": "registry:component",
          "target": "blocks/app/stage-pipeline/timing-data.ts"
        }
      ]
    },
    {
      "name": "app-staged-rollout",
      "type": "registry:block",
      "title": "App Staged Rollout",
      "description": "Roll something out in stages and watch what it does: the share of an audience per environment, how many that exposes and a watched rate against its guardrail, with a kill switch.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "timelines-and-steps"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/icon-more-horizontal.json",
        "https://www.youj.dev/r/icon-power.json",
        "https://www.youj.dev/r/icon-rotate-ccw.json",
        "https://www.youj.dev/r/rollout-ruler.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/staged-rollout.tsx",
          "type": "registry:component",
          "target": "blocks/app/staged-rollout.tsx"
        },
        {
          "path": "src/blocks/app/staged-rollout/data.ts",
          "type": "registry:component",
          "target": "blocks/app/staged-rollout/data.ts"
        },
        {
          "path": "src/blocks/app/staged-rollout/item-list.tsx",
          "type": "registry:component",
          "target": "blocks/app/staged-rollout/item-list.tsx"
        }
      ]
    },
    {
      "name": "app-status-screen",
      "type": "registry:block",
      "title": "App Status Screen",
      "description": "Tell visitors why a page is out of reach, and what to do next: sign in, ask for access, wait while it retries, or wait while it loads, each beside a miniature that plays the state.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "marketing-and-status"
      },
      "dependencies": [
        "@youj/miniatures@^0.1.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/icon-external-link.json",
        "https://www.youj.dev/r/icon-home.json",
        "https://www.youj.dev/r/icon-key.json",
        "https://www.youj.dev/r/icon-log-in.json",
        "https://www.youj.dev/r/icon-refresh.json",
        "https://www.youj.dev/r/progress.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/stagger.json",
        "https://www.youj.dev/r/use-now.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/status-screen.tsx",
          "type": "registry:component",
          "target": "blocks/app/status-screen.tsx"
        },
        {
          "path": "src/blocks/app/status-screen/art.tsx",
          "type": "registry:component",
          "target": "blocks/app/status-screen/art.tsx"
        },
        {
          "path": "src/blocks/app/status-screen/data.ts",
          "type": "registry:component",
          "target": "blocks/app/status-screen/data.ts"
        },
        {
          "path": "src/blocks/app/status-screen/firewall.tsx",
          "type": "registry:component",
          "target": "blocks/app/status-screen/firewall.tsx"
        },
        {
          "path": "src/blocks/app/status-screen/hourglass.tsx",
          "type": "registry:component",
          "target": "blocks/app/status-screen/hourglass.tsx"
        },
        {
          "path": "src/blocks/app/status-screen/parcel-locker.tsx",
          "type": "registry:component",
          "target": "blocks/app/status-screen/parcel-locker.tsx"
        },
        {
          "path": "src/blocks/app/status-screen/server-cabinet.tsx",
          "type": "registry:component",
          "target": "blocks/app/status-screen/server-cabinet.tsx"
        },
        {
          "path": "src/blocks/app/status-screen/use-auto-retry.ts",
          "type": "registry:component",
          "target": "blocks/app/status-screen/use-auto-retry.ts"
        }
      ]
    },
    {
      "name": "app-status",
      "type": "registry:block",
      "title": "App Status",
      "description": "Show your team how every service is doing, in a card inside your app, with the uptime, the error budget and each service over 90 days.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "status-and-health"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/history-strip.json",
        "https://www.youj.dev/r/icon-more-horizontal.json",
        "https://www.youj.dev/r/segmented-meter.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/status.tsx",
          "type": "registry:component",
          "target": "blocks/app/status.tsx"
        },
        {
          "path": "src/blocks/app/status/data.ts",
          "type": "registry:component",
          "target": "blocks/app/status/data.ts"
        },
        {
          "path": "src/blocks/app/status/headline.tsx",
          "type": "registry:component",
          "target": "blocks/app/status/headline.tsx"
        },
        {
          "path": "src/blocks/app/status/service-list.tsx",
          "type": "registry:component",
          "target": "blocks/app/status/service-list.tsx"
        }
      ]
    },
    {
      "name": "app-step-path",
      "type": "registry:block",
      "title": "App Step Path",
      "description": "Guide people along a trail of steps in sections, with progress beside it: the step up next, total points toward the next level, the week’s streak and today’s goal.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "specialized"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-flame.json",
        "https://www.youj.dev/r/icon-more-horizontal.json",
        "https://www.youj.dev/r/progress-path.json",
        "https://www.youj.dev/r/segmented-meter.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/step-path.tsx",
          "type": "registry:component",
          "target": "blocks/app/step-path.tsx"
        },
        {
          "path": "src/blocks/app/step-path/data.ts",
          "type": "registry:component",
          "target": "blocks/app/step-path/data.ts"
        },
        {
          "path": "src/blocks/app/step-path/progress-card.tsx",
          "type": "registry:component",
          "target": "blocks/app/step-path/progress-card.tsx"
        },
        {
          "path": "src/blocks/app/step-path/states.tsx",
          "type": "registry:component",
          "target": "blocks/app/step-path/states.tsx"
        }
      ]
    },
    {
      "name": "app-step-trace",
      "type": "registry:block",
      "title": "App Step Trace",
      "description": "Watch one run work through its steps, then open any step to see what it was given and what it produced.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "timelines-and-steps"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/code-block.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/flow-graph.json",
        "https://www.youj.dev/r/icon-copy.json",
        "https://www.youj.dev/r/icon-download.json",
        "https://www.youj.dev/r/icon-more-horizontal.json",
        "https://www.youj.dev/r/icon-rotate-ccw.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-visible.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/step-trace.tsx",
          "type": "registry:component",
          "target": "blocks/app/step-trace.tsx"
        },
        {
          "path": "src/blocks/app/step-trace/data.ts",
          "type": "registry:component",
          "target": "blocks/app/step-trace/data.ts"
        },
        {
          "path": "src/blocks/app/step-trace/step-detail.tsx",
          "type": "registry:component",
          "target": "blocks/app/step-trace/step-detail.tsx"
        }
      ]
    },
    {
      "name": "app-step-tracker",
      "type": "registry:block",
      "title": "App Step Tracker",
      "description": "Follow anything that moves through a run of stages, replayed live on one rail with the time and place of every scan: a parcel, a loan, a visa.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "timelines-and-steps"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-rotate-ccw.json",
        "https://www.youj.dev/r/morph-label.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/tabs.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/step-tracker.tsx",
          "type": "registry:component",
          "target": "blocks/app/step-tracker.tsx"
        },
        {
          "path": "src/blocks/app/step-tracker/data.ts",
          "type": "registry:component",
          "target": "blocks/app/step-tracker/data.ts"
        },
        {
          "path": "src/blocks/app/step-tracker/detail.tsx",
          "type": "registry:component",
          "target": "blocks/app/step-tracker/detail.tsx"
        },
        {
          "path": "src/blocks/app/step-tracker/loan.ts",
          "type": "registry:component",
          "target": "blocks/app/step-tracker/loan.ts"
        },
        {
          "path": "src/blocks/app/step-tracker/rail.tsx",
          "type": "registry:component",
          "target": "blocks/app/step-tracker/rail.tsx"
        },
        {
          "path": "src/blocks/app/step-tracker/summary.tsx",
          "type": "registry:component",
          "target": "blocks/app/step-tracker/summary.tsx"
        },
        {
          "path": "src/blocks/app/step-tracker/use-journey.ts",
          "type": "registry:component",
          "target": "blocks/app/step-tracker/use-journey.ts"
        },
        {
          "path": "src/blocks/app/step-tracker/visa.ts",
          "type": "registry:component",
          "target": "blocks/app/step-tracker/visa.ts"
        }
      ]
    },
    {
      "name": "app-streaks",
      "type": "registry:block",
      "title": "App Streaks",
      "description": "Keep a run of days on anything: the picked item’s streak with its milestones, its last 26 weeks as dots where today’s dot is the toggle, and today’s list.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "meters-and-limits"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/calendar-heatmap.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-book-open.json",
        "https://www.youj.dev/r/icon-chevron-down.json",
        "https://www.youj.dev/r/icon-droplet.json",
        "https://www.youj.dev/r/icon-leaf.json",
        "https://www.youj.dev/r/icon-more-horizontal.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/icon-snowflake.json",
        "https://www.youj.dev/r/icon-sunrise.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/streaks.tsx",
          "type": "registry:component",
          "target": "blocks/app/streaks.tsx"
        },
        {
          "path": "src/blocks/app/streaks/data.tsx",
          "type": "registry:component",
          "target": "blocks/app/streaks/data.tsx"
        },
        {
          "path": "src/blocks/app/streaks/item-row.tsx",
          "type": "registry:component",
          "target": "blocks/app/streaks/item-row.tsx"
        },
        {
          "path": "src/blocks/app/streaks/states.tsx",
          "type": "registry:component",
          "target": "blocks/app/streaks/states.tsx"
        }
      ]
    },
    {
      "name": "app-support-chat",
      "type": "registry:block",
      "title": "App Support Chat",
      "description": "Give your customers a place to ask for help with a floating support chat widget.",
      "meta": {
        "kind": "overlay",
        "level": "card",
        "category": "activity-and-conversations"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/avatar-stack.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/chat.json",
        "https://www.youj.dev/r/collapse.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-arrow-left.json",
        "https://www.youj.dev/r/icon-bot.json",
        "https://www.youj.dev/r/icon-check-circle.json",
        "https://www.youj.dev/r/icon-chevron-down.json",
        "https://www.youj.dev/r/icon-chevron-right.json",
        "https://www.youj.dev/r/icon-file-text.json",
        "https://www.youj.dev/r/icon-loader-ring.json",
        "https://www.youj.dev/r/icon-message-dots.json",
        "https://www.youj.dev/r/icon-moon.json",
        "https://www.youj.dev/r/icon-search.json",
        "https://www.youj.dev/r/icon-send.json",
        "https://www.youj.dev/r/icon-swap.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/morph-label.json",
        "https://www.youj.dev/r/popover.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/rating.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/scroll-area.json",
        "https://www.youj.dev/r/sheet.json",
        "https://www.youj.dev/r/stagger.json",
        "https://www.youj.dev/r/textarea.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-mobile.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/support-chat.tsx",
          "type": "registry:component",
          "target": "blocks/app/support-chat.tsx"
        },
        {
          "path": "src/blocks/app/support-chat/context.ts",
          "type": "registry:component",
          "target": "blocks/app/support-chat/context.ts"
        },
        {
          "path": "src/blocks/app/support-chat/conversation-parts.tsx",
          "type": "registry:component",
          "target": "blocks/app/support-chat/conversation-parts.tsx"
        },
        {
          "path": "src/blocks/app/support-chat/conversation-view.tsx",
          "type": "registry:component",
          "target": "blocks/app/support-chat/conversation-view.tsx"
        },
        {
          "path": "src/blocks/app/support-chat/data.ts",
          "type": "registry:component",
          "target": "blocks/app/support-chat/data.ts"
        },
        {
          "path": "src/blocks/app/support-chat/help-search.tsx",
          "type": "registry:component",
          "target": "blocks/app/support-chat/help-search.tsx"
        },
        {
          "path": "src/blocks/app/support-chat/home-view.tsx",
          "type": "registry:component",
          "target": "blocks/app/support-chat/home-view.tsx"
        },
        {
          "path": "src/blocks/app/support-chat/host-page.tsx",
          "type": "registry:component",
          "target": "blocks/app/support-chat/host-page.tsx"
        },
        {
          "path": "src/blocks/app/support-chat/launcher.tsx",
          "type": "registry:component",
          "target": "blocks/app/support-chat/launcher.tsx"
        },
        {
          "path": "src/blocks/app/support-chat/use-conversation.ts",
          "type": "registry:component",
          "target": "blocks/app/support-chat/use-conversation.ts"
        }
      ]
    },
    {
      "name": "app-switchover",
      "type": "registry:block",
      "title": "App Switchover",
      "description": "Watch a primary source hand over to its backup: it sags and fails its checks, the load moves step by step onto the backup, and you switch back once the primary is steady, with every step on a timeline.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "flows"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/icon-more-horizontal.json",
        "https://www.youj.dev/r/iso-scene.json",
        "https://www.youj.dev/r/iso-shapes.json",
        "https://www.youj.dev/r/share-bar.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/switchover.tsx",
          "type": "registry:component",
          "target": "blocks/app/switchover.tsx"
        },
        {
          "path": "src/blocks/app/switchover/data.ts",
          "type": "registry:component",
          "target": "blocks/app/switchover/data.ts"
        },
        {
          "path": "src/blocks/app/switchover/rig.tsx",
          "type": "registry:component",
          "target": "blocks/app/switchover/rig.tsx"
        },
        {
          "path": "src/blocks/app/switchover/sources.tsx",
          "type": "registry:component",
          "target": "blocks/app/switchover/sources.tsx"
        },
        {
          "path": "src/blocks/app/switchover/timeline.tsx",
          "type": "registry:component",
          "target": "blocks/app/switchover/timeline.tsx"
        }
      ]
    },
    {
      "name": "app-task-board",
      "type": "registry:block",
      "title": "App Task Board",
      "description": "Help your team track tasks through their stages with a Kanban board, a sprint summary above it and a card for every task.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "workspaces-and-tools",
        "inApp": true
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/app-page.json",
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/avatar-stack.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/icon-calendar.json",
        "https://www.youj.dev/r/icon-list-checks.json",
        "https://www.youj.dev/r/icon-message.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/kanban.json",
        "https://www.youj.dev/r/segmented-meter.json",
        "https://www.youj.dev/r/share-bar.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/task-board.tsx",
          "type": "registry:component",
          "target": "blocks/app/task-board.tsx"
        },
        {
          "path": "src/blocks/app/task-board/data.ts",
          "type": "registry:component",
          "target": "blocks/app/task-board/data.ts"
        },
        {
          "path": "src/blocks/app/task-board/sprint.tsx",
          "type": "registry:component",
          "target": "blocks/app/task-board/sprint.tsx"
        },
        {
          "path": "src/blocks/app/task-board/task-card.tsx",
          "type": "registry:component",
          "target": "blocks/app/task-board/task-card.tsx"
        }
      ]
    },
    {
      "name": "app-team-members",
      "type": "registry:block",
      "title": "App Team Members",
      "description": "Manage workspace members, roles and pending invitations with seat usage in view.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "settings-and-account",
        "inApp": true
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/alert-dialog.json",
        "https://www.youj.dev/r/app-page.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/collapse.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/dialog.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-copy.json",
        "https://www.youj.dev/r/icon-lock.json",
        "https://www.youj.dev/r/icon-mail.json",
        "https://www.youj.dev/r/icon-more-horizontal.json",
        "https://www.youj.dev/r/icon-search.json",
        "https://www.youj.dev/r/icon-user-minus.json",
        "https://www.youj.dev/r/icon-user-plus.json",
        "https://www.youj.dev/r/icon-users.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/segmented-meter.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/table.json",
        "https://www.youj.dev/r/tag-input.json",
        "https://www.youj.dev/r/toast.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/team-members.tsx",
          "type": "registry:component",
          "target": "blocks/app/team-members.tsx"
        },
        {
          "path": "src/blocks/app/team-members/data.ts",
          "type": "registry:component",
          "target": "blocks/app/team-members/data.ts"
        },
        {
          "path": "src/blocks/app/team-members/invite-dialog.tsx",
          "type": "registry:component",
          "target": "blocks/app/team-members/invite-dialog.tsx"
        },
        {
          "path": "src/blocks/app/team-members/invites-list.tsx",
          "type": "registry:component",
          "target": "blocks/app/team-members/invites-list.tsx"
        },
        {
          "path": "src/blocks/app/team-members/members-table.tsx",
          "type": "registry:component",
          "target": "blocks/app/team-members/members-table.tsx"
        },
        {
          "path": "src/blocks/app/team-members/seats.tsx",
          "type": "registry:component",
          "target": "blocks/app/team-members/seats.tsx"
        }
      ]
    },
    {
      "name": "app-terrain-calendar",
      "type": "registry:block",
      "title": "App Terrain Calendar",
      "description": "Show months of days as an isometric terrain: every day a column as tall as its measure, so busy stretches rise as ridges, quiet weeks sink to valleys and one standout day stands alone.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "calendars-and-schedules"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/kbd.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/stat-card.json",
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/terrain-calendar.tsx",
          "type": "registry:component",
          "target": "blocks/app/terrain-calendar.tsx"
        },
        {
          "path": "src/blocks/app/terrain-calendar/card.tsx",
          "type": "registry:component",
          "target": "blocks/app/terrain-calendar/card.tsx"
        },
        {
          "path": "src/blocks/app/terrain-calendar/color.ts",
          "type": "registry:component",
          "target": "blocks/app/terrain-calendar/color.ts"
        },
        {
          "path": "src/blocks/app/terrain-calendar/data.ts",
          "type": "registry:component",
          "target": "blocks/app/terrain-calendar/data.ts"
        },
        {
          "path": "src/blocks/app/terrain-calendar/demo.ts",
          "type": "registry:component",
          "target": "blocks/app/terrain-calendar/demo.ts"
        },
        {
          "path": "src/blocks/app/terrain-calendar/engine.ts",
          "type": "registry:component",
          "target": "blocks/app/terrain-calendar/engine.ts"
        },
        {
          "path": "src/blocks/app/terrain-calendar/format.ts",
          "type": "registry:component",
          "target": "blocks/app/terrain-calendar/format.ts"
        },
        {
          "path": "src/blocks/app/terrain-calendar/geometry.ts",
          "type": "registry:component",
          "target": "blocks/app/terrain-calendar/geometry.ts"
        },
        {
          "path": "src/blocks/app/terrain-calendar/grid.tsx",
          "type": "registry:component",
          "target": "blocks/app/terrain-calendar/grid.tsx"
        },
        {
          "path": "src/blocks/app/terrain-calendar/paint.ts",
          "type": "registry:component",
          "target": "blocks/app/terrain-calendar/paint.ts"
        },
        {
          "path": "src/blocks/app/terrain-calendar/readout.tsx",
          "type": "registry:component",
          "target": "blocks/app/terrain-calendar/readout.tsx"
        },
        {
          "path": "src/blocks/app/terrain-calendar/states.tsx",
          "type": "registry:component",
          "target": "blocks/app/terrain-calendar/states.tsx"
        },
        {
          "path": "src/blocks/app/terrain-calendar/stats.tsx",
          "type": "registry:component",
          "target": "blocks/app/terrain-calendar/stats.tsx"
        },
        {
          "path": "src/blocks/app/terrain-calendar/terrain.tsx",
          "type": "registry:component",
          "target": "blocks/app/terrain-calendar/terrain.tsx"
        },
        {
          "path": "src/blocks/app/terrain-calendar/use-terrain.ts",
          "type": "registry:component",
          "target": "blocks/app/terrain-calendar/use-terrain.ts"
        }
      ]
    },
    {
      "name": "app-tiered-capacity",
      "type": "registry:block",
      "title": "App Tiered Capacity",
      "description": "Compare how full each region is, tier by tier, as a block of columns: a column climbs its dashed case as it fills, and the panel gives what is used, what is left and when it runs out.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "meters-and-limits"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/grid-backdrops.json",
        "https://www.youj.dev/r/icon-more-horizontal.json",
        "https://www.youj.dev/r/iso-scene.json",
        "https://www.youj.dev/r/iso-shapes.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/tiered-capacity.tsx",
          "type": "registry:component",
          "target": "blocks/app/tiered-capacity.tsx"
        },
        {
          "path": "src/blocks/app/tiered-capacity/chart.tsx",
          "type": "registry:component",
          "target": "blocks/app/tiered-capacity/chart.tsx"
        },
        {
          "path": "src/blocks/app/tiered-capacity/data.ts",
          "type": "registry:component",
          "target": "blocks/app/tiered-capacity/data.ts"
        },
        {
          "path": "src/blocks/app/tiered-capacity/detail.tsx",
          "type": "registry:component",
          "target": "blocks/app/tiered-capacity/detail.tsx"
        }
      ]
    },
    {
      "name": "app-tile-board",
      "type": "registry:block",
      "title": "App Tile Board",
      "description": "Watch a set of things as tiles in your own statuses and handle the one status that needs someone: a timer, the reason as one choice, who is coming and when, the escalation countdown, then escalate or resolve.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "status-and-health"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/tile-board.tsx",
          "type": "registry:component",
          "target": "blocks/app/tile-board.tsx"
        },
        {
          "path": "src/blocks/app/tile-board/data.ts",
          "type": "registry:component",
          "target": "blocks/app/tile-board/data.ts"
        },
        {
          "path": "src/blocks/app/tile-board/panel.tsx",
          "type": "registry:component",
          "target": "blocks/app/tile-board/panel.tsx"
        },
        {
          "path": "src/blocks/app/tile-board/tiles.tsx",
          "type": "registry:component",
          "target": "blocks/app/tile-board/tiles.tsx"
        },
        {
          "path": "src/blocks/app/tile-board/use-clock.ts",
          "type": "registry:component",
          "target": "blocks/app/tile-board/use-clock.ts"
        }
      ]
    },
    {
      "name": "app-track-arranger",
      "type": "registry:block",
      "title": "App Track Arranger",
      "description": "Arrange a project from its parts: move and trim clips, mute or solo a track, and set each clip’s volume.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "media"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-more-horizontal.json",
        "https://www.youj.dev/r/icon-play.json",
        "https://www.youj.dev/r/icon-ruler.json",
        "https://www.youj.dev/r/icon-skip-back.json",
        "https://www.youj.dev/r/number-input.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/slider.json",
        "https://www.youj.dev/r/toggle.json",
        "https://www.youj.dev/r/track-timeline.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/track-arranger.tsx",
          "type": "registry:component",
          "target": "blocks/app/track-arranger.tsx"
        },
        {
          "path": "src/blocks/app/track-arranger/data.ts",
          "type": "registry:component",
          "target": "blocks/app/track-arranger/data.ts"
        },
        {
          "path": "src/blocks/app/track-arranger/inspector.tsx",
          "type": "registry:component",
          "target": "blocks/app/track-arranger/inspector.tsx"
        },
        {
          "path": "src/blocks/app/track-arranger/states.tsx",
          "type": "registry:component",
          "target": "blocks/app/track-arranger/states.tsx"
        },
        {
          "path": "src/blocks/app/track-arranger/use-transport.ts",
          "type": "registry:component",
          "target": "blocks/app/track-arranger/use-transport.ts"
        }
      ]
    },
    {
      "name": "app-transfer-list",
      "type": "registry:block",
      "title": "App Transfer List",
      "description": "Follow transfers in flight so you can see what is still on its way: an overall meter, a row each with its rate and time left, and pause, resume, cancel or retry.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "tables-and-lists"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-cloud-upload.json",
        "https://www.youj.dev/r/icon-more-horizontal.json",
        "https://www.youj.dev/r/progress-list.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/use-visible.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/transfer-list.tsx",
          "type": "registry:component",
          "target": "blocks/app/transfer-list.tsx"
        },
        {
          "path": "src/blocks/app/transfer-list/data.ts",
          "type": "registry:component",
          "target": "blocks/app/transfer-list/data.ts"
        },
        {
          "path": "src/blocks/app/transfer-list/placeholder.tsx",
          "type": "registry:component",
          "target": "blocks/app/transfer-list/placeholder.tsx"
        },
        {
          "path": "src/blocks/app/transfer-list/use-transfers.ts",
          "type": "registry:component",
          "target": "blocks/app/transfer-list/use-transfers.ts"
        }
      ]
    },
    {
      "name": "app-usage-charges",
      "type": "registry:block",
      "title": "App Usage Charges",
      "description": "Show what a workspace used and what it was charged: a date range, a project filter and Export CSV over the total, the days as stacked bars by SKU with a tooltip, and a table of SKUs with usage against the allowance, the part past it, the charge and a total row.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "settings-and-account",
        "inApp": true
      },
      "dependencies": [
        "recharts@^3.8.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/app-page.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/chart.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/date-range-picker.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-download.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/table.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/usage-charges.tsx",
          "type": "registry:component",
          "target": "blocks/app/usage-charges.tsx"
        },
        {
          "path": "src/blocks/app/usage-charges/chart.tsx",
          "type": "registry:component",
          "target": "blocks/app/usage-charges/chart.tsx"
        },
        {
          "path": "src/blocks/app/usage-charges/data.ts",
          "type": "registry:component",
          "target": "blocks/app/usage-charges/data.ts"
        },
        {
          "path": "src/blocks/app/usage-charges/model.ts",
          "type": "registry:component",
          "target": "blocks/app/usage-charges/model.ts"
        },
        {
          "path": "src/blocks/app/usage-charges/sku-table.tsx",
          "type": "registry:component",
          "target": "blocks/app/usage-charges/sku-table.tsx"
        }
      ]
    },
    {
      "name": "app-usage-overview",
      "type": "registry:block",
      "title": "App Usage Overview",
      "description": "Track your cloud spending against a budget with a projected bill, usage breakdown and invoices.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "dashboards",
        "inApp": true
      },
      "dependencies": [
        "recharts@^3.8.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/app-page.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/chart.json",
        "https://www.youj.dev/r/collapse.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/icon-alert-triangle.json",
        "https://www.youj.dev/r/icon-cloud.json",
        "https://www.youj.dev/r/icon-cpu.json",
        "https://www.youj.dev/r/icon-database.json",
        "https://www.youj.dev/r/icon-download.json",
        "https://www.youj.dev/r/icon-gauge.json",
        "https://www.youj.dev/r/icon-globe.json",
        "https://www.youj.dev/r/icon-zap.json",
        "https://www.youj.dev/r/progress.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/slider.json",
        "https://www.youj.dev/r/stagger.json",
        "https://www.youj.dev/r/toggle-group.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/usage-overview.tsx",
          "type": "registry:component",
          "target": "blocks/app/usage-overview.tsx"
        },
        {
          "path": "src/blocks/app/usage-overview/copy.ts",
          "type": "registry:component",
          "target": "blocks/app/usage-overview/copy.ts"
        },
        {
          "path": "src/blocks/app/usage-overview/daily-cost.tsx",
          "type": "registry:component",
          "target": "blocks/app/usage-overview/daily-cost.tsx"
        },
        {
          "path": "src/blocks/app/usage-overview/data.ts",
          "type": "registry:component",
          "target": "blocks/app/usage-overview/data.ts"
        },
        {
          "path": "src/blocks/app/usage-overview/invoices.tsx",
          "type": "registry:component",
          "target": "blocks/app/usage-overview/invoices.tsx"
        },
        {
          "path": "src/blocks/app/usage-overview/meters.tsx",
          "type": "registry:component",
          "target": "blocks/app/usage-overview/meters.tsx"
        },
        {
          "path": "src/blocks/app/usage-overview/spend-cap.tsx",
          "type": "registry:component",
          "target": "blocks/app/usage-overview/spend-cap.tsx"
        },
        {
          "path": "src/blocks/app/usage-overview/summary-strip.tsx",
          "type": "registry:component",
          "target": "blocks/app/usage-overview/summary-strip.tsx"
        }
      ]
    },
    {
      "name": "app-voice-call",
      "type": "registry:block",
      "title": "App Voice Call",
      "description": "A call with a voice agent: its name and what it is doing, the call clock, a VoiceOrb, the caption line, mute, the speaker volume beside a meter of the voice, and End call, which leaves the call ended with how long it lasted and Call again.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "activity-and-conversations"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/icon-mic.json",
        "https://www.youj.dev/r/icon-phone.json",
        "https://www.youj.dev/r/icon-phone-off.json",
        "https://www.youj.dev/r/icon-volume.json",
        "https://www.youj.dev/r/segmented-meter.json",
        "https://www.youj.dev/r/slider.json",
        "https://www.youj.dev/r/toggle.json",
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/use-visible.json",
        "https://www.youj.dev/r/voice-orb.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/voice-call.tsx",
          "type": "registry:component",
          "target": "blocks/app/voice-call.tsx"
        },
        {
          "path": "src/blocks/app/voice-call/data.ts",
          "type": "registry:component",
          "target": "blocks/app/voice-call/data.ts"
        },
        {
          "path": "src/blocks/app/voice-call/use-simulated-call.ts",
          "type": "registry:component",
          "target": "blocks/app/voice-call/use-simulated-call.ts"
        }
      ]
    },
    {
      "name": "app-webhooks",
      "type": "registry:block",
      "title": "App Webhooks",
      "description": "Manage webhook endpoints with delivery status and subscribed events visible in one table.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "settings-and-account",
        "inApp": true
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert-dialog.json",
        "https://www.youj.dev/r/app-page.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/checkbox.json",
        "https://www.youj.dev/r/code-block.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-activity.json",
        "https://www.youj.dev/r/icon-copy.json",
        "https://www.youj.dev/r/icon-eye.json",
        "https://www.youj.dev/r/icon-eye-off.json",
        "https://www.youj.dev/r/icon-more-horizontal.json",
        "https://www.youj.dev/r/icon-pencil.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/icon-power.json",
        "https://www.youj.dev/r/icon-refresh.json",
        "https://www.youj.dev/r/icon-send.json",
        "https://www.youj.dev/r/icon-trash.json",
        "https://www.youj.dev/r/icon-webhook.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/scramble-text.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/sheet.json",
        "https://www.youj.dev/r/switch.json",
        "https://www.youj.dev/r/table.json",
        "https://www.youj.dev/r/tabs.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/webhooks.tsx",
          "type": "registry:component",
          "target": "blocks/app/webhooks.tsx"
        },
        {
          "path": "src/blocks/app/webhooks/data.ts",
          "type": "registry:component",
          "target": "blocks/app/webhooks/data.ts"
        },
        {
          "path": "src/blocks/app/webhooks/delivery-log.tsx",
          "type": "registry:component",
          "target": "blocks/app/webhooks/delivery-log.tsx"
        },
        {
          "path": "src/blocks/app/webhooks/endpoint-sheet.tsx",
          "type": "registry:component",
          "target": "blocks/app/webhooks/endpoint-sheet.tsx"
        },
        {
          "path": "src/blocks/app/webhooks/endpoints-table.tsx",
          "type": "registry:component",
          "target": "blocks/app/webhooks/endpoints-table.tsx"
        },
        {
          "path": "src/blocks/app/webhooks/event-picker.tsx",
          "type": "registry:component",
          "target": "blocks/app/webhooks/event-picker.tsx"
        },
        {
          "path": "src/blocks/app/webhooks/signing-secret.tsx",
          "type": "registry:component",
          "target": "blocks/app/webhooks/signing-secret.tsx"
        }
      ]
    },
    {
      "name": "app-week-blocks",
      "type": "registry:block",
      "title": "App Week Blocks",
      "description": "A week of logged time as columns, one per day: rounded blocks in the color of their kind, today marked with a now line and its time, the week total large and a legend that gives the totals per kind.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "calendars-and-schedules"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/use-now.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/week-blocks.tsx",
          "type": "registry:component",
          "target": "blocks/app/week-blocks.tsx"
        },
        {
          "path": "src/blocks/app/week-blocks/data.ts",
          "type": "registry:component",
          "target": "blocks/app/week-blocks/data.ts"
        },
        {
          "path": "src/blocks/app/week-blocks/model.ts",
          "type": "registry:component",
          "target": "blocks/app/week-blocks/model.ts"
        },
        {
          "path": "src/blocks/app/week-blocks/plot.tsx",
          "type": "registry:component",
          "target": "blocks/app/week-blocks/plot.tsx"
        },
        {
          "path": "src/blocks/app/week-blocks/summary.tsx",
          "type": "registry:component",
          "target": "blocks/app/week-blocks/summary.tsx"
        }
      ]
    },
    {
      "name": "app-week-calendar",
      "type": "registry:block",
      "title": "App Week Calendar",
      "description": "Plan your week with a calendar page: the week’s events on a time grid, what’s up next today, and a Slot Grid to find a free hour.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "workspaces-and-tools",
        "inApp": true
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/app-page.json",
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/icon-chevron-left.json",
        "https://www.youj.dev/r/icon-chevron-right.json",
        "https://www.youj.dev/r/popover.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/slot-grid.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/week-calendar.tsx",
          "type": "registry:component",
          "target": "blocks/app/week-calendar.tsx"
        },
        {
          "path": "src/blocks/app/week-calendar/agenda.tsx",
          "type": "registry:component",
          "target": "blocks/app/week-calendar/agenda.tsx"
        },
        {
          "path": "src/blocks/app/week-calendar/data.ts",
          "type": "registry:component",
          "target": "blocks/app/week-calendar/data.ts"
        },
        {
          "path": "src/blocks/app/week-calendar/event.tsx",
          "type": "registry:component",
          "target": "blocks/app/week-calendar/event.tsx"
        },
        {
          "path": "src/blocks/app/week-calendar/find-time.tsx",
          "type": "registry:component",
          "target": "blocks/app/week-calendar/find-time.tsx"
        },
        {
          "path": "src/blocks/app/week-calendar/up-next.tsx",
          "type": "registry:component",
          "target": "blocks/app/week-calendar/up-next.tsx"
        },
        {
          "path": "src/blocks/app/week-calendar/week.tsx",
          "type": "registry:component",
          "target": "blocks/app/week-calendar/week.tsx"
        }
      ]
    },
    {
      "name": "app-week-dial",
      "type": "registry:block",
      "title": "App Week Dial",
      "description": "The week as a clock: a ring per weekday, arcs for the entries in the color of their kind round a nine-to-six dial, a now hand with its time, the headline kind in the middle and the week total with a legend underneath.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "calendars-and-schedules"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/use-now.json",
        "https://www.youj.dev/r/use-resize-measure.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/app/week-dial.tsx",
          "type": "registry:component",
          "target": "blocks/app/week-dial.tsx"
        },
        {
          "path": "src/blocks/app/week-dial/data.ts",
          "type": "registry:component",
          "target": "blocks/app/week-dial/data.ts"
        },
        {
          "path": "src/blocks/app/week-dial/dial.tsx",
          "type": "registry:component",
          "target": "blocks/app/week-dial/dial.tsx"
        },
        {
          "path": "src/blocks/app/week-dial/geometry.ts",
          "type": "registry:component",
          "target": "blocks/app/week-dial/geometry.ts"
        },
        {
          "path": "src/blocks/app/week-dial/model.ts",
          "type": "registry:component",
          "target": "blocks/app/week-dial/model.ts"
        },
        {
          "path": "src/blocks/app/week-dial/summary.tsx",
          "type": "registry:component",
          "target": "blocks/app/week-dial/summary.tsx"
        }
      ]
    },
    {
      "name": "auth-device-authorization",
      "type": "registry:block",
      "title": "Auth Device Authorization",
      "description": "Let someone approve a command-line tool or device from the browser: who is asking, what it can do, the account it would use, the code to compare with the terminal and a plain safety note.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "onboarding-and-auth"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/auth-shell.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-clock.json",
        "https://www.youj.dev/r/icon-shield-check.json",
        "https://www.youj.dev/r/icon-shield-x.json",
        "https://www.youj.dev/r/icon-terminal.json",
        "https://www.youj.dev/r/input-otp.json",
        "https://www.youj.dev/r/property-list.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/auth/device-authorization.tsx",
          "type": "registry:component",
          "target": "blocks/auth/device-authorization.tsx"
        }
      ]
    },
    {
      "name": "auth-forgot-password",
      "type": "registry:block",
      "title": "Auth Forgot Password",
      "description": "Help your users get back into their account with a form for requesting a password reset link.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "onboarding-and-auth"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/auth-shell.json"
      ],
      "files": [
        {
          "path": "src/blocks/auth/forgot-password.tsx",
          "type": "registry:component",
          "target": "blocks/auth/forgot-password.tsx"
        }
      ]
    },
    {
      "name": "auth-login",
      "type": "registry:block",
      "title": "Auth Login",
      "description": "Welcome returning users with a sign-in page offering social login or email and password.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "onboarding-and-auth"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/auth-shell.json"
      ],
      "files": [
        {
          "path": "src/blocks/auth/login.tsx",
          "type": "registry:component",
          "target": "blocks/auth/login.tsx"
        }
      ]
    },
    {
      "name": "auth-magic-link-sent",
      "type": "registry:block",
      "title": "Auth Magic Link Sent",
      "description": "Show your users where to look next after they request a passwordless sign-in link.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "onboarding-and-auth"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/auth-shell.json"
      ],
      "files": [
        {
          "path": "src/blocks/auth/magic-link-sent.tsx",
          "type": "registry:component",
          "target": "blocks/auth/magic-link-sent.tsx"
        }
      ]
    },
    {
      "name": "auth-reset-password",
      "type": "registry:block",
      "title": "Auth Reset Password",
      "description": "Help your users choose a new password with clear rules, a strength indicator and confirmation.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "onboarding-and-auth"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/auth-shell.json"
      ],
      "files": [
        {
          "path": "src/blocks/auth/reset-password.tsx",
          "type": "registry:component",
          "target": "blocks/auth/reset-password.tsx"
        }
      ]
    },
    {
      "name": "auth-shell",
      "type": "registry:block",
      "title": "Auth Shell",
      "description": "Frame your sign-in screens with a centered card or a split page with room for artwork.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "onboarding-and-auth"
      },
      "dependencies": [
        "@hookform/resolvers@^5.9.1",
        "react-hook-form@^7.89.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/checkbox.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/form.json",
        "https://www.youj.dev/r/icon-brand-github.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-check-circle.json",
        "https://www.youj.dev/r/icon-mail-open.json",
        "https://www.youj.dev/r/illustrations.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/input-otp.json",
        "https://www.youj.dev/r/password-input.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/auth/shell.tsx",
          "type": "registry:component",
          "target": "blocks/auth/shell.tsx"
        },
        {
          "path": "src/blocks/auth/shell/auth-link.tsx",
          "type": "registry:component",
          "target": "blocks/auth/shell/auth-link.tsx"
        },
        {
          "path": "src/blocks/auth/shell/copy.ts",
          "type": "registry:component",
          "target": "blocks/auth/shell/copy.ts"
        },
        {
          "path": "src/blocks/auth/shell/forgot-form.tsx",
          "type": "registry:component",
          "target": "blocks/auth/shell/forgot-form.tsx"
        },
        {
          "path": "src/blocks/auth/shell/google-mark.tsx",
          "type": "registry:component",
          "target": "blocks/auth/shell/google-mark.tsx"
        },
        {
          "path": "src/blocks/auth/shell/magic-link.tsx",
          "type": "registry:component",
          "target": "blocks/auth/shell/magic-link.tsx"
        },
        {
          "path": "src/blocks/auth/shell/reset-form.tsx",
          "type": "registry:component",
          "target": "blocks/auth/shell/reset-form.tsx"
        },
        {
          "path": "src/blocks/auth/shell/sign-in-form.tsx",
          "type": "registry:component",
          "target": "blocks/auth/shell/sign-in-form.tsx"
        },
        {
          "path": "src/blocks/auth/shell/sign-up-form.tsx",
          "type": "registry:component",
          "target": "blocks/auth/shell/sign-up-form.tsx"
        },
        {
          "path": "src/blocks/auth/shell/two-factor-form.tsx",
          "type": "registry:component",
          "target": "blocks/auth/shell/two-factor-form.tsx"
        }
      ]
    },
    {
      "name": "auth-signup",
      "type": "registry:block",
      "title": "Auth Signup",
      "description": "Give new users a sign-up page with social login or a name, email and password form.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "onboarding-and-auth"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/auth-shell.json"
      ],
      "files": [
        {
          "path": "src/blocks/auth/signup.tsx",
          "type": "registry:component",
          "target": "blocks/auth/signup.tsx"
        }
      ]
    },
    {
      "name": "auth-two-factor",
      "type": "registry:block",
      "title": "Auth Two Factor",
      "description": "Guide your users through a verification code with clear feedback when it succeeds or needs another try.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "onboarding-and-auth"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/auth-shell.json"
      ],
      "files": [
        {
          "path": "src/blocks/auth/two-factor.tsx",
          "type": "registry:component",
          "target": "blocks/auth/two-factor.tsx"
        }
      ]
    },
    {
      "name": "commerce-cart-drawer",
      "type": "registry:block",
      "title": "Commerce Cart Drawer",
      "description": "Let shoppers review their cart in a floating panel without leaving the product page: photos, quantities, the road to free shipping and checkout.",
      "meta": {
        "kind": "overlay",
        "level": "card",
        "category": "forms-and-inputs"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/commerce-product-card.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-shopping-bag.json",
        "https://www.youj.dev/r/icon-truck.json",
        "https://www.youj.dev/r/number-input.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/progress.json",
        "https://www.youj.dev/r/sheet.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/commerce/cart-drawer.tsx",
          "type": "registry:component",
          "target": "blocks/commerce/cart-drawer.tsx"
        }
      ]
    },
    {
      "name": "commerce-checkout",
      "type": "registry:block",
      "title": "Commerce Checkout",
      "description": "Guide shoppers through contact details, shipping and payment with an order summary in view.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "commerce"
      },
      "dependencies": [
        "@hookform/resolvers@^5.9.1",
        "react-hook-form@^7.89.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/checkbox.json",
        "https://www.youj.dev/r/commerce-product-card.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/form.json",
        "https://www.youj.dev/r/icon-check-circle.json",
        "https://www.youj.dev/r/icon-lock.json",
        "https://www.youj.dev/r/icon-package.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/phone-input.json",
        "https://www.youj.dev/r/radio-group.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/separator.json",
        "https://www.youj.dev/r/stagger.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/wizard.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/commerce/checkout.tsx",
          "type": "registry:component",
          "target": "blocks/commerce/checkout.tsx"
        },
        {
          "path": "src/blocks/commerce/checkout/data.ts",
          "type": "registry:component",
          "target": "blocks/commerce/checkout/data.ts"
        },
        {
          "path": "src/blocks/commerce/checkout/summary.tsx",
          "type": "registry:component",
          "target": "blocks/commerce/checkout/summary.tsx"
        }
      ]
    },
    {
      "name": "commerce-order-detail",
      "type": "registry:block",
      "title": "Commerce Order Detail",
      "description": "Help your customers check their order and see where it is on its way to them.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "commerce"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/checkbox.json",
        "https://www.youj.dev/r/commerce-product-card.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/dialog.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-alert-triangle.json",
        "https://www.youj.dev/r/icon-arrow-left.json",
        "https://www.youj.dev/r/icon-banknote.json",
        "https://www.youj.dev/r/icon-check-circle.json",
        "https://www.youj.dev/r/icon-circle-x.json",
        "https://www.youj.dev/r/icon-copy.json",
        "https://www.youj.dev/r/icon-download.json",
        "https://www.youj.dev/r/icon-mail.json",
        "https://www.youj.dev/r/icon-message-dots.json",
        "https://www.youj.dev/r/icon-package.json",
        "https://www.youj.dev/r/icon-phone.json",
        "https://www.youj.dev/r/icon-receipt.json",
        "https://www.youj.dev/r/icon-refresh.json",
        "https://www.youj.dev/r/icon-shopping-bag.json",
        "https://www.youj.dev/r/icon-truck.json",
        "https://www.youj.dev/r/icon-undo.json",
        "https://www.youj.dev/r/morph-label.json",
        "https://www.youj.dev/r/number-input.json",
        "https://www.youj.dev/r/radio-group.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/stagger.json",
        "https://www.youj.dev/r/stepper.json",
        "https://www.youj.dev/r/tabs.json",
        "https://www.youj.dev/r/textarea.json",
        "https://www.youj.dev/r/timeline.json",
        "https://www.youj.dev/r/toast.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/wizard.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/commerce/order-detail.tsx",
          "type": "registry:component",
          "target": "blocks/commerce/order-detail.tsx"
        },
        {
          "path": "src/blocks/commerce/order-detail/copy.ts",
          "type": "registry:component",
          "target": "blocks/commerce/order-detail/copy.ts"
        },
        {
          "path": "src/blocks/commerce/order-detail/data.ts",
          "type": "registry:component",
          "target": "blocks/commerce/order-detail/data.ts"
        },
        {
          "path": "src/blocks/commerce/order-detail/details.tsx",
          "type": "registry:component",
          "target": "blocks/commerce/order-detail/details.tsx"
        },
        {
          "path": "src/blocks/commerce/order-detail/items.tsx",
          "type": "registry:component",
          "target": "blocks/commerce/order-detail/items.tsx"
        },
        {
          "path": "src/blocks/commerce/order-detail/return-dialog.tsx",
          "type": "registry:component",
          "target": "blocks/commerce/order-detail/return-dialog.tsx"
        },
        {
          "path": "src/blocks/commerce/order-detail/shipment.tsx",
          "type": "registry:component",
          "target": "blocks/commerce/order-detail/shipment.tsx"
        }
      ]
    },
    {
      "name": "commerce-product-card",
      "type": "registry:block",
      "title": "Commerce Product Card",
      "description": "Show a product the way an editorial shop does: the photo is the card.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "media"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/commerce-product-render.json",
        "https://www.youj.dev/r/icon-shopping-cart.json",
        "https://www.youj.dev/r/icon-star.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/commerce/product-card.tsx",
          "type": "registry:component",
          "target": "blocks/commerce/product-card.tsx"
        },
        {
          "path": "src/blocks/commerce/product-card/data.ts",
          "type": "registry:component",
          "target": "blocks/commerce/product-card/data.ts"
        },
        {
          "path": "src/blocks/commerce/product-card/media.tsx",
          "type": "registry:component",
          "target": "blocks/commerce/product-card/media.tsx"
        },
        {
          "path": "src/blocks/commerce/product-card/money.tsx",
          "type": "registry:component",
          "target": "blocks/commerce/product-card/money.tsx"
        }
      ]
    },
    {
      "name": "commerce-product-detail",
      "type": "registry:block",
      "title": "Commerce Product Detail",
      "description": "Let shoppers see a product from every side in the color they pick, choose their size, and know when it will arrive.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "commerce"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/accordion.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/breadcrumb.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/carousel.json",
        "https://www.youj.dev/r/commerce-product-card.json",
        "https://www.youj.dev/r/commerce-product-render.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-heart.json",
        "https://www.youj.dev/r/icon-rotate-ccw.json",
        "https://www.youj.dev/r/icon-ruler.json",
        "https://www.youj.dev/r/icon-shopping-cart.json",
        "https://www.youj.dev/r/icon-star.json",
        "https://www.youj.dev/r/icon-store.json",
        "https://www.youj.dev/r/icon-truck.json",
        "https://www.youj.dev/r/number-input.json",
        "https://www.youj.dev/r/toggle.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/commerce/product-detail.tsx",
          "type": "registry:component",
          "target": "blocks/commerce/product-detail.tsx"
        }
      ]
    },
    {
      "name": "commerce-product-grid",
      "type": "registry:block",
      "title": "Commerce Product Grid",
      "description": "A shop’s catalog on real photographs: category tabs with live counts, a Saved view, filters with chips, a wide featured tile, and a quick view whose photo flies out of its tile and back.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "catalog"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/commerce-product-card.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/dialog.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/histogram-range.json",
        "https://www.youj.dev/r/icon-alert-triangle.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-chevron-left.json",
        "https://www.youj.dev/r/icon-chevron-right.json",
        "https://www.youj.dev/r/icon-eye.json",
        "https://www.youj.dev/r/icon-heart.json",
        "https://www.youj.dev/r/icon-search.json",
        "https://www.youj.dev/r/icon-shopping-bag.json",
        "https://www.youj.dev/r/icon-sliders.json",
        "https://www.youj.dev/r/icon-sort.json",
        "https://www.youj.dev/r/icon-star.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/popover.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/toggle.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/use-mobile.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/commerce/product-grid.tsx",
          "type": "registry:component",
          "target": "blocks/commerce/product-grid.tsx"
        },
        {
          "path": "src/blocks/commerce/product-grid/catalog.ts",
          "type": "registry:component",
          "target": "blocks/commerce/product-grid/catalog.ts"
        },
        {
          "path": "src/blocks/commerce/product-grid/data.ts",
          "type": "registry:component",
          "target": "blocks/commerce/product-grid/data.ts"
        },
        {
          "path": "src/blocks/commerce/product-grid/flight.tsx",
          "type": "registry:component",
          "target": "blocks/commerce/product-grid/flight.tsx"
        },
        {
          "path": "src/blocks/commerce/product-grid/quick-view-buy.tsx",
          "type": "registry:component",
          "target": "blocks/commerce/product-grid/quick-view-buy.tsx"
        },
        {
          "path": "src/blocks/commerce/product-grid/quick-view-media.tsx",
          "type": "registry:component",
          "target": "blocks/commerce/product-grid/quick-view-media.tsx"
        },
        {
          "path": "src/blocks/commerce/product-grid/quick-view.tsx",
          "type": "registry:component",
          "target": "blocks/commerce/product-grid/quick-view.tsx"
        },
        {
          "path": "src/blocks/commerce/product-grid/states.tsx",
          "type": "registry:component",
          "target": "blocks/commerce/product-grid/states.tsx"
        },
        {
          "path": "src/blocks/commerce/product-grid/tile.tsx",
          "type": "registry:component",
          "target": "blocks/commerce/product-grid/tile.tsx"
        },
        {
          "path": "src/blocks/commerce/product-grid/toolbar.tsx",
          "type": "registry:component",
          "target": "blocks/commerce/product-grid/toolbar.tsx"
        }
      ]
    },
    {
      "name": "commerce-product-render",
      "type": "registry:block",
      "title": "Commerce Product Render",
      "description": "Show your product photos as one studio shoot: catalogue tiles and hero images that keep the product in frame at any aspect, fade up when loaded, crossfade between colorways and close in on a detail.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "media",
        "hidden": true
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-image.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/commerce/product-render.tsx",
          "type": "registry:component",
          "target": "blocks/commerce/product-render.tsx"
        }
      ]
    },
    {
      "name": "commerce-subscription-checkout",
      "type": "registry:block",
      "title": "Commerce Subscription Checkout",
      "description": "Guide your customers from choosing a subscription to payment with a running order summary.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "commerce"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/collapse.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-check-circle.json",
        "https://www.youj.dev/r/icon-credit-card.json",
        "https://www.youj.dev/r/icon-lock.json",
        "https://www.youj.dev/r/icon-tag.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/number-input.json",
        "https://www.youj.dev/r/radio-group.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/separator.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/wizard.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/commerce/subscription-checkout.tsx",
          "type": "registry:component",
          "target": "blocks/commerce/subscription-checkout.tsx"
        },
        {
          "path": "src/blocks/commerce/subscription-checkout/data.ts",
          "type": "registry:component",
          "target": "blocks/commerce/subscription-checkout/data.ts"
        },
        {
          "path": "src/blocks/commerce/subscription-checkout/order-summary.tsx",
          "type": "registry:component",
          "target": "blocks/commerce/subscription-checkout/order-summary.tsx"
        },
        {
          "path": "src/blocks/commerce/subscription-checkout/payment-step.tsx",
          "type": "registry:component",
          "target": "blocks/commerce/subscription-checkout/payment-step.tsx"
        },
        {
          "path": "src/blocks/commerce/subscription-checkout/plan-step.tsx",
          "type": "registry:component",
          "target": "blocks/commerce/subscription-checkout/plan-step.tsx"
        }
      ]
    },
    {
      "name": "content-blog",
      "type": "registry:block",
      "title": "Content Blog",
      "description": "Give your journal a magazine-style home with an article view for reading each story.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "content-and-docs",
        "hidden": true
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/anchor-nav.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/icon-arrow-left.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-link.json",
        "https://www.youj.dev/r/icon-rss.json",
        "https://www.youj.dev/r/page-transition.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/scroll-progress.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/sliding-indicator.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/content/blog.tsx",
          "type": "registry:component",
          "target": "blocks/content/blog.tsx"
        },
        {
          "path": "src/blocks/content/blog/article.tsx",
          "type": "registry:component",
          "target": "blocks/content/blog/article.tsx"
        },
        {
          "path": "src/blocks/content/blog/cover.tsx",
          "type": "registry:component",
          "target": "blocks/content/blog/cover.tsx"
        },
        {
          "path": "src/blocks/content/blog/data.ts",
          "type": "registry:component",
          "target": "blocks/content/blog/data.ts"
        },
        {
          "path": "src/blocks/content/blog/post-index.tsx",
          "type": "registry:component",
          "target": "blocks/content/blog/post-index.tsx"
        },
        {
          "path": "src/blocks/content/blog/post-link.tsx",
          "type": "registry:component",
          "target": "blocks/content/blog/post-link.tsx"
        }
      ]
    },
    {
      "name": "content-changelog",
      "type": "registry:block",
      "title": "Content Changelog",
      "description": "Keep your users up to date with release notes organized by version and date.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "content-and-docs",
        "inApp": true
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/app-page.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/collapsible.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-bell.json",
        "https://www.youj.dev/r/icon-rss.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/popover.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/scroll-progress.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/toggle-group.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/content/changelog.tsx",
          "type": "registry:component",
          "target": "blocks/content/changelog.tsx"
        },
        {
          "path": "src/blocks/content/changelog/data.ts",
          "type": "registry:component",
          "target": "blocks/content/changelog/data.ts"
        },
        {
          "path": "src/blocks/content/changelog/subscribe.tsx",
          "type": "registry:component",
          "target": "blocks/content/changelog/subscribe.tsx"
        }
      ]
    },
    {
      "name": "content-docs",
      "type": "registry:block",
      "title": "Content Docs",
      "description": "Help readers navigate your documentation with a page tree and an outline beside each article.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "content-and-docs"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/anchor-nav.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/breadcrumb.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/collapsible.json",
        "https://www.youj.dev/r/command.json",
        "https://www.youj.dev/r/command-palette.json",
        "https://www.youj.dev/r/icon-arrow-left.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-bookmark.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-code.json",
        "https://www.youj.dev/r/icon-copy.json",
        "https://www.youj.dev/r/icon-menu.json",
        "https://www.youj.dev/r/icon-pencil.json",
        "https://www.youj.dev/r/icon-search.json",
        "https://www.youj.dev/r/icon-sparkle.json",
        "https://www.youj.dev/r/icon-thumbs-down.json",
        "https://www.youj.dev/r/icon-thumbs-up.json",
        "https://www.youj.dev/r/kbd.json",
        "https://www.youj.dev/r/morph-label.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/sheet.json",
        "https://www.youj.dev/r/sliding-indicator.json",
        "https://www.youj.dev/r/table.json",
        "https://www.youj.dev/r/tabs.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/content/docs.tsx",
          "type": "registry:component",
          "target": "blocks/content/docs.tsx"
        },
        {
          "path": "src/blocks/content/docs/code.tsx",
          "type": "registry:component",
          "target": "blocks/content/docs/code.tsx"
        },
        {
          "path": "src/blocks/content/docs/data.tsx",
          "type": "registry:component",
          "target": "blocks/content/docs/data.tsx"
        },
        {
          "path": "src/blocks/content/docs/doc-link.tsx",
          "type": "registry:component",
          "target": "blocks/content/docs/doc-link.tsx"
        },
        {
          "path": "src/blocks/content/docs/feedback.tsx",
          "type": "registry:component",
          "target": "blocks/content/docs/feedback.tsx"
        },
        {
          "path": "src/blocks/content/docs/header.tsx",
          "type": "registry:component",
          "target": "blocks/content/docs/header.tsx"
        },
        {
          "path": "src/blocks/content/docs/nav-tree.tsx",
          "type": "registry:component",
          "target": "blocks/content/docs/nav-tree.tsx"
        },
        {
          "path": "src/blocks/content/docs/pager-card.tsx",
          "type": "registry:component",
          "target": "blocks/content/docs/pager-card.tsx"
        },
        {
          "path": "src/blocks/content/docs/search-palette.tsx",
          "type": "registry:component",
          "target": "blocks/content/docs/search-palette.tsx"
        }
      ]
    },
    {
      "name": "content-help-center",
      "type": "registry:block",
      "title": "Content Help Center",
      "description": "Help your customers find answers with live search, topic cards and a contact form.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "content-and-docs",
        "inApp": true
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/accordion.json",
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/app-page.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/content-swap.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/file-upload.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-banknote.json",
        "https://www.youj.dev/r/icon-check-circle.json",
        "https://www.youj.dev/r/icon-code-xml.json",
        "https://www.youj.dev/r/icon-credit-card.json",
        "https://www.youj.dev/r/icon-file-text.json",
        "https://www.youj.dev/r/icon-mail.json",
        "https://www.youj.dev/r/icon-messages.json",
        "https://www.youj.dev/r/icon-phone-call.json",
        "https://www.youj.dev/r/icon-search.json",
        "https://www.youj.dev/r/icon-shield-alert.json",
        "https://www.youj.dev/r/icon-shield-check.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/morph-label.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/radio-group.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/spotlight.json",
        "https://www.youj.dev/r/textarea.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/content/help-center.tsx",
          "type": "registry:component",
          "target": "blocks/content/help-center.tsx"
        },
        {
          "path": "src/blocks/content/help-center/contact.tsx",
          "type": "registry:component",
          "target": "blocks/content/help-center/contact.tsx"
        },
        {
          "path": "src/blocks/content/help-center/data.ts",
          "type": "registry:component",
          "target": "blocks/content/help-center/data.ts"
        },
        {
          "path": "src/blocks/content/help-center/search.tsx",
          "type": "registry:component",
          "target": "blocks/content/help-center/search.tsx"
        }
      ]
    },
    {
      "name": "content-illustrated-states",
      "type": "registry:block",
      "title": "Content Illustrated States",
      "description": "Give the in-between pages a friendly face: a welcome, an empty workspace, a 404, maintenance, a finished payment and offline, each with a fitting illustration you can swap.",
      "meta": {
        "kind": "fragment",
        "level": "card",
        "category": "onboarding-and-states"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/grid-backdrops.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-circle-dashed.json",
        "https://www.youj.dev/r/icon-external-link.json",
        "https://www.youj.dev/r/icon-home.json",
        "https://www.youj.dev/r/icon-loader-ring.json",
        "https://www.youj.dev/r/icon-mail.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/icon-receipt.json",
        "https://www.youj.dev/r/icon-refresh.json",
        "https://www.youj.dev/r/icon-search.json",
        "https://www.youj.dev/r/icon-upload.json",
        "https://www.youj.dev/r/icon-wifi.json",
        "https://www.youj.dev/r/icon-wifi-off.json",
        "https://www.youj.dev/r/illustrations.json",
        "https://www.youj.dev/r/progress.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/stagger.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/content/illustrated-states.tsx",
          "type": "registry:component",
          "target": "blocks/content/illustrated-states.tsx"
        },
        {
          "path": "src/blocks/content/illustrated-states/data.ts",
          "type": "registry:component",
          "target": "blocks/content/illustrated-states/data.ts"
        },
        {
          "path": "src/blocks/content/illustrated-states/details.tsx",
          "type": "registry:component",
          "target": "blocks/content/illustrated-states/details.tsx"
        }
      ]
    },
    {
      "name": "content-roadmap",
      "type": "registry:block",
      "title": "Content Roadmap",
      "description": "Share what you are planning with a public roadmap and a place for feature requests.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "content-and-docs",
        "inApp": true
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/app-page.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/collapse.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/dialog.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-arrow-up.json",
        "https://www.youj.dev/r/icon-calendar.json",
        "https://www.youj.dev/r/icon-circle-dashed.json",
        "https://www.youj.dev/r/icon-engine.json",
        "https://www.youj.dev/r/icon-filter.json",
        "https://www.youj.dev/r/icon-hammer.json",
        "https://www.youj.dev/r/icon-lightbulb.json",
        "https://www.youj.dev/r/icon-message.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/icon-rocket.json",
        "https://www.youj.dev/r/icon-trending-up.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/sheet.json",
        "https://www.youj.dev/r/tabs.json",
        "https://www.youj.dev/r/textarea.json",
        "https://www.youj.dev/r/timeline.json",
        "https://www.youj.dev/r/toast.json",
        "https://www.youj.dev/r/toggle.json",
        "https://www.youj.dev/r/toggle-group.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/content/roadmap.tsx",
          "type": "registry:component",
          "target": "blocks/content/roadmap.tsx"
        },
        {
          "path": "src/blocks/content/roadmap/context.ts",
          "type": "registry:component",
          "target": "blocks/content/roadmap/context.ts"
        },
        {
          "path": "src/blocks/content/roadmap/data.ts",
          "type": "registry:component",
          "target": "blocks/content/roadmap/data.ts"
        },
        {
          "path": "src/blocks/content/roadmap/request-list.tsx",
          "type": "registry:component",
          "target": "blocks/content/roadmap/request-list.tsx"
        },
        {
          "path": "src/blocks/content/roadmap/request-sheet.tsx",
          "type": "registry:component",
          "target": "blocks/content/roadmap/request-sheet.tsx"
        },
        {
          "path": "src/blocks/content/roadmap/roadmap-board.tsx",
          "type": "registry:component",
          "target": "blocks/content/roadmap/roadmap-board.tsx"
        },
        {
          "path": "src/blocks/content/roadmap/status-tag.tsx",
          "type": "registry:component",
          "target": "blocks/content/roadmap/status-tag.tsx"
        },
        {
          "path": "src/blocks/content/roadmap/submit-dialog.tsx",
          "type": "registry:component",
          "target": "blocks/content/roadmap/submit-dialog.tsx"
        },
        {
          "path": "src/blocks/content/roadmap/vote-button.tsx",
          "type": "registry:component",
          "target": "blocks/content/roadmap/vote-button.tsx"
        }
      ]
    },
    {
      "name": "forms-multi-step",
      "type": "registry:block",
      "title": "Forms Multi Step",
      "description": "A multi-step application whose steps follow the answers: a summary of problems at the top of a step, people added as cards, save and finish later, and Check your answers with a Change for each step before it’s sent.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "forms-and-inputs"
      },
      "dependencies": [
        "react-hook-form@^7.89.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/checkbox.json",
        "https://www.youj.dev/r/collapse.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/file-upload.json",
        "https://www.youj.dev/r/form.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/icon-trash.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/radio-group.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/wizard.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/forms/multi-step.tsx",
          "type": "registry:component",
          "target": "blocks/forms/multi-step.tsx"
        },
        {
          "path": "src/blocks/forms/multi-step/data.ts",
          "type": "registry:component",
          "target": "blocks/forms/multi-step/data.ts"
        },
        {
          "path": "src/blocks/forms/multi-step/people.tsx",
          "type": "registry:component",
          "target": "blocks/forms/multi-step/people.tsx"
        },
        {
          "path": "src/blocks/forms/multi-step/review.tsx",
          "type": "registry:component",
          "target": "blocks/forms/multi-step/review.tsx"
        },
        {
          "path": "src/blocks/forms/multi-step/rules.ts",
          "type": "registry:component",
          "target": "blocks/forms/multi-step/rules.ts"
        },
        {
          "path": "src/blocks/forms/multi-step/steps.tsx",
          "type": "registry:component",
          "target": "blocks/forms/multi-step/steps.tsx"
        }
      ]
    },
    {
      "name": "forms-payment",
      "type": "registry:block",
      "title": "Forms Payment",
      "description": "Payment details in one card: card fields that know their brand and hand focus on as they fill, a billing address in the country’s own order with a lookup on its first line, and a business purchase’s tax number checked in the country’s format.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "forms-and-inputs"
      },
      "dependencies": [
        "motion@^14",
        "react-hook-form@^7.89.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/checkbox.json",
        "https://www.youj.dev/r/collapse.json",
        "https://www.youj.dev/r/combobox.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/form.json",
        "https://www.youj.dev/r/icon-credit-card.json",
        "https://www.youj.dev/r/icon-lock.json",
        "https://www.youj.dev/r/icon-map-pin.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/morph-label.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/spinner.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/forms/payment.tsx",
          "type": "registry:component",
          "target": "blocks/forms/payment.tsx"
        },
        {
          "path": "src/blocks/forms/payment/address-search.tsx",
          "type": "registry:component",
          "target": "blocks/forms/payment/address-search.tsx"
        },
        {
          "path": "src/blocks/forms/payment/address.tsx",
          "type": "registry:component",
          "target": "blocks/forms/payment/address.tsx"
        },
        {
          "path": "src/blocks/forms/payment/card.tsx",
          "type": "registry:component",
          "target": "blocks/forms/payment/card.tsx"
        },
        {
          "path": "src/blocks/forms/payment/data.ts",
          "type": "registry:component",
          "target": "blocks/forms/payment/data.ts"
        },
        {
          "path": "src/blocks/forms/payment/rules.ts",
          "type": "registry:component",
          "target": "blocks/forms/payment/rules.ts"
        }
      ]
    },
    {
      "name": "forms-settings",
      "type": "registry:block",
      "title": "Forms Settings",
      "description": "A settings section with a save bar: every change is marked with its own Reset, the bar counts them and saves with ⌘S, Discard has Undo, and unsaved changes survive a closing tab or a link elsewhere in the app.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "forms-and-inputs"
      },
      "dependencies": [
        "react-hook-form@^7.89.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/combobox.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/form.json",
        "https://www.youj.dev/r/icon-alert-triangle.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-undo.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/kbd.json",
        "https://www.youj.dev/r/radio-group.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/spinner.json",
        "https://www.youj.dev/r/switch.json",
        "https://www.youj.dev/r/tag-input.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/forms/settings.tsx",
          "type": "registry:component",
          "target": "blocks/forms/settings.tsx"
        },
        {
          "path": "src/blocks/forms/settings/data.ts",
          "type": "registry:component",
          "target": "blocks/forms/settings/data.ts"
        },
        {
          "path": "src/blocks/forms/settings/field.tsx",
          "type": "registry:component",
          "target": "blocks/forms/settings/field.tsx"
        },
        {
          "path": "src/blocks/forms/settings/save-bar.tsx",
          "type": "registry:component",
          "target": "blocks/forms/settings/save-bar.tsx"
        },
        {
          "path": "src/blocks/forms/settings/status.tsx",
          "type": "registry:component",
          "target": "blocks/forms/settings/status.tsx"
        },
        {
          "path": "src/blocks/forms/settings/use-guard.ts",
          "type": "registry:component",
          "target": "blocks/forms/settings/use-guard.ts"
        }
      ]
    },
    {
      "name": "forms-support",
      "type": "registry:block",
      "title": "Forms Support",
      "description": "A support request that helps before it’s sent: the topic decides the fields, help articles appear while the subject is typed, files upload with progress, and the reply time follows the team’s real hours in the requester’s own clock.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "forms-and-inputs"
      },
      "dependencies": [
        "react-hook-form@^7.89.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/checkbox.json",
        "https://www.youj.dev/r/collapse.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/file-upload.json",
        "https://www.youj.dev/r/form.json",
        "https://www.youj.dev/r/icon-book-open.json",
        "https://www.youj.dev/r/icon-bug.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-external-link.json",
        "https://www.youj.dev/r/icon-key.json",
        "https://www.youj.dev/r/icon-lightbulb.json",
        "https://www.youj.dev/r/icon-message.json",
        "https://www.youj.dev/r/icon-receipt.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/radio-group.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/textarea.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/forms/support.tsx",
          "type": "registry:component",
          "target": "blocks/forms/support.tsx"
        },
        {
          "path": "src/blocks/forms/support/articles.tsx",
          "type": "registry:component",
          "target": "blocks/forms/support/articles.tsx"
        },
        {
          "path": "src/blocks/forms/support/data.ts",
          "type": "registry:component",
          "target": "blocks/forms/support/data.ts"
        },
        {
          "path": "src/blocks/forms/support/done.tsx",
          "type": "registry:component",
          "target": "blocks/forms/support/done.tsx"
        },
        {
          "path": "src/blocks/forms/support/topic.tsx",
          "type": "registry:component",
          "target": "blocks/forms/support/topic.tsx"
        }
      ]
    },
    {
      "name": "frame-account-card",
      "type": "registry:block",
      "title": "Frame Account Card",
      "description": "Put account details within reach with a sidebar card that opens your account menu.",
      "meta": {
        "kind": "fragment",
        "level": "frame",
        "category": "account-and-workspace"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/account-menu.json",
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/frame-shell.json",
        "https://www.youj.dev/r/icon-chevrons-up-down.json",
        "https://www.youj.dev/r/icon-keyboard.json",
        "https://www.youj.dev/r/icon-life-buoy.json",
        "https://www.youj.dev/r/icon-settings.json",
        "https://www.youj.dev/r/icon-user.json",
        "https://www.youj.dev/r/sidebar.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/frame/account-card.tsx",
          "type": "registry:component",
          "target": "blocks/frame/account-card.tsx"
        }
      ]
    },
    {
      "name": "frame-account-menu",
      "type": "registry:block",
      "title": "Frame Account Menu",
      "description": "Give your top bar an avatar menu for profile settings, help and signing out.",
      "meta": {
        "kind": "overlay",
        "level": "frame",
        "category": "account-and-workspace"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/account-menu.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/frame-shell.json",
        "https://www.youj.dev/r/icon-keyboard.json",
        "https://www.youj.dev/r/icon-life-buoy.json",
        "https://www.youj.dev/r/icon-settings.json",
        "https://www.youj.dev/r/icon-user.json"
      ],
      "files": [
        {
          "path": "src/blocks/frame/account-menu.tsx",
          "type": "registry:component",
          "target": "blocks/frame/account-menu.tsx"
        }
      ]
    },
    {
      "name": "frame-account-status",
      "type": "registry:block",
      "title": "Frame Account Status",
      "description": "Let your users set their availability from an account menu in the top bar.",
      "meta": {
        "kind": "fragment",
        "level": "frame",
        "category": "account-and-workspace"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/account-menu.json",
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/collapsible.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/frame-account-menu.json",
        "https://www.youj.dev/r/frame-shell.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-labels.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/frame/account-status.tsx",
          "type": "registry:component",
          "target": "blocks/frame/account-status.tsx"
        }
      ]
    },
    {
      "name": "frame-notifications",
      "type": "registry:block",
      "title": "Frame Notifications",
      "description": "Keep updates close with a notification bell and a list you can filter or mark as read.",
      "meta": {
        "kind": "fragment",
        "level": "frame",
        "category": "search-and-notifications"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/icon-rocket.json",
        "https://www.youj.dev/r/notification-center.json"
      ],
      "files": [
        {
          "path": "src/blocks/frame/notifications.tsx",
          "type": "registry:component",
          "target": "blocks/frame/notifications.tsx"
        }
      ]
    },
    {
      "name": "frame-search-field",
      "type": "registry:block",
      "title": "Frame Search Field",
      "description": "Help your users find a page with a top-bar search field that suggests matches as they type.",
      "meta": {
        "kind": "fragment",
        "level": "frame",
        "category": "search-and-notifications"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/frame-shell.json",
        "https://www.youj.dev/r/icon-search.json",
        "https://www.youj.dev/r/icon-search-x.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/kbd.json",
        "https://www.youj.dev/r/sliding-indicator.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/frame/search-field.tsx",
          "type": "registry:component",
          "target": "blocks/frame/search-field.tsx"
        },
        {
          "path": "src/blocks/frame/search-field/pages.ts",
          "type": "registry:component",
          "target": "blocks/frame/search-field/pages.ts"
        },
        {
          "path": "src/blocks/frame/search-field/suggestions.tsx",
          "type": "registry:component",
          "target": "blocks/frame/search-field/suggestions.tsx"
        }
      ]
    },
    {
      "name": "frame-search-palette",
      "type": "registry:block",
      "title": "Frame Search Palette",
      "description": "Put pages and common actions within reach with a command palette in your app frame.",
      "meta": {
        "kind": "overlay",
        "level": "frame",
        "category": "search-and-notifications"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/app-header.json",
        "https://www.youj.dev/r/command.json",
        "https://www.youj.dev/r/command-palette.json",
        "https://www.youj.dev/r/frame-shell.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/icon-sidebar.json",
        "https://www.youj.dev/r/icon-user-plus.json",
        "https://www.youj.dev/r/sidebar.json",
        "https://www.youj.dev/r/youj-labels.json"
      ],
      "files": [
        {
          "path": "src/blocks/frame/search-palette.tsx",
          "type": "registry:component",
          "target": "blocks/frame/search-palette.tsx"
        }
      ]
    },
    {
      "name": "frame-shell",
      "type": "registry:block",
      "title": "Frame Shell",
      "description": "Build your app around a shared layout for the sidebar, top bar and page content.",
      "meta": {
        "kind": "screen",
        "level": "frame",
        "category": "shell"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/bottom-tab-bar.json",
        "https://www.youj.dev/r/collapse.json",
        "https://www.youj.dev/r/collapsible.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/icon-bar-chart.json",
        "https://www.youj.dev/r/icon-calendar.json",
        "https://www.youj.dev/r/icon-chevron-right.json",
        "https://www.youj.dev/r/icon-engine.json",
        "https://www.youj.dev/r/icon-file-text.json",
        "https://www.youj.dev/r/icon-folder.json",
        "https://www.youj.dev/r/icon-home.json",
        "https://www.youj.dev/r/icon-inbox.json",
        "https://www.youj.dev/r/icon-layout-dashboard.json",
        "https://www.youj.dev/r/icon-layout-grid.json",
        "https://www.youj.dev/r/icon-list-checks.json",
        "https://www.youj.dev/r/icon-menu.json",
        "https://www.youj.dev/r/icon-search.json",
        "https://www.youj.dev/r/icon-settings.json",
        "https://www.youj.dev/r/icon-sparkles.json",
        "https://www.youj.dev/r/icon-users.json",
        "https://www.youj.dev/r/icon-wind.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/kbd.json",
        "https://www.youj.dev/r/sidebar.json",
        "https://www.youj.dev/r/sliding-indicator.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/frame/shell.tsx",
          "type": "registry:component",
          "target": "blocks/frame/shell.tsx"
        },
        {
          "path": "src/blocks/frame/shell/context.tsx",
          "type": "registry:component",
          "target": "blocks/frame/shell/context.tsx"
        },
        {
          "path": "src/blocks/frame/shell/data.tsx",
          "type": "registry:component",
          "target": "blocks/frame/shell/data.tsx"
        },
        {
          "path": "src/blocks/frame/shell/filter-field.tsx",
          "type": "registry:component",
          "target": "blocks/frame/shell/filter-field.tsx"
        },
        {
          "path": "src/blocks/frame/shell/filter.ts",
          "type": "registry:component",
          "target": "blocks/frame/shell/filter.ts"
        },
        {
          "path": "src/blocks/frame/shell/inset.ts",
          "type": "registry:component",
          "target": "blocks/frame/shell/inset.ts"
        },
        {
          "path": "src/blocks/frame/shell/logo.tsx",
          "type": "registry:component",
          "target": "blocks/frame/shell/logo.tsx"
        },
        {
          "path": "src/blocks/frame/shell/mobile-tabs.tsx",
          "type": "registry:component",
          "target": "blocks/frame/shell/mobile-tabs.tsx"
        },
        {
          "path": "src/blocks/frame/shell/model.ts",
          "type": "registry:component",
          "target": "blocks/frame/shell/model.ts"
        },
        {
          "path": "src/blocks/frame/shell/nav-icon.tsx",
          "type": "registry:component",
          "target": "blocks/frame/shell/nav-icon.tsx"
        },
        {
          "path": "src/blocks/frame/shell/nav-list.tsx",
          "type": "registry:component",
          "target": "blocks/frame/shell/nav-list.tsx"
        },
        {
          "path": "src/blocks/frame/shell/resize.tsx",
          "type": "registry:component",
          "target": "blocks/frame/shell/resize.tsx"
        },
        {
          "path": "src/blocks/frame/shell/section-label.tsx",
          "type": "registry:component",
          "target": "blocks/frame/shell/section-label.tsx"
        },
        {
          "path": "src/blocks/frame/shell/sidebar-base.tsx",
          "type": "registry:component",
          "target": "blocks/frame/shell/sidebar-base.tsx"
        },
        {
          "path": "src/blocks/frame/shell/signature.ts",
          "type": "registry:component",
          "target": "blocks/frame/shell/signature.ts"
        },
        {
          "path": "src/blocks/frame/shell/tree.tsx",
          "type": "registry:component",
          "target": "blocks/frame/shell/tree.tsx"
        }
      ]
    },
    {
      "name": "frame-sidebar-classic",
      "type": "registry:block",
      "title": "Frame Sidebar Classic",
      "description": "The app sidebar most products start from, close to shadcn’s: a filter, labeled sections, icons and counts, nested pages, a folding Favorites group, pages for the foot, a meter and the account.",
      "meta": {
        "kind": "fragment",
        "level": "frame",
        "category": "sidebars"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/frame-shell.json",
        "https://www.youj.dev/r/sidebar.json",
        "https://www.youj.dev/r/youj-labels.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/frame/sidebar-classic.tsx",
          "type": "registry:component",
          "target": "blocks/frame/sidebar-classic.tsx"
        }
      ]
    },
    {
      "name": "frame-sidebar-glass",
      "type": "registry:block",
      "title": "Frame Sidebar Glass",
      "description": "For data tools, file systems and knowledge bases: the kit Sidebar’s glass surface over a backdrop of the theme’s inks, a nav column beside an explorer with a filter and a tree to any depth.",
      "meta": {
        "kind": "fragment",
        "level": "frame",
        "category": "sidebars"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/frame-shell.json",
        "https://www.youj.dev/r/sidebar.json",
        "https://www.youj.dev/r/youj-labels.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/frame/sidebar-glass.tsx",
          "type": "registry:component",
          "target": "blocks/frame/sidebar-glass.tsx"
        }
      ]
    },
    {
      "name": "frame-sidebar-icon-rail",
      "type": "registry:block",
      "title": "Frame Sidebar Icon Rail",
      "description": "For products with a handful of areas: a slim floating rail of icons with names in tooltips, the current one raised, the account at the foot.",
      "meta": {
        "kind": "fragment",
        "level": "frame",
        "category": "sidebars"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/frame-shell.json",
        "https://www.youj.dev/r/sidebar.json",
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/youj-labels.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/frame/sidebar-icon-rail.tsx",
          "type": "registry:component",
          "target": "blocks/frame/sidebar-icon-rail.tsx"
        }
      ]
    },
    {
      "name": "frame-sidebar-rail-panel",
      "type": "registry:block",
      "title": "Frame Sidebar Rail Panel",
      "description": "For products with many areas: round keys for the sections on a slim rail, beside a panel with the section’s title, a view toggle, a filter and its pages as a tree with count pills.",
      "meta": {
        "kind": "fragment",
        "level": "frame",
        "category": "sidebars"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/frame-shell.json",
        "https://www.youj.dev/r/icon-chevron-left.json",
        "https://www.youj.dev/r/icon-chevron-right.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/navigation-menu.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/sidebar.json",
        "https://www.youj.dev/r/sliding-indicator.json",
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/frame/sidebar-rail-panel.tsx",
          "type": "registry:component",
          "target": "blocks/frame/sidebar-rail-panel.tsx"
        },
        {
          "path": "src/blocks/frame/sidebar-rail-panel/drill.tsx",
          "type": "registry:component",
          "target": "blocks/frame/sidebar-rail-panel/drill.tsx"
        },
        {
          "path": "src/blocks/frame/sidebar-rail-panel/level.tsx",
          "type": "registry:component",
          "target": "blocks/frame/sidebar-rail-panel/level.tsx"
        },
        {
          "path": "src/blocks/frame/sidebar-rail-panel/panel.tsx",
          "type": "registry:component",
          "target": "blocks/frame/sidebar-rail-panel/panel.tsx"
        },
        {
          "path": "src/blocks/frame/sidebar-rail-panel/rail.tsx",
          "type": "registry:component",
          "target": "blocks/frame/sidebar-rail-panel/rail.tsx"
        }
      ]
    },
    {
      "name": "frame-sidebar-workspace",
      "type": "registry:block",
      "title": "Frame Sidebar Workspace",
      "description": "For products people run their day in: raised white rows on the gray chrome, a command field with go-to keys, counts on one column, folding spaces, optional live state, and a setup card at the foot.",
      "meta": {
        "kind": "fragment",
        "level": "frame",
        "category": "sidebars"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/collapse.json",
        "https://www.youj.dev/r/frame-shell.json",
        "https://www.youj.dev/r/icon-bell-dot.json",
        "https://www.youj.dev/r/icon-check-circle.json",
        "https://www.youj.dev/r/icon-corner-down-left.json",
        "https://www.youj.dev/r/icon-folder-plus.json",
        "https://www.youj.dev/r/icon-search.json",
        "https://www.youj.dev/r/icon-user-plus.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/kbd.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/sidebar.json",
        "https://www.youj.dev/r/sliding-indicator.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/frame/sidebar-workspace.tsx",
          "type": "registry:component",
          "target": "blocks/frame/sidebar-workspace.tsx"
        },
        {
          "path": "src/blocks/frame/sidebar-workspace/activity.tsx",
          "type": "registry:component",
          "target": "blocks/frame/sidebar-workspace/activity.tsx"
        },
        {
          "path": "src/blocks/frame/sidebar-workspace/command-model.ts",
          "type": "registry:component",
          "target": "blocks/frame/sidebar-workspace/command-model.ts"
        },
        {
          "path": "src/blocks/frame/sidebar-workspace/command-results.tsx",
          "type": "registry:component",
          "target": "blocks/frame/sidebar-workspace/command-results.tsx"
        },
        {
          "path": "src/blocks/frame/sidebar-workspace/command.tsx",
          "type": "registry:component",
          "target": "blocks/frame/sidebar-workspace/command.tsx"
        },
        {
          "path": "src/blocks/frame/sidebar-workspace/pinned.tsx",
          "type": "registry:component",
          "target": "blocks/frame/sidebar-workspace/pinned.tsx"
        },
        {
          "path": "src/blocks/frame/sidebar-workspace/pulse-data.ts",
          "type": "registry:component",
          "target": "blocks/frame/sidebar-workspace/pulse-data.ts"
        },
        {
          "path": "src/blocks/frame/sidebar-workspace/setup.tsx",
          "type": "registry:component",
          "target": "blocks/frame/sidebar-workspace/setup.tsx"
        },
        {
          "path": "src/blocks/frame/sidebar-workspace/signals.tsx",
          "type": "registry:component",
          "target": "blocks/frame/sidebar-workspace/signals.tsx"
        }
      ]
    },
    {
      "name": "frame-topbar-breadcrumb",
      "type": "registry:block",
      "title": "Frame Topbar Breadcrumb",
      "description": "Show your users where they are with a breadcrumb top bar that keeps search and account controls close.",
      "meta": {
        "kind": "fragment",
        "level": "frame",
        "category": "top-bars"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/app-header.json",
        "https://www.youj.dev/r/breadcrumb.json",
        "https://www.youj.dev/r/frame-shell.json",
        "https://www.youj.dev/r/separator.json",
        "https://www.youj.dev/r/sidebar.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/frame/topbar-breadcrumb.tsx",
          "type": "registry:component",
          "target": "blocks/frame/topbar-breadcrumb.tsx"
        }
      ]
    },
    {
      "name": "frame-topbar-minimal",
      "type": "registry:block",
      "title": "Frame Topbar Minimal",
      "description": "Keep the focus on your page with a top bar for its title, notifications and main action.",
      "meta": {
        "kind": "fragment",
        "level": "frame",
        "category": "top-bars"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/app-header.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/frame-shell.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/sidebar.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/frame/topbar-minimal.tsx",
          "type": "registry:component",
          "target": "blocks/frame/topbar-minimal.tsx"
        }
      ]
    },
    {
      "name": "frame-topbar-search",
      "type": "registry:block",
      "title": "Frame Topbar Search",
      "description": "Put search at the center of your app with a top bar that gives it room.",
      "meta": {
        "kind": "fragment",
        "level": "frame",
        "category": "top-bars"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/app-header.json",
        "https://www.youj.dev/r/frame-shell.json",
        "https://www.youj.dev/r/separator.json",
        "https://www.youj.dev/r/sidebar.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/frame/topbar-search.tsx",
          "type": "registry:component",
          "target": "blocks/frame/topbar-search.tsx"
        }
      ]
    },
    {
      "name": "frame-topbar-tabs",
      "type": "registry:block",
      "title": "Frame Topbar Tabs",
      "description": "Help your users switch between page views with tabs beneath the page title and actions.",
      "meta": {
        "kind": "fragment",
        "level": "frame",
        "category": "top-bars"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/app-header.json",
        "https://www.youj.dev/r/frame-shell.json",
        "https://www.youj.dev/r/separator.json",
        "https://www.youj.dev/r/sidebar.json",
        "https://www.youj.dev/r/sliding-indicator.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/frame/topbar-tabs.tsx",
          "type": "registry:component",
          "target": "blocks/frame/topbar-tabs.tsx"
        }
      ]
    },
    {
      "name": "frame-upgrade-card",
      "type": "registry:block",
      "title": "Frame Upgrade Card",
      "description": "Show plan usage and an upgrade option in a sidebar card your users can dismiss.",
      "meta": {
        "kind": "fragment",
        "level": "frame",
        "category": "account-and-workspace"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/frame-shell.json",
        "https://www.youj.dev/r/icon-sparkles.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/progress.json",
        "https://www.youj.dev/r/sidebar.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/frame/upgrade-card.tsx",
          "type": "registry:component",
          "target": "blocks/frame/upgrade-card.tsx"
        }
      ]
    },
    {
      "name": "frame-workspace",
      "type": "registry:block",
      "title": "Frame Workspace",
      "description": "Let your users switch teams with a searchable workspace menu in the sidebar.",
      "meta": {
        "kind": "fragment",
        "level": "frame",
        "category": "account-and-workspace",
        "hidden": true
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/frame-shell.json",
        "https://www.youj.dev/r/sidebar.json",
        "https://www.youj.dev/r/workspace-switcher.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/frame/workspace.tsx",
          "type": "registry:component",
          "target": "blocks/frame/workspace.tsx"
        }
      ]
    },
    {
      "name": "marketing-about",
      "type": "registry:block",
      "title": "Marketing About",
      "description": "Tell the company’s story as something to scrub through: a rail of years under a growth line, where each year rolls the figures to how they stood and swaps the chapter in.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "company"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/icon-compass.json",
        "https://www.youj.dev/r/icon-heart.json",
        "https://www.youj.dev/r/icon-leaf.json",
        "https://www.youj.dev/r/icon-lightbulb.json",
        "https://www.youj.dev/r/icon-play.json",
        "https://www.youj.dev/r/icon-refresh.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/stagger.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/use-visible.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/about.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/about.tsx"
        },
        {
          "path": "src/blocks/marketing/about/data.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/about/data.tsx"
        },
        {
          "path": "src/blocks/marketing/about/timeline.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/about/timeline.tsx"
        }
      ]
    },
    {
      "name": "marketing-careers",
      "type": "registry:block",
      "title": "Marketing Careers",
      "description": "List the open roles so people find theirs: teams as tabs with live counts, a search that marks its words, a location filter, rows that line up their place, kind and salary band, and an open application at the end.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "company"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-map-pin.json",
        "https://www.youj.dev/r/icon-search.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/use-mobile.json",
        "https://www.youj.dev/r/use-now.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/careers.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/careers.tsx"
        },
        {
          "path": "src/blocks/marketing/careers/data.ts",
          "type": "registry:component",
          "target": "blocks/marketing/careers/data.ts"
        },
        {
          "path": "src/blocks/marketing/careers/role-row.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/careers/role-row.tsx"
        }
      ]
    },
    {
      "name": "marketing-contact-sales",
      "type": "registry:block",
      "title": "Marketing Contact Sales",
      "description": "Let a visitor book a sales call the way a good scheduler does, one question at a time: a day and a time with the person their region puts forward, then three short rows of details, then a confirmation; or a message instead.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "calls-to-action"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-mail.json",
        "https://www.youj.dev/r/icon-phone.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/native-select.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/stagger.json",
        "https://www.youj.dev/r/textarea.json",
        "https://www.youj.dev/r/toggle-group.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/contact-sales.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/contact-sales.tsx"
        },
        {
          "path": "src/blocks/marketing/contact-sales/data.ts",
          "type": "registry:component",
          "target": "blocks/marketing/contact-sales/data.ts"
        },
        {
          "path": "src/blocks/marketing/contact-sales/details.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/contact-sales/details.tsx"
        },
        {
          "path": "src/blocks/marketing/contact-sales/done.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/contact-sales/done.tsx"
        },
        {
          "path": "src/blocks/marketing/contact-sales/person.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/contact-sales/person.tsx"
        },
        {
          "path": "src/blocks/marketing/contact-sales/pick-time.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/contact-sales/pick-time.tsx"
        },
        {
          "path": "src/blocks/marketing/contact-sales/stage.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/contact-sales/stage.tsx"
        },
        {
          "path": "src/blocks/marketing/contact-sales/ticket.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/contact-sales/ticket.tsx"
        }
      ]
    },
    {
      "name": "marketing-cookie-consent",
      "type": "registry:block",
      "title": "Marketing Cookie Consent",
      "description": "Let visitors choose their cookie preferences with a banner they can reopen later.",
      "meta": {
        "kind": "overlay",
        "level": "card",
        "category": "forms-and-inputs"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/collapse.json",
        "https://www.youj.dev/r/dialog.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-cookie.json",
        "https://www.youj.dev/r/icon-shield-check.json",
        "https://www.youj.dev/r/switch.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/cookie-consent.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/cookie-consent.tsx"
        },
        {
          "path": "src/blocks/marketing/cookie-consent/data.ts",
          "type": "registry:component",
          "target": "blocks/marketing/cookie-consent/data.ts"
        },
        {
          "path": "src/blocks/marketing/cookie-consent/parts.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/cookie-consent/parts.tsx"
        }
      ]
    },
    {
      "name": "marketing-cta-banner",
      "type": "registry:block",
      "title": "Marketing CTA Banner",
      "description": "Give visitors a next step between sections with a slim call-to-action banner.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "calls-to-action"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-rocket.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/cta-banner.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/cta-banner.tsx"
        }
      ]
    },
    {
      "name": "marketing-cta-form",
      "type": "registry:block",
      "title": "Marketing CTA Form",
      "description": "Turn interest into an inquiry with a form for work email and team size beside your pitch.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "calls-to-action"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/content-swap.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-engine.json",
        "https://www.youj.dev/r/icon-git-branch.json",
        "https://www.youj.dev/r/icon-mail-open.json",
        "https://www.youj.dev/r/icon-users.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/stagger.json",
        "https://www.youj.dev/r/toggle-group.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/cta-form.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/cta-form.tsx"
        }
      ]
    },
    {
      "name": "marketing-cta-headline",
      "type": "registry:block",
      "title": "Marketing CTA Headline",
      "description": "Close your page with a bold headline and a prominent button for the next step.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "calls-to-action",
        "hidden": true
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/illustrations.json",
        "https://www.youj.dev/r/magnetic.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/text-split.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/cta-headline.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/cta-headline.tsx"
        }
      ]
    },
    {
      "name": "marketing-cta-proof",
      "type": "registry:block",
      "title": "Marketing CTA Proof",
      "description": "Close with a ledger of customer results and the words behind them, ending on the reader’s own line and the call to action.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "calls-to-action"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-sparkle.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/sliding-indicator.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/cta-proof.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/cta-proof.tsx"
        },
        {
          "path": "src/blocks/marketing/cta-proof/data.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/cta-proof/data.tsx"
        }
      ]
    },
    {
      "name": "marketing-cta",
      "type": "registry:block",
      "title": "Marketing CTA",
      "description": "Give your landing page a closing call to action with a headline, reassurance and room for a secondary link.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "calls-to-action"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/illustrations.json",
        "https://www.youj.dev/r/magnetic.json",
        "https://www.youj.dev/r/mesh-gradient.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/cta.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/cta.tsx"
        }
      ]
    },
    {
      "name": "marketing-customer-story",
      "type": "registry:block",
      "title": "Marketing Customer Story",
      "description": "Tell a customer story as a long read: the results as counting figures with a before and now bar, the story in chapters with a contents that follows the reader, a pull quote and the next story.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "social-proof"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/anchor-nav.json",
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-quote.json",
        "https://www.youj.dev/r/icon-trending-down.json",
        "https://www.youj.dev/r/icon-trending-up.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/customer-story.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/customer-story.tsx"
        },
        {
          "path": "src/blocks/marketing/customer-story/data.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/customer-story/data.tsx"
        },
        {
          "path": "src/blocks/marketing/customer-story/results.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/customer-story/results.tsx"
        }
      ]
    },
    {
      "name": "marketing-faq",
      "type": "registry:block",
      "title": "Marketing FAQ",
      "description": "Answer common questions like a small help center: a search that marks its words and opens the answer that matched, topics with counts, a deep link for every answer, and “Was this helpful?” under each.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "faq"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/accordion.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-link.json",
        "https://www.youj.dev/r/icon-message.json",
        "https://www.youj.dev/r/icon-search.json",
        "https://www.youj.dev/r/icon-search-x.json",
        "https://www.youj.dev/r/icon-thumbs-down.json",
        "https://www.youj.dev/r/icon-thumbs-up.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/use-mobile.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/faq.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/faq.tsx"
        },
        {
          "path": "src/blocks/marketing/faq/answer.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/faq/answer.tsx"
        },
        {
          "path": "src/blocks/marketing/faq/data.ts",
          "type": "registry:component",
          "target": "blocks/marketing/faq/data.ts"
        },
        {
          "path": "src/blocks/marketing/faq/search.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/faq/search.tsx"
        }
      ]
    },
    {
      "name": "marketing-feature-bento",
      "type": "registry:block",
      "title": "Marketing Feature Bento",
      "description": "Show what your product does with a grid of varied tiles and small working demos.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "features"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/avatar-stack.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-command.json",
        "https://www.youj.dev/r/icon-engine.json",
        "https://www.youj.dev/r/icon-gauge.json",
        "https://www.youj.dev/r/icon-git-pull-request.json",
        "https://www.youj.dev/r/icon-globe.json",
        "https://www.youj.dev/r/icon-layers.json",
        "https://www.youj.dev/r/icon-lock.json",
        "https://www.youj.dev/r/icon-message.json",
        "https://www.youj.dev/r/icon-search.json",
        "https://www.youj.dev/r/kbd.json",
        "https://www.youj.dev/r/progress.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/sparkline.json",
        "https://www.youj.dev/r/spinner.json",
        "https://www.youj.dev/r/stagger.json",
        "https://www.youj.dev/r/switch.json",
        "https://www.youj.dev/r/use-visible.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/feature-bento.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/feature-bento.tsx"
        },
        {
          "path": "src/blocks/marketing/feature-bento/demos.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/feature-bento/demos.tsx"
        },
        {
          "path": "src/blocks/marketing/feature-bento/preview.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/feature-bento/preview.tsx"
        },
        {
          "path": "src/blocks/marketing/feature-bento/use-loop.ts",
          "type": "registry:component",
          "target": "blocks/marketing/feature-bento/use-loop.ts"
        },
        {
          "path": "src/blocks/marketing/feature-bento/workflow.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/feature-bento/workflow.tsx"
        }
      ]
    },
    {
      "name": "marketing-feature-grid",
      "type": "registry:block",
      "title": "Marketing Feature Grid",
      "description": "List your features in a ruled grid, each read off a live instrument that takes a new reading when it’s pointed at.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "features"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/day-ring.json",
        "https://www.youj.dev/r/distribution-strip.json",
        "https://www.youj.dev/r/hatched-bar.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-eye.json",
        "https://www.youj.dev/r/icon-lock.json",
        "https://www.youj.dev/r/lane-meter.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/rollout-ruler.json",
        "https://www.youj.dev/r/scramble-text.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/feature-grid.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/feature-grid.tsx"
        },
        {
          "path": "src/blocks/marketing/feature-grid/instruments.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/feature-grid/instruments.tsx"
        }
      ]
    },
    {
      "name": "marketing-feature-spotlight",
      "type": "registry:block",
      "title": "Marketing Feature Spotlight",
      "description": "Show your features in action with alternating text and interactive demos.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "features"
      },
      "dependencies": [
        "recharts@^3.8.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/chart.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-git-commit.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/timeline.json",
        "https://www.youj.dev/r/toggle-group.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/feature-spotlight.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/feature-spotlight.tsx"
        },
        {
          "path": "src/blocks/marketing/feature-spotlight/demos.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/feature-spotlight/demos.tsx"
        }
      ]
    },
    {
      "name": "marketing-feature-steps",
      "type": "registry:block",
      "title": "Marketing Feature Steps",
      "description": "Explain how your product works as a release you can watch: a lens rides the track from step to step, each picture plays its moment as it arrives, and visitors can pick any step.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "features"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-brand-github.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-git-pull-request.json",
        "https://www.youj.dev/r/icon-message.json",
        "https://www.youj.dev/r/icon-play.json",
        "https://www.youj.dev/r/icon-rocket.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/use-visible.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/feature-steps.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/feature-steps.tsx"
        },
        {
          "path": "src/blocks/marketing/feature-steps/data.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/feature-steps/data.tsx"
        },
        {
          "path": "src/blocks/marketing/feature-steps/visuals.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/feature-steps/visuals.tsx"
        }
      ]
    },
    {
      "name": "marketing-feature-tabs",
      "type": "registry:block",
      "title": "Marketing Feature Tabs",
      "description": "Let visitors explore your features in tabs with a large demo for each choice.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "features"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/icon-activity.json",
        "https://www.youj.dev/r/icon-bell.json",
        "https://www.youj.dev/r/icon-engine.json",
        "https://www.youj.dev/r/icon-gauge.json",
        "https://www.youj.dev/r/icon-history.json",
        "https://www.youj.dev/r/icon-logs.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/sparkline.json",
        "https://www.youj.dev/r/tabs.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/feature-tabs.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/feature-tabs.tsx"
        },
        {
          "path": "src/blocks/marketing/feature-tabs/visuals.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/feature-tabs/visuals.tsx"
        }
      ]
    },
    {
      "name": "marketing-footer",
      "type": "registry:block",
      "title": "Marketing Footer",
      "description": "Round off your site with a sitemap: grouped links with tags, a newsletter sign-up, trust badges, legal links, a language switch and a live status pill.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "navigation-and-footer"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-brand-github.json",
        "https://www.youj.dev/r/icon-brand-linkedin.json",
        "https://www.youj.dev/r/icon-brand-x.json",
        "https://www.youj.dev/r/icon-globe.json",
        "https://www.youj.dev/r/icon-shield-check.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/native-select.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/footer.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/footer.tsx"
        },
        {
          "path": "src/blocks/marketing/footer/data.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/footer/data.tsx"
        },
        {
          "path": "src/blocks/marketing/footer/newsletter.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/footer/newsletter.tsx"
        }
      ]
    },
    {
      "name": "marketing-hero-centered",
      "type": "registry:block",
      "title": "Marketing Hero Centered",
      "description": "Introduce your product with a centered headline and calls to action over a soft animated background.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "hero"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/aurora.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/stagger.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/hero-centered.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/hero-centered.tsx"
        }
      ]
    },
    {
      "name": "marketing-hero-collage",
      "type": "registry:block",
      "title": "Marketing Hero Collage",
      "description": "Open with a release in flight: a desk of live interface cards that change state stage by stage, with a tour you can take over and a caption that tells the story in words.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "hero",
        "hidden": true
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/avatar-stack.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/dot-matrix-wave.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-check-circle.json",
        "https://www.youj.dev/r/icon-git-pull-request.json",
        "https://www.youj.dev/r/icon-play.json",
        "https://www.youj.dev/r/icon-rocket.json",
        "https://www.youj.dev/r/magnetic.json",
        "https://www.youj.dev/r/progress.json",
        "https://www.youj.dev/r/slider.json",
        "https://www.youj.dev/r/stagger.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/hero-collage.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/hero-collage.tsx"
        },
        {
          "path": "src/blocks/marketing/hero-collage/cards.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/hero-collage/cards.tsx"
        },
        {
          "path": "src/blocks/marketing/hero-collage/data.ts",
          "type": "registry:component",
          "target": "blocks/marketing/hero-collage/data.ts"
        }
      ]
    },
    {
      "name": "marketing-hero-editorial",
      "type": "registry:block",
      "title": "Marketing Hero Editorial",
      "description": "Give your landing page a journal-style opening with large type, a byline and supporting figures.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "hero",
        "hidden": true
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/stagger.json",
        "https://www.youj.dev/r/text-split.json",
        "https://www.youj.dev/r/use-visible.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/hero-editorial.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/hero-editorial.tsx"
        }
      ]
    },
    {
      "name": "marketing-hero-motion",
      "type": "registry:block",
      "title": "Marketing Hero Motion",
      "description": "Open with a headline that rises word by word over a pointer-reactive dot matrix, beside a live panel where visitors change speed, reduced motion and theme and watch a real checklist answer.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "hero"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/checkbox.json",
        "https://www.youj.dev/r/dot-matrix-wave.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/icon-rocket.json",
        "https://www.youj.dev/r/kbd.json",
        "https://www.youj.dev/r/magnetic.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/stagger.json",
        "https://www.youj.dev/r/switch.json",
        "https://www.youj.dev/r/text-split.json",
        "https://www.youj.dev/r/use-visible.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/hero-motion.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/hero-motion.tsx"
        },
        {
          "path": "src/blocks/marketing/hero-motion/data.ts",
          "type": "registry:component",
          "target": "blocks/marketing/hero-motion/data.ts"
        },
        {
          "path": "src/blocks/marketing/hero-motion/tuner.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/hero-motion/tuner.tsx"
        }
      ]
    },
    {
      "name": "marketing-hero-product",
      "type": "registry:block",
      "title": "Marketing Hero Product",
      "description": "Put your product preview at the heart of your landing page with a browser frame beneath the headline.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "hero"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/icon-activity.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-bar-chart.json",
        "https://www.youj.dev/r/icon-engine.json",
        "https://www.youj.dev/r/icon-git-branch.json",
        "https://www.youj.dev/r/icon-globe.json",
        "https://www.youj.dev/r/icon-history.json",
        "https://www.youj.dev/r/icon-layout-dashboard.json",
        "https://www.youj.dev/r/icon-logs.json",
        "https://www.youj.dev/r/icon-play.json",
        "https://www.youj.dev/r/icon-rocket.json",
        "https://www.youj.dev/r/icon-search.json",
        "https://www.youj.dev/r/icon-settings.json",
        "https://www.youj.dev/r/kbd.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/stagger.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/hero-product.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/hero-product.tsx"
        },
        {
          "path": "src/blocks/marketing/hero-product/deployments-shot.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/hero-product/deployments-shot.tsx"
        }
      ]
    },
    {
      "name": "marketing-hero-split",
      "type": "registry:block",
      "title": "Marketing Hero Split",
      "description": "Pair your opening pitch with the product in a window, and let the selling points steer it: each point sends the window’s camera to its part of the screen, where that part plays its moment.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "hero"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-play.json",
        "https://www.youj.dev/r/icon-rotate-ccw.json",
        "https://www.youj.dev/r/icon-trending-up.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/stagger.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/use-visible.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/hero-split.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/hero-split.tsx"
        },
        {
          "path": "src/blocks/marketing/hero-split/data.ts",
          "type": "registry:component",
          "target": "blocks/marketing/hero-split/data.ts"
        },
        {
          "path": "src/blocks/marketing/hero-split/demo.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/hero-split/demo.tsx"
        },
        {
          "path": "src/blocks/marketing/hero-split/moment.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/hero-split/moment.tsx"
        }
      ]
    },
    {
      "name": "marketing-hero-terminal",
      "type": "registry:block",
      "title": "Marketing Hero Terminal",
      "description": "Introduce your command-line tool with a copyable install command and an animated terminal demo.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "hero"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-copy.json",
        "https://www.youj.dev/r/icon-rotate-ccw.json",
        "https://www.youj.dev/r/icon-terminal.json",
        "https://www.youj.dev/r/morph-label.json",
        "https://www.youj.dev/r/stagger.json",
        "https://www.youj.dev/r/use-visible.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/hero-terminal.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/hero-terminal.tsx"
        },
        {
          "path": "src/blocks/marketing/hero-terminal/live-site.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/hero-terminal/live-site.tsx"
        },
        {
          "path": "src/blocks/marketing/hero-terminal/terminal.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/hero-terminal/terminal.tsx"
        }
      ]
    },
    {
      "name": "marketing-integrations",
      "type": "registry:block",
      "title": "Marketing Integrations",
      "description": "Show what your product connects to: searchable, categorised cards with a status each, and a detail sheet for the connection, with its health and sync history.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "features"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/history-strip.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-check-circle.json",
        "https://www.youj.dev/r/icon-chevron-right.json",
        "https://www.youj.dev/r/icon-external-link.json",
        "https://www.youj.dev/r/icon-search.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/sheet.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/integrations.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/integrations.tsx"
        },
        {
          "path": "src/blocks/marketing/integrations/card.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/integrations/card.tsx"
        },
        {
          "path": "src/blocks/marketing/integrations/data.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/integrations/data.tsx"
        },
        {
          "path": "src/blocks/marketing/integrations/detail.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/integrations/detail.tsx"
        }
      ]
    },
    {
      "name": "marketing-logo-cloud",
      "type": "registry:block",
      "title": "Marketing Logo Cloud",
      "description": "Show who uses the product under one quiet line: a grid that trades its logos in place, one cell at a time, or a row that drifts with no seam.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "social-proof"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/icon-play.json",
        "https://www.youj.dev/r/marquee.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/logo-cloud.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/logo-cloud.tsx"
        },
        {
          "path": "src/blocks/marketing/logo-cloud/cycle.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/logo-cloud/cycle.tsx"
        },
        {
          "path": "src/blocks/marketing/logo-cloud/data.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/logo-cloud/data.tsx"
        }
      ]
    },
    {
      "name": "marketing-metrics",
      "type": "registry:block",
      "title": "Marketing Metrics",
      "description": "Back your claims with numbers that come with context: figures that count up for a chosen period, the change on the one before, a trend line, a baseline to compare with and a footnote for the source.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "social-proof"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/icon-trending-down.json",
        "https://www.youj.dev/r/icon-trending-up.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/sparkline.json",
        "https://www.youj.dev/r/stagger.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/metrics.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/metrics.tsx"
        },
        {
          "path": "src/blocks/marketing/metrics/card.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/metrics/card.tsx"
        },
        {
          "path": "src/blocks/marketing/metrics/data.ts",
          "type": "registry:component",
          "target": "blocks/marketing/metrics/data.ts"
        }
      ]
    },
    {
      "name": "marketing-navbar-docs",
      "type": "registry:block",
      "title": "Marketing Navbar Docs",
      "description": "A documentation header: a version menu, ⌘K search over every page, the repository with its stars and the sections as tabs, with a drawer of the page tree on phones.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "navigation-and-footer"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/app-header.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/collapsible.json",
        "https://www.youj.dev/r/command.json",
        "https://www.youj.dev/r/command-palette.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/icon-arrow-up-right.json",
        "https://www.youj.dev/r/icon-brand-github.json",
        "https://www.youj.dev/r/icon-chevrons-up-down.json",
        "https://www.youj.dev/r/icon-file-text.json",
        "https://www.youj.dev/r/icon-history.json",
        "https://www.youj.dev/r/icon-menu.json",
        "https://www.youj.dev/r/sheet.json",
        "https://www.youj.dev/r/sliding-indicator.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/navbar-docs.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/navbar-docs.tsx"
        },
        {
          "path": "src/blocks/marketing/navbar-docs/data.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/navbar-docs/data.tsx"
        },
        {
          "path": "src/blocks/marketing/navbar-docs/drawer.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/navbar-docs/drawer.tsx"
        },
        {
          "path": "src/blocks/marketing/navbar-docs/search.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/navbar-docs/search.tsx"
        },
        {
          "path": "src/blocks/marketing/navbar-docs/tabs.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/navbar-docs/tabs.tsx"
        },
        {
          "path": "src/blocks/marketing/navbar-docs/version-menu.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/navbar-docs/version-menu.tsx"
        }
      ]
    },
    {
      "name": "marketing-navbar-floating",
      "type": "registry:block",
      "title": "Marketing Navbar Floating",
      "description": "A floating island of navigation that draws in around its links as the page scrolls under it, follows the section in view, steps aside while you read and grows into its own menu on phones.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "navigation-and-footer"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/collapse.json",
        "https://www.youj.dev/r/icon-menu.json",
        "https://www.youj.dev/r/sliding-indicator.json",
        "https://www.youj.dev/r/stagger.json",
        "https://www.youj.dev/r/use-mobile.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/navbar-floating.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/navbar-floating.tsx"
        },
        {
          "path": "src/blocks/marketing/navbar-floating/data.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/navbar-floating/data.tsx"
        },
        {
          "path": "src/blocks/marketing/navbar-floating/use-floating-scroll.ts",
          "type": "registry:component",
          "target": "blocks/marketing/navbar-floating/use-floating-scroll.ts"
        }
      ]
    },
    {
      "name": "marketing-navbar-fullscreen",
      "type": "registry:block",
      "title": "Marketing Navbar Fullscreen",
      "description": "A slim bar whose Menu opens the whole screen: large entries that rise into place, levels that drill in and back with focus kept in step, a picture that follows the entry you point at, and the small print at the foot.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "navigation-and-footer"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/app-header.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/icon-arrow-left.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-brand-github.json",
        "https://www.youj.dev/r/icon-brand-linkedin.json",
        "https://www.youj.dev/r/icon-brand-x.json",
        "https://www.youj.dev/r/icon-menu.json",
        "https://www.youj.dev/r/sheet.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/navbar-fullscreen.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/navbar-fullscreen.tsx"
        },
        {
          "path": "src/blocks/marketing/navbar-fullscreen/covers.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/navbar-fullscreen/covers.tsx"
        },
        {
          "path": "src/blocks/marketing/navbar-fullscreen/data.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/navbar-fullscreen/data.tsx"
        },
        {
          "path": "src/blocks/marketing/navbar-fullscreen/menu.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/navbar-fullscreen/menu.tsx"
        }
      ]
    },
    {
      "name": "marketing-navbar-store",
      "type": "registry:block",
      "title": "Marketing Navbar Store",
      "description": "A shop’s header: a strip with the promise and the region, departments with collection tiles, a search that suggests products priced in your currency, and a bag whose count drops in.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "navigation-and-footer"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/accordion.json",
        "https://www.youj.dev/r/app-header.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/command.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-chevron-down.json",
        "https://www.youj.dev/r/icon-globe.json",
        "https://www.youj.dev/r/icon-menu.json",
        "https://www.youj.dev/r/icon-search.json",
        "https://www.youj.dev/r/icon-shopping-bag.json",
        "https://www.youj.dev/r/icon-trending-up.json",
        "https://www.youj.dev/r/icon-user.json",
        "https://www.youj.dev/r/navigation-menu.json",
        "https://www.youj.dev/r/sheet.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/navbar-store.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/navbar-store.tsx"
        },
        {
          "path": "src/blocks/marketing/navbar-store/art.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/navbar-store/art.tsx"
        },
        {
          "path": "src/blocks/marketing/navbar-store/data.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/navbar-store/data.tsx"
        },
        {
          "path": "src/blocks/marketing/navbar-store/departments.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/navbar-store/departments.tsx"
        },
        {
          "path": "src/blocks/marketing/navbar-store/drawer.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/navbar-store/drawer.tsx"
        },
        {
          "path": "src/blocks/marketing/navbar-store/region-menu.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/navbar-store/region-menu.tsx"
        },
        {
          "path": "src/blocks/marketing/navbar-store/search.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/navbar-store/search.tsx"
        }
      ]
    },
    {
      "name": "marketing-navbar",
      "type": "registry:block",
      "title": "Marketing Navbar",
      "description": "Help visitors find their way with mega menus that morph from panel to panel and preview each destination, media cards, search, an announcement bar, signed-in and signed-out states, and a drawer with folding sections on phones.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "navigation-and-footer"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/accordion.json",
        "https://www.youj.dev/r/app-header.json",
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/collapse.json",
        "https://www.youj.dev/r/command.json",
        "https://www.youj.dev/r/command-palette.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-bar-chart.json",
        "https://www.youj.dev/r/icon-book-open.json",
        "https://www.youj.dev/r/icon-briefcase.json",
        "https://www.youj.dev/r/icon-building.json",
        "https://www.youj.dev/r/icon-code.json",
        "https://www.youj.dev/r/icon-credit-card.json",
        "https://www.youj.dev/r/icon-database.json",
        "https://www.youj.dev/r/icon-git-branch.json",
        "https://www.youj.dev/r/icon-globe.json",
        "https://www.youj.dev/r/icon-history.json",
        "https://www.youj.dev/r/icon-layout-dashboard.json",
        "https://www.youj.dev/r/icon-life-buoy.json",
        "https://www.youj.dev/r/icon-log-out.json",
        "https://www.youj.dev/r/icon-megaphone.json",
        "https://www.youj.dev/r/icon-rocket.json",
        "https://www.youj.dev/r/icon-search.json",
        "https://www.youj.dev/r/icon-settings.json",
        "https://www.youj.dev/r/icon-shield-check.json",
        "https://www.youj.dev/r/icon-shopping-bag.json",
        "https://www.youj.dev/r/icon-sparkles.json",
        "https://www.youj.dev/r/icon-terminal.json",
        "https://www.youj.dev/r/icon-users.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/mega-menu.json",
        "https://www.youj.dev/r/navigation-menu.json",
        "https://www.youj.dev/r/sparkline.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/navbar.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/navbar.tsx"
        },
        {
          "path": "src/blocks/marketing/navbar/account.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/navbar/account.tsx"
        },
        {
          "path": "src/blocks/marketing/navbar/data.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/navbar/data.tsx"
        },
        {
          "path": "src/blocks/marketing/navbar/drawer.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/navbar/drawer.tsx"
        },
        {
          "path": "src/blocks/marketing/navbar/menu.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/navbar/menu.tsx"
        },
        {
          "path": "src/blocks/marketing/navbar/previews.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/navbar/previews.tsx"
        },
        {
          "path": "src/blocks/marketing/navbar/search.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/navbar/search.tsx"
        }
      ]
    },
    {
      "name": "marketing-not-found",
      "type": "registry:block",
      "title": "Marketing Not Found",
      "description": "Give visitors a way forward with a not-found page, its lighthouse sweeping the fog, or a coming-soon page with a launch sign-up.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "marketing-and-status"
      },
      "dependencies": [
        "@youj/miniatures@^0.1.0"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-arrow-left.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-bookmark.json",
        "https://www.youj.dev/r/icon-home.json",
        "https://www.youj.dev/r/icon-message.json",
        "https://www.youj.dev/r/icon-search.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/mesh-gradient.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/stagger.json",
        "https://www.youj.dev/r/text-split.json",
        "https://www.youj.dev/r/use-now.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/not-found.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/not-found.tsx"
        },
        {
          "path": "src/blocks/marketing/not-found/coming-soon.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/not-found/coming-soon.tsx"
        },
        {
          "path": "src/blocks/marketing/not-found/data.ts",
          "type": "registry:component",
          "target": "blocks/marketing/not-found/data.ts"
        },
        {
          "path": "src/blocks/marketing/not-found/lighthouse.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/not-found/lighthouse.tsx"
        }
      ]
    },
    {
      "name": "marketing-pricing-compare",
      "type": "registry:block",
      "title": "Marketing Pricing Compare",
      "description": "Help visitors compare plans with a feature table that keeps prices and sign-up buttons in view.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "pricing"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/collapse.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-chevron-down.json",
        "https://www.youj.dev/r/icon-info.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/pricing-compare.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/pricing-compare.tsx"
        },
        {
          "path": "src/blocks/marketing/pricing-compare/data.ts",
          "type": "registry:component",
          "target": "blocks/marketing/pricing-compare/data.ts"
        }
      ]
    },
    {
      "name": "marketing-pricing-picker",
      "type": "registry:block",
      "title": "Marketing Pricing Picker",
      "description": "Help visitors choose a plan with seat controls and a summary that updates the total as they choose.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "pricing"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/collapse.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/morph-label.json",
        "https://www.youj.dev/r/number-input.json",
        "https://www.youj.dev/r/radio-group.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/pricing-picker.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/pricing-picker.tsx"
        },
        {
          "path": "src/blocks/marketing/pricing-picker/data.ts",
          "type": "registry:component",
          "target": "blocks/marketing/pricing-picker/data.ts"
        }
      ]
    },
    {
      "name": "marketing-pricing-simple",
      "type": "registry:block",
      "title": "Marketing Pricing Simple",
      "description": "Present a single plan with its price, included features and a choice of currencies.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "pricing"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-rotate-ccw.json",
        "https://www.youj.dev/r/icon-shield-check.json",
        "https://www.youj.dev/r/icon-users.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/pricing-simple.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/pricing-simple.tsx"
        }
      ]
    },
    {
      "name": "marketing-pricing-usage",
      "type": "registry:block",
      "title": "Marketing Pricing Usage",
      "description": "Help visitors estimate their bill with usage sliders and a cost breakdown that updates as they drag.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "pricing"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/morph-label.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/slider.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/pricing-usage.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/pricing-usage.tsx"
        },
        {
          "path": "src/blocks/marketing/pricing-usage/data.ts",
          "type": "registry:component",
          "target": "blocks/marketing/pricing-usage/data.ts"
        }
      ]
    },
    {
      "name": "marketing-pricing",
      "type": "registry:block",
      "title": "Marketing Pricing",
      "description": "Help visitors choose a plan with monthly or yearly prices and a feature comparison.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "pricing"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/shimmer-border.json",
        "https://www.youj.dev/r/table.json",
        "https://www.youj.dev/r/toggle-group.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/pricing.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/pricing.tsx"
        }
      ]
    },
    {
      "name": "marketing-product-comparison",
      "type": "registry:block",
      "title": "Marketing Product Comparison",
      "description": "Put your product beside the alternatives in one table: a sticky head with price, coverage and a call to action, grouped features that explain themselves, a switch for only the differences, and one alternative at a time on a phone.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "features"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-info.json",
        "https://www.youj.dev/r/icon-minus.json",
        "https://www.youj.dev/r/progress.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/switch.json",
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/product-comparison.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/product-comparison.tsx"
        },
        {
          "path": "src/blocks/marketing/product-comparison/cells.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/product-comparison/cells.tsx"
        },
        {
          "path": "src/blocks/marketing/product-comparison/data.ts",
          "type": "registry:component",
          "target": "blocks/marketing/product-comparison/data.ts"
        }
      ]
    },
    {
      "name": "marketing-product-tour",
      "type": "registry:block",
      "title": "Marketing Product Tour",
      "description": "Let visitors try the product instead of watching it: a rail of steps beside a live window of real components, with each step checked off as they do its thing and a progress line that fills.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "features"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-check-circle.json",
        "https://www.youj.dev/r/icon-git-branch.json",
        "https://www.youj.dev/r/icon-message.json",
        "https://www.youj.dev/r/icon-rocket.json",
        "https://www.youj.dev/r/progress.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/slider.json",
        "https://www.youj.dev/r/switch.json",
        "https://www.youj.dev/r/tabs.json",
        "https://www.youj.dev/r/textarea.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/use-visible.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/product-tour.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/product-tour.tsx"
        },
        {
          "path": "src/blocks/marketing/product-tour/beacon.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/product-tour/beacon.tsx"
        },
        {
          "path": "src/blocks/marketing/product-tour/data.ts",
          "type": "registry:component",
          "target": "blocks/marketing/product-tour/data.ts"
        },
        {
          "path": "src/blocks/marketing/product-tour/steps.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/product-tour/steps.tsx"
        }
      ]
    },
    {
      "name": "marketing-security",
      "type": "registry:block",
      "title": "Marketing Security",
      "description": "Answer a security review in one place: live status with a strip of daily uptime, certifications with a report on request, data residency with a map, the practices behind it and the policy documents.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "social-proof"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/dot-map.json",
        "https://www.youj.dev/r/history-strip.json",
        "https://www.youj.dev/r/icon-alert-triangle.json",
        "https://www.youj.dev/r/icon-arrow-up-right.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-check-circle.json",
        "https://www.youj.dev/r/icon-clock.json",
        "https://www.youj.dev/r/icon-external-link.json",
        "https://www.youj.dev/r/icon-eye.json",
        "https://www.youj.dev/r/icon-file-text.json",
        "https://www.youj.dev/r/icon-fingerprint.json",
        "https://www.youj.dev/r/icon-globe.json",
        "https://www.youj.dev/r/icon-key.json",
        "https://www.youj.dev/r/icon-lock.json",
        "https://www.youj.dev/r/icon-server.json",
        "https://www.youj.dev/r/icon-shield-check.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/security.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/security.tsx"
        },
        {
          "path": "src/blocks/marketing/security/certifications.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/security/certifications.tsx"
        },
        {
          "path": "src/blocks/marketing/security/data.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/security/data.tsx"
        },
        {
          "path": "src/blocks/marketing/security/policies.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/security/policies.tsx"
        },
        {
          "path": "src/blocks/marketing/security/residency.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/security/residency.tsx"
        },
        {
          "path": "src/blocks/marketing/security/status.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/security/status.tsx"
        }
      ]
    },
    {
      "name": "marketing-social-proof",
      "type": "registry:block",
      "title": "Marketing Social Proof",
      "description": "Show who else uses your product in one section: a rating summary, customer wordmarks on a hairline grid lit by the pointer with an industry filter, and the featured customer story as an editorial panel whose results roll up.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "social-proof"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/progress.json",
        "https://www.youj.dev/r/rating.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/spotlight.json",
        "https://www.youj.dev/r/tabs.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/use-mobile.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/social-proof.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/social-proof.tsx"
        },
        {
          "path": "src/blocks/marketing/social-proof/data.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/social-proof/data.tsx"
        },
        {
          "path": "src/blocks/marketing/social-proof/logo-wall.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/social-proof/logo-wall.tsx"
        },
        {
          "path": "src/blocks/marketing/social-proof/ratings.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/social-proof/ratings.tsx"
        },
        {
          "path": "src/blocks/marketing/social-proof/story-card.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/social-proof/story-card.tsx"
        }
      ]
    },
    {
      "name": "marketing-solutions",
      "type": "registry:block",
      "title": "Marketing Solutions",
      "description": "Speak to each buyer on one page: pick a role and an industry, and the pitch, a customer quote, the call to action, the live numbers and the activity feed all change to match.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "features"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-code.json",
        "https://www.youj.dev/r/icon-palette.json",
        "https://www.youj.dev/r/icon-quote.json",
        "https://www.youj.dev/r/icon-target.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/tabs.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/solutions.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/solutions.tsx"
        },
        {
          "path": "src/blocks/marketing/solutions/data.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/solutions/data.tsx"
        },
        {
          "path": "src/blocks/marketing/solutions/panel.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/solutions/panel.tsx"
        }
      ]
    },
    {
      "name": "marketing-team",
      "type": "registry:block",
      "title": "Marketing Team",
      "description": "Introduce the people behind the product: portraits that look designed even without a photo, each with their local time, a bio that rises over the portrait on hover, focus or a tap, and a team filter that re-flows the grid.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "company"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-moon.json",
        "https://www.youj.dev/r/icon-sun.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/use-mobile.json",
        "https://www.youj.dev/r/use-now.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/team.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/team.tsx"
        },
        {
          "path": "src/blocks/marketing/team/data.ts",
          "type": "registry:component",
          "target": "blocks/marketing/team/data.ts"
        },
        {
          "path": "src/blocks/marketing/team/person.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/team/person.tsx"
        }
      ]
    },
    {
      "name": "marketing-testimonial-wall",
      "type": "registry:block",
      "title": "Marketing Testimonial Wall",
      "description": "Let customers make the case in their own words: columns of quotes drifting past each other with no seam, a column that stops when pointed at while the others recede, one button to pause the whole wall, and the phrase that matters in each quote set in full ink.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "social-proof"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-play.json",
        "https://www.youj.dev/r/icon-star.json",
        "https://www.youj.dev/r/marquee.json",
        "https://www.youj.dev/r/rating.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/testimonial-wall.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/testimonial-wall.tsx"
        },
        {
          "path": "src/blocks/marketing/testimonial-wall/card.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/testimonial-wall/card.tsx"
        },
        {
          "path": "src/blocks/marketing/testimonial-wall/data.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/testimonial-wall/data.tsx"
        },
        {
          "path": "src/blocks/marketing/testimonial-wall/wall.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/testimonial-wall/wall.tsx"
        }
      ]
    },
    {
      "name": "marketing-theme-playground",
      "type": "registry:block",
      "title": "Marketing Theme Playground",
      "description": "Let visitors re-theme a small landing page live, with a preset, accent, corners, control size and style.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "features"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/color-picker.json",
        "https://www.youj.dev/r/icon-chart-spline.json",
        "https://www.youj.dev/r/icon-copy.json",
        "https://www.youj.dev/r/icon-layers.json",
        "https://www.youj.dev/r/icon-moon.json",
        "https://www.youj.dev/r/icon-rotate-ccw.json",
        "https://www.youj.dev/r/icon-shield.json",
        "https://www.youj.dev/r/icon-sparkles.json",
        "https://www.youj.dev/r/icon-sun.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/label.json",
        "https://www.youj.dev/r/progress.json",
        "https://www.youj.dev/r/radio-group.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/switch.json",
        "https://www.youj.dev/r/typography.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/theme-playground.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/theme-playground.tsx"
        },
        {
          "path": "src/blocks/marketing/theme-playground/controls.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/theme-playground/controls.tsx"
        },
        {
          "path": "src/blocks/marketing/theme-playground/data.ts",
          "type": "registry:component",
          "target": "blocks/marketing/theme-playground/data.ts"
        },
        {
          "path": "src/blocks/marketing/theme-playground/preview.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/theme-playground/preview.tsx"
        }
      ]
    },
    {
      "name": "marketing-waitlist",
      "type": "registry:block",
      "title": "Marketing Waitlist",
      "description": "Build interest before launch with a waitlist page, a countdown and a referral link.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "marketing-and-status"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/avatar-stack.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/content-swap.json",
        "https://www.youj.dev/r/countdown.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-aperture.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-copy.json",
        "https://www.youj.dev/r/icon-mail.json",
        "https://www.youj.dev/r/icon-share.json",
        "https://www.youj.dev/r/icon-sparkles.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/morph-label.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/text-split.json",
        "https://www.youj.dev/r/use-visible.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/waitlist.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/waitlist.tsx"
        },
        {
          "path": "src/blocks/marketing/waitlist/countdown.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/waitlist/countdown.tsx"
        },
        {
          "path": "src/blocks/marketing/waitlist/data.ts",
          "type": "registry:component",
          "target": "blocks/marketing/waitlist/data.ts"
        },
        {
          "path": "src/blocks/marketing/waitlist/place.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/waitlist/place.tsx"
        }
      ]
    },
    {
      "name": "marketing-whats-new",
      "type": "registry:block",
      "title": "Marketing Whats New",
      "description": "Show that the product keeps moving: the newest change as a feature card, earlier changes as a dated list with kind tags and expandable details, an area filter and a way to load more.",
      "meta": {
        "kind": "section",
        "level": "section",
        "category": "features"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/collapse.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-check-circle.json",
        "https://www.youj.dev/r/icon-chevron-down.json",
        "https://www.youj.dev/r/icon-history.json",
        "https://www.youj.dev/r/icon-rss.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/reveal.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/use-mobile.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/marketing/whats-new.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/whats-new.tsx"
        },
        {
          "path": "src/blocks/marketing/whats-new/data.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/whats-new/data.tsx"
        },
        {
          "path": "src/blocks/marketing/whats-new/media.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/whats-new/media.tsx"
        },
        {
          "path": "src/blocks/marketing/whats-new/rows.tsx",
          "type": "registry:component",
          "target": "blocks/marketing/whats-new/rows.tsx"
        }
      ]
    },
    {
      "name": "media-attachments",
      "type": "registry:block",
      "title": "Media Attachments",
      "description": "A reply box that takes files while you write: paste, drop or attach, each uploading with a ring as it goes; arrange them by dragging or with the keyboard; and Send waits for uploads still running instead of sending without them.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "media"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/dialog.json",
        "https://www.youj.dev/r/icon-alert-triangle.json",
        "https://www.youj.dev/r/icon-external-link.json",
        "https://www.youj.dev/r/icon-file.json",
        "https://www.youj.dev/r/icon-file-archive.json",
        "https://www.youj.dev/r/icon-file-audio.json",
        "https://www.youj.dev/r/icon-file-text.json",
        "https://www.youj.dev/r/icon-file-video.json",
        "https://www.youj.dev/r/icon-paperclip.json",
        "https://www.youj.dev/r/icon-refresh.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/kbd.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/media/attachments.tsx",
          "type": "registry:component",
          "target": "blocks/media/attachments.tsx"
        },
        {
          "path": "src/blocks/media/attachments/chip.tsx",
          "type": "registry:component",
          "target": "blocks/media/attachments/chip.tsx"
        },
        {
          "path": "src/blocks/media/attachments/chips.tsx",
          "type": "registry:component",
          "target": "blocks/media/attachments/chips.tsx"
        },
        {
          "path": "src/blocks/media/attachments/data.ts",
          "type": "registry:component",
          "target": "blocks/media/attachments/data.ts"
        },
        {
          "path": "src/blocks/media/attachments/preview.tsx",
          "type": "registry:component",
          "target": "blocks/media/attachments/preview.tsx"
        },
        {
          "path": "src/blocks/media/attachments/use-attachments.ts",
          "type": "registry:component",
          "target": "blocks/media/attachments/use-attachments.ts"
        }
      ]
    },
    {
      "name": "media-dropzone",
      "type": "registry:block",
      "title": "Media Dropzone",
      "description": "A drop zone that takes files every way people have them: dropped or picked whole folders (read recursively, system files left out), pasted screenshots, and plain picks from the keyboard.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "media"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/collapse.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-file.json",
        "https://www.youj.dev/r/icon-file-archive.json",
        "https://www.youj.dev/r/icon-file-audio.json",
        "https://www.youj.dev/r/icon-file-image.json",
        "https://www.youj.dev/r/icon-file-text.json",
        "https://www.youj.dev/r/icon-file-video.json",
        "https://www.youj.dev/r/icon-folder-open.json",
        "https://www.youj.dev/r/icon-play.json",
        "https://www.youj.dev/r/icon-refresh.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/progress.json",
        "https://www.youj.dev/r/spinner.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/media/dropzone.tsx",
          "type": "registry:component",
          "target": "blocks/media/dropzone.tsx"
        },
        {
          "path": "src/blocks/media/dropzone/data.ts",
          "type": "registry:component",
          "target": "blocks/media/dropzone/data.ts"
        },
        {
          "path": "src/blocks/media/dropzone/file-row.tsx",
          "type": "registry:component",
          "target": "blocks/media/dropzone/file-row.tsx"
        },
        {
          "path": "src/blocks/media/dropzone/intake.ts",
          "type": "registry:component",
          "target": "blocks/media/dropzone/intake.ts"
        },
        {
          "path": "src/blocks/media/dropzone/preview.ts",
          "type": "registry:component",
          "target": "blocks/media/dropzone/preview.ts"
        },
        {
          "path": "src/blocks/media/dropzone/refusals.tsx",
          "type": "registry:component",
          "target": "blocks/media/dropzone/refusals.tsx"
        },
        {
          "path": "src/blocks/media/dropzone/use-drag.ts",
          "type": "registry:component",
          "target": "blocks/media/dropzone/use-drag.ts"
        },
        {
          "path": "src/blocks/media/dropzone/use-files.ts",
          "type": "registry:component",
          "target": "blocks/media/dropzone/use-files.ts"
        },
        {
          "path": "src/blocks/media/dropzone/zone.tsx",
          "type": "registry:component",
          "target": "blocks/media/dropzone/zone.tsx"
        }
      ]
    },
    {
      "name": "media-image-editor",
      "type": "registry:block",
      "title": "Media Image Editor",
      "description": "An image field that shows exactly how the picture will look everywhere it appears: move, zoom, turn, straighten and flip it under a fixed frame, mark its focal point, and watch live previews of every size it’s shown at.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "media"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-flip-horizontal.json",
        "https://www.youj.dev/r/icon-flip-vertical.json",
        "https://www.youj.dev/r/icon-image-plus.json",
        "https://www.youj.dev/r/icon-rotate-ccw.json",
        "https://www.youj.dev/r/icon-rotate-cw.json",
        "https://www.youj.dev/r/icon-zoom-in.json",
        "https://www.youj.dev/r/icon-zoom-out.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/slider.json",
        "https://www.youj.dev/r/spinner.json",
        "https://www.youj.dev/r/textarea.json",
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/media/image-editor.tsx",
          "type": "registry:component",
          "target": "blocks/media/image-editor.tsx"
        },
        {
          "path": "src/blocks/media/image-editor/alt-text.tsx",
          "type": "registry:component",
          "target": "blocks/media/image-editor/alt-text.tsx"
        },
        {
          "path": "src/blocks/media/image-editor/controls.tsx",
          "type": "registry:component",
          "target": "blocks/media/image-editor/controls.tsx"
        },
        {
          "path": "src/blocks/media/image-editor/data.ts",
          "type": "registry:component",
          "target": "blocks/media/image-editor/data.ts"
        },
        {
          "path": "src/blocks/media/image-editor/empty.tsx",
          "type": "registry:component",
          "target": "blocks/media/image-editor/empty.tsx"
        },
        {
          "path": "src/blocks/media/image-editor/frame-marks.tsx",
          "type": "registry:component",
          "target": "blocks/media/image-editor/frame-marks.tsx"
        },
        {
          "path": "src/blocks/media/image-editor/geometry.ts",
          "type": "registry:component",
          "target": "blocks/media/image-editor/geometry.ts"
        },
        {
          "path": "src/blocks/media/image-editor/previews.tsx",
          "type": "registry:component",
          "target": "blocks/media/image-editor/previews.tsx"
        },
        {
          "path": "src/blocks/media/image-editor/save.ts",
          "type": "registry:component",
          "target": "blocks/media/image-editor/save.ts"
        },
        {
          "path": "src/blocks/media/image-editor/stage.tsx",
          "type": "registry:component",
          "target": "blocks/media/image-editor/stage.tsx"
        },
        {
          "path": "src/blocks/media/image-editor/use-live.ts",
          "type": "registry:component",
          "target": "blocks/media/image-editor/use-live.ts"
        },
        {
          "path": "src/blocks/media/image-editor/use-source.ts",
          "type": "registry:component",
          "target": "blocks/media/image-editor/use-source.ts"
        }
      ]
    },
    {
      "name": "media-library",
      "type": "registry:block",
      "title": "Media Library",
      "description": "A media picker that’s as quick from the keyboard as with a mouse: search, filter, folders, grid or list, an ordered selection with a maximum, a lightbox that grows from its tile, and uploads dropped straight into the open folder.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "media"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/breadcrumb.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/collapse.json",
        "https://www.youj.dev/r/dialog.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-chevron-left.json",
        "https://www.youj.dev/r/icon-chevron-right.json",
        "https://www.youj.dev/r/icon-folder.json",
        "https://www.youj.dev/r/icon-image.json",
        "https://www.youj.dev/r/icon-layout-grid.json",
        "https://www.youj.dev/r/icon-layout-list.json",
        "https://www.youj.dev/r/icon-maximize.json",
        "https://www.youj.dev/r/icon-play.json",
        "https://www.youj.dev/r/icon-search.json",
        "https://www.youj.dev/r/icon-search-x.json",
        "https://www.youj.dev/r/icon-upload.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/toggle-group.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/media/library.tsx",
          "type": "registry:component",
          "target": "blocks/media/library.tsx"
        },
        {
          "path": "src/blocks/media/library/art.tsx",
          "type": "registry:component",
          "target": "blocks/media/library/art.tsx"
        },
        {
          "path": "src/blocks/media/library/data.ts",
          "type": "registry:component",
          "target": "blocks/media/library/data.ts"
        },
        {
          "path": "src/blocks/media/library/grid.tsx",
          "type": "registry:component",
          "target": "blocks/media/library/grid.tsx"
        },
        {
          "path": "src/blocks/media/library/lightbox.tsx",
          "type": "registry:component",
          "target": "blocks/media/library/lightbox.tsx"
        },
        {
          "path": "src/blocks/media/library/tile.tsx",
          "type": "registry:component",
          "target": "blocks/media/library/tile.tsx"
        },
        {
          "path": "src/blocks/media/library/toolbar.tsx",
          "type": "registry:component",
          "target": "blocks/media/library/toolbar.tsx"
        },
        {
          "path": "src/blocks/media/library/use-library.ts",
          "type": "registry:component",
          "target": "blocks/media/library/use-library.ts"
        }
      ]
    },
    {
      "name": "media-upload-tray",
      "type": "registry:block",
      "title": "Media Upload Tray",
      "description": "Uploads that keep going while people keep working: drop files anywhere on the page, and a tray in the corner runs the queue a few at a time, pauses and resumes each from where it got to, retries with a countdown, waits out a lost connection, and gives an honest time left.",
      "meta": {
        "kind": "overlay",
        "level": "card",
        "category": "media"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/alert-dialog.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/collapse.json",
        "https://www.youj.dev/r/icon-alert-triangle.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-chevron-down.json",
        "https://www.youj.dev/r/icon-cloud-upload.json",
        "https://www.youj.dev/r/icon-file.json",
        "https://www.youj.dev/r/icon-file-archive.json",
        "https://www.youj.dev/r/icon-file-audio.json",
        "https://www.youj.dev/r/icon-file-image.json",
        "https://www.youj.dev/r/icon-file-text.json",
        "https://www.youj.dev/r/icon-file-video.json",
        "https://www.youj.dev/r/icon-play.json",
        "https://www.youj.dev/r/icon-refresh.json",
        "https://www.youj.dev/r/icon-wifi-off.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-controllable-state.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/media/upload-tray.tsx",
          "type": "registry:component",
          "target": "blocks/media/upload-tray.tsx"
        },
        {
          "path": "src/blocks/media/upload-tray/data.ts",
          "type": "registry:component",
          "target": "blocks/media/upload-tray/data.ts"
        },
        {
          "path": "src/blocks/media/upload-tray/drop-overlay.tsx",
          "type": "registry:component",
          "target": "blocks/media/upload-tray/drop-overlay.tsx"
        },
        {
          "path": "src/blocks/media/upload-tray/files.ts",
          "type": "registry:component",
          "target": "blocks/media/upload-tray/files.ts"
        },
        {
          "path": "src/blocks/media/upload-tray/row.tsx",
          "type": "registry:component",
          "target": "blocks/media/upload-tray/row.tsx"
        },
        {
          "path": "src/blocks/media/upload-tray/tray.tsx",
          "type": "registry:component",
          "target": "blocks/media/upload-tray/tray.tsx"
        },
        {
          "path": "src/blocks/media/upload-tray/use-queue.ts",
          "type": "registry:component",
          "target": "blocks/media/upload-tray/use-queue.ts"
        }
      ]
    },
    {
      "name": "surveys-builder",
      "type": "registry:block",
      "title": "Surveys Builder",
      "description": "Build a survey and put it in front of people: an outline you reorder by drag or keyboard, fourteen kinds of question, editing in place with show-if logic, a live preview on a phone or a desktop, design, undo and autosave, a test run in any layout, and Publish to a link, an embed or in-app, with a schedule and a share card.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "surveys"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/dialog.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-align-left.json",
        "https://www.youj.dev/r/icon-arrow-down.json",
        "https://www.youj.dev/r/icon-arrow-left.json",
        "https://www.youj.dev/r/icon-arrow-up.json",
        "https://www.youj.dev/r/icon-at-sign.json",
        "https://www.youj.dev/r/icon-calendar.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-chevron-left.json",
        "https://www.youj.dev/r/icon-circle-alert.json",
        "https://www.youj.dev/r/icon-circle-dot.json",
        "https://www.youj.dev/r/icon-cloud-off.json",
        "https://www.youj.dev/r/icon-code.json",
        "https://www.youj.dev/r/icon-copy.json",
        "https://www.youj.dev/r/icon-copy-plus.json",
        "https://www.youj.dev/r/icon-external-link.json",
        "https://www.youj.dev/r/icon-flag.json",
        "https://www.youj.dev/r/icon-gauge.json",
        "https://www.youj.dev/r/icon-git-branch.json",
        "https://www.youj.dev/r/icon-hash.json",
        "https://www.youj.dev/r/icon-layout-grid.json",
        "https://www.youj.dev/r/icon-link.json",
        "https://www.youj.dev/r/icon-list-ordered.json",
        "https://www.youj.dev/r/icon-monitor.json",
        "https://www.youj.dev/r/icon-more-horizontal.json",
        "https://www.youj.dev/r/icon-palette.json",
        "https://www.youj.dev/r/icon-panel-bottom.json",
        "https://www.youj.dev/r/icon-play.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/icon-redo.json",
        "https://www.youj.dev/r/icon-rocket.json",
        "https://www.youj.dev/r/icon-sliders.json",
        "https://www.youj.dev/r/icon-smartphone.json",
        "https://www.youj.dev/r/icon-smile.json",
        "https://www.youj.dev/r/icon-square-check.json",
        "https://www.youj.dev/r/icon-star.json",
        "https://www.youj.dev/r/icon-thumbs-up.json",
        "https://www.youj.dev/r/icon-trash.json",
        "https://www.youj.dev/r/icon-type.json",
        "https://www.youj.dev/r/icon-undo.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/kbd.json",
        "https://www.youj.dev/r/morph-label.json",
        "https://www.youj.dev/r/number-input.json",
        "https://www.youj.dev/r/popover.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/progress.json",
        "https://www.youj.dev/r/radio-group.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/slider.json",
        "https://www.youj.dev/r/sortable-list.json",
        "https://www.youj.dev/r/spinner.json",
        "https://www.youj.dev/r/surveys-conversational.json",
        "https://www.youj.dev/r/surveys-deck.json",
        "https://www.youj.dev/r/surveys-form.json",
        "https://www.youj.dev/r/surveys-question.json",
        "https://www.youj.dev/r/switch.json",
        "https://www.youj.dev/r/textarea.json",
        "https://www.youj.dev/r/toast.json",
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/surveys/builder.tsx",
          "type": "registry:component",
          "target": "blocks/surveys/builder.tsx"
        },
        {
          "path": "src/blocks/surveys/builder/answers.tsx",
          "type": "registry:component",
          "target": "blocks/surveys/builder/answers.tsx"
        },
        {
          "path": "src/blocks/surveys/builder/data.ts",
          "type": "registry:component",
          "target": "blocks/surveys/builder/data.ts"
        },
        {
          "path": "src/blocks/surveys/builder/design.tsx",
          "type": "registry:component",
          "target": "blocks/surveys/builder/design.tsx"
        },
        {
          "path": "src/blocks/surveys/builder/editor.tsx",
          "type": "registry:component",
          "target": "blocks/surveys/builder/editor.tsx"
        },
        {
          "path": "src/blocks/surveys/builder/fields.tsx",
          "type": "registry:component",
          "target": "blocks/surveys/builder/fields.tsx"
        },
        {
          "path": "src/blocks/surveys/builder/live.tsx",
          "type": "registry:component",
          "target": "blocks/surveys/builder/live.tsx"
        },
        {
          "path": "src/blocks/surveys/builder/logic.tsx",
          "type": "registry:component",
          "target": "blocks/surveys/builder/logic.tsx"
        },
        {
          "path": "src/blocks/surveys/builder/options.tsx",
          "type": "registry:component",
          "target": "blocks/surveys/builder/options.tsx"
        },
        {
          "path": "src/blocks/surveys/builder/outline.tsx",
          "type": "registry:component",
          "target": "blocks/surveys/builder/outline.tsx"
        },
        {
          "path": "src/blocks/surveys/builder/preview.tsx",
          "type": "registry:component",
          "target": "blocks/surveys/builder/preview.tsx"
        },
        {
          "path": "src/blocks/surveys/builder/publish-where.tsx",
          "type": "registry:component",
          "target": "blocks/surveys/builder/publish-where.tsx"
        },
        {
          "path": "src/blocks/surveys/builder/publish.tsx",
          "type": "registry:component",
          "target": "blocks/surveys/builder/publish.tsx"
        },
        {
          "path": "src/blocks/surveys/builder/qr-art.tsx",
          "type": "registry:component",
          "target": "blocks/surveys/builder/qr-art.tsx"
        },
        {
          "path": "src/blocks/surveys/builder/test-run.tsx",
          "type": "registry:component",
          "target": "blocks/surveys/builder/test-run.tsx"
        },
        {
          "path": "src/blocks/surveys/builder/top-bar.tsx",
          "type": "registry:component",
          "target": "blocks/surveys/builder/top-bar.tsx"
        },
        {
          "path": "src/blocks/surveys/builder/use-builder.ts",
          "type": "registry:component",
          "target": "blocks/surveys/builder/use-builder.ts"
        }
      ]
    },
    {
      "name": "surveys-conversational",
      "type": "registry:block",
      "title": "Surveys Conversational",
      "description": "A survey asked one question at a time, keyboard first: letters pick choices, digits pick a point on a scale, Enter goes on.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "surveys"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/icon-arrow-left.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-chevron-down.json",
        "https://www.youj.dev/r/icon-chevron-up.json",
        "https://www.youj.dev/r/icon-clock.json",
        "https://www.youj.dev/r/icon-corner-down-left.json",
        "https://www.youj.dev/r/kbd.json",
        "https://www.youj.dev/r/progress.json",
        "https://www.youj.dev/r/surveys-question.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/surveys/conversational.tsx",
          "type": "registry:component",
          "target": "blocks/surveys/conversational.tsx"
        },
        {
          "path": "src/blocks/surveys/conversational/parts.tsx",
          "type": "registry:component",
          "target": "blocks/surveys/conversational/parts.tsx"
        }
      ]
    },
    {
      "name": "surveys-deck",
      "type": "registry:block",
      "title": "Surveys Deck",
      "description": "A survey for the phone in your hand: a deck of question cards with answers as large as a thumb, thrown aside to go on or back (or moved with the two buttons where the thumb rests), progress in segments along the top, and the cards still ahead peeking out below.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "surveys"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/icon-arrow-left.json",
        "https://www.youj.dev/r/icon-arrow-right.json",
        "https://www.youj.dev/r/icon-clock.json",
        "https://www.youj.dev/r/surveys-conversational.json",
        "https://www.youj.dev/r/surveys-question.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/surveys/deck.tsx",
          "type": "registry:component",
          "target": "blocks/surveys/deck.tsx"
        },
        {
          "path": "src/blocks/surveys/deck/stack.tsx",
          "type": "registry:component",
          "target": "blocks/surveys/deck/stack.tsx"
        }
      ]
    },
    {
      "name": "surveys-form",
      "type": "registry:block",
      "title": "Surveys Form",
      "description": "A survey on one page: every question numbered in one column, logic revealing and hiding questions in place, progress counting what’s answered, and a send that gathers every problem in a summary linked to each question.",
      "meta": {
        "kind": "screen",
        "level": "screen",
        "category": "surveys"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/progress.json",
        "https://www.youj.dev/r/surveys-conversational.json",
        "https://www.youj.dev/r/surveys-question.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/surveys/form.tsx",
          "type": "registry:component",
          "target": "blocks/surveys/form.tsx"
        },
        {
          "path": "src/blocks/surveys/form/summary.tsx",
          "type": "registry:component",
          "target": "blocks/surveys/form/summary.tsx"
        }
      ]
    },
    {
      "name": "surveys-question",
      "type": "registry:block",
      "title": "Surveys Question",
      "description": "One question anywhere in your app, in any type the survey builder offers: a rating under an article, a poll, a check-in after a chat.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "forms-and-inputs"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/checkbox.json",
        "https://www.youj.dev/r/collapse.json",
        "https://www.youj.dev/r/date-picker.json",
        "https://www.youj.dev/r/field.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-thumbs-down.json",
        "https://www.youj.dev/r/icon-thumbs-up.json",
        "https://www.youj.dev/r/input.json",
        "https://www.youj.dev/r/kbd.json",
        "https://www.youj.dev/r/radio-group.json",
        "https://www.youj.dev/r/rating.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/slider.json",
        "https://www.youj.dev/r/sortable-list.json",
        "https://www.youj.dev/r/textarea.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/surveys/question.tsx",
          "type": "registry:component",
          "target": "blocks/surveys/question.tsx"
        },
        {
          "path": "src/blocks/surveys/question/choice.tsx",
          "type": "registry:component",
          "target": "blocks/surveys/question/choice.tsx"
        },
        {
          "path": "src/blocks/surveys/question/data.ts",
          "type": "registry:component",
          "target": "blocks/surveys/question/data.ts"
        },
        {
          "path": "src/blocks/surveys/question/faces.tsx",
          "type": "registry:component",
          "target": "blocks/surveys/question/faces.tsx"
        },
        {
          "path": "src/blocks/surveys/question/flow.ts",
          "type": "registry:component",
          "target": "blocks/surveys/question/flow.ts"
        },
        {
          "path": "src/blocks/surveys/question/inputs.tsx",
          "type": "registry:component",
          "target": "blocks/surveys/question/inputs.tsx"
        },
        {
          "path": "src/blocks/surveys/question/matrix.tsx",
          "type": "registry:component",
          "target": "blocks/surveys/question/matrix.tsx"
        },
        {
          "path": "src/blocks/surveys/question/ranking.tsx",
          "type": "registry:component",
          "target": "blocks/surveys/question/ranking.tsx"
        },
        {
          "path": "src/blocks/surveys/question/review.tsx",
          "type": "registry:component",
          "target": "blocks/surveys/question/review.tsx"
        },
        {
          "path": "src/blocks/surveys/question/scales.tsx",
          "type": "registry:component",
          "target": "blocks/surveys/question/scales.tsx"
        },
        {
          "path": "src/blocks/surveys/question/shared.ts",
          "type": "registry:component",
          "target": "blocks/surveys/question/shared.ts"
        },
        {
          "path": "src/blocks/surveys/question/stage.tsx",
          "type": "registry:component",
          "target": "blocks/surveys/question/stage.tsx"
        },
        {
          "path": "src/blocks/surveys/question/view.tsx",
          "type": "registry:component",
          "target": "blocks/surveys/question/view.tsx"
        }
      ]
    },
    {
      "name": "surveys-results",
      "type": "registry:block",
      "title": "Surveys Results",
      "description": "What a survey heard: responses, completion and the median time, then any question’s answers in the shape its type calls for, NPS first with its split of detractors, passives and promoters.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "forms-and-inputs"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/counter.json",
        "https://www.youj.dev/r/empty.json",
        "https://www.youj.dev/r/select.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/surveys-question.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/surveys/results.tsx",
          "type": "registry:component",
          "target": "blocks/surveys/results.tsx"
        },
        {
          "path": "src/blocks/surveys/results/data.ts",
          "type": "registry:component",
          "target": "blocks/surveys/results/data.ts"
        },
        {
          "path": "src/blocks/surveys/results/summary.tsx",
          "type": "registry:component",
          "target": "blocks/surveys/results/summary.tsx"
        }
      ]
    },
    {
      "name": "surveys-widget",
      "type": "registry:block",
      "title": "Surveys Widget",
      "description": "A short survey in a corner of your product: it rises in without taking focus, asks one question at a time and keeps one size while it does, folds into a pill and back, and sits along the bottom edge on a phone.",
      "meta": {
        "kind": "overlay",
        "level": "card",
        "category": "forms-and-inputs"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/card.json",
        "https://www.youj.dev/r/icon-arrow-left.json",
        "https://www.youj.dev/r/icon-chevron-down.json",
        "https://www.youj.dev/r/icon-chevron-up.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/progress.json",
        "https://www.youj.dev/r/surveys-question.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/surveys/widget.tsx",
          "type": "registry:component",
          "target": "blocks/surveys/widget.tsx"
        },
        {
          "path": "src/blocks/surveys/widget/copy.ts",
          "type": "registry:component",
          "target": "blocks/surveys/widget/copy.ts"
        },
        {
          "path": "src/blocks/surveys/widget/panel.tsx",
          "type": "registry:component",
          "target": "blocks/surveys/widget/panel.tsx"
        }
      ]
    },
    {
      "name": "tables-bulk-actions",
      "type": "registry:block",
      "title": "Tables Bulk Actions",
      "description": "Work through rows in bulk: filter by either status, channel, date or amount, select a few, and a command bar runs the actions you define (the demo fulfills, prints, marks paid, refunds after a confirmation that names the count, archives or exports), each with its own key and every action in a menu you can search.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "tables-and-lists"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/command.json",
        "https://www.youj.dev/r/data-table.json",
        "https://www.youj.dev/r/icon-archive.json",
        "https://www.youj.dev/r/icon-arrow-up-right.json",
        "https://www.youj.dev/r/icon-check-circle.json",
        "https://www.youj.dev/r/icon-circle-alert.json",
        "https://www.youj.dev/r/icon-circle-dashed.json",
        "https://www.youj.dev/r/icon-circle-x.json",
        "https://www.youj.dev/r/icon-clock.json",
        "https://www.youj.dev/r/icon-command.json",
        "https://www.youj.dev/r/icon-download.json",
        "https://www.youj.dev/r/icon-globe.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/icon-printer.json",
        "https://www.youj.dev/r/icon-rotate-ccw.json",
        "https://www.youj.dev/r/icon-smartphone.json",
        "https://www.youj.dev/r/icon-store.json",
        "https://www.youj.dev/r/icon-truck.json",
        "https://www.youj.dev/r/kbd.json",
        "https://www.youj.dev/r/popover.json",
        "https://www.youj.dev/r/tables-data-table.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/tables/bulk-actions.tsx",
          "type": "registry:component",
          "target": "blocks/tables/bulk-actions.tsx"
        },
        {
          "path": "src/blocks/tables/bulk-actions/columns.tsx",
          "type": "registry:component",
          "target": "blocks/tables/bulk-actions/columns.tsx"
        },
        {
          "path": "src/blocks/tables/bulk-actions/command-bar.tsx",
          "type": "registry:component",
          "target": "blocks/tables/bulk-actions/command-bar.tsx"
        },
        {
          "path": "src/blocks/tables/bulk-actions/data.ts",
          "type": "registry:component",
          "target": "blocks/tables/bulk-actions/data.ts"
        }
      ]
    },
    {
      "name": "tables-data-grid",
      "type": "registry:block",
      "title": "Tables Data Grid",
      "description": "The complete records grid, for records with a face and a pulse: a rich cell for every kind of value (an identity with its logo, a status, tags, a meter, a trend line, money in tabular mono, relative dates, people as avatars, a switch, a copyable id, a link), views as tabs, filters as chips, grouping with totals, detail panels under rows and cards on a narrow screen.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "tables-and-lists"
      },
      "dependencies": [
        "@tanstack/react-table@^9.2.4",
        "@tanstack/react-virtual@^3.14.13",
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/avatar.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/checkbox.json",
        "https://www.youj.dev/r/collapse.json",
        "https://www.youj.dev/r/command.json",
        "https://www.youj.dev/r/content-swap.json",
        "https://www.youj.dev/r/data-table.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/icon-archive.json",
        "https://www.youj.dev/r/icon-arrow-down.json",
        "https://www.youj.dev/r/icon-arrow-up.json",
        "https://www.youj.dev/r/icon-arrow-up-right.json",
        "https://www.youj.dev/r/icon-check.json",
        "https://www.youj.dev/r/icon-check-circle.json",
        "https://www.youj.dev/r/icon-chevron-left.json",
        "https://www.youj.dev/r/icon-chevron-right.json",
        "https://www.youj.dev/r/icon-circle-alert.json",
        "https://www.youj.dev/r/icon-columns.json",
        "https://www.youj.dev/r/icon-copy.json",
        "https://www.youj.dev/r/icon-external-link.json",
        "https://www.youj.dev/r/icon-filter.json",
        "https://www.youj.dev/r/icon-inbox.json",
        "https://www.youj.dev/r/icon-layers.json",
        "https://www.youj.dev/r/icon-link.json",
        "https://www.youj.dev/r/icon-minus.json",
        "https://www.youj.dev/r/icon-more-horizontal.json",
        "https://www.youj.dev/r/icon-rotate-ccw.json",
        "https://www.youj.dev/r/icon-rotate-cw.json",
        "https://www.youj.dev/r/icon-search.json",
        "https://www.youj.dev/r/icon-search-x.json",
        "https://www.youj.dev/r/icon-sort.json",
        "https://www.youj.dev/r/icon-trending-down.json",
        "https://www.youj.dev/r/icon-trending-up.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/kbd.json",
        "https://www.youj.dev/r/pagination.json",
        "https://www.youj.dev/r/popover.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/sliding-indicator.json",
        "https://www.youj.dev/r/sortable-list.json",
        "https://www.youj.dev/r/switch.json",
        "https://www.youj.dev/r/tabs.json",
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/use-now.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/tables/data-grid.tsx",
          "type": "registry:component",
          "target": "blocks/tables/data-grid.tsx"
        },
        {
          "path": "src/blocks/tables/data-grid/announce.ts",
          "type": "registry:component",
          "target": "blocks/tables/data-grid/announce.ts"
        },
        {
          "path": "src/blocks/tables/data-grid/body.tsx",
          "type": "registry:component",
          "target": "blocks/tables/data-grid/body.tsx"
        },
        {
          "path": "src/blocks/tables/data-grid/cards.tsx",
          "type": "registry:component",
          "target": "blocks/tables/data-grid/cards.tsx"
        },
        {
          "path": "src/blocks/tables/data-grid/cells.tsx",
          "type": "registry:component",
          "target": "blocks/tables/data-grid/cells.tsx"
        },
        {
          "path": "src/blocks/tables/data-grid/column-kit.ts",
          "type": "registry:component",
          "target": "blocks/tables/data-grid/column-kit.ts"
        },
        {
          "path": "src/blocks/tables/data-grid/columns.tsx",
          "type": "registry:component",
          "target": "blocks/tables/data-grid/columns.tsx"
        },
        {
          "path": "src/blocks/tables/data-grid/controls.tsx",
          "type": "registry:component",
          "target": "blocks/tables/data-grid/controls.tsx"
        },
        {
          "path": "src/blocks/tables/data-grid/copy.ts",
          "type": "registry:component",
          "target": "blocks/tables/data-grid/copy.ts"
        },
        {
          "path": "src/blocks/tables/data-grid/demo.tsx",
          "type": "registry:component",
          "target": "blocks/tables/data-grid/demo.tsx"
        },
        {
          "path": "src/blocks/tables/data-grid/figure-columns.tsx",
          "type": "registry:component",
          "target": "blocks/tables/data-grid/figure-columns.tsx"
        },
        {
          "path": "src/blocks/tables/data-grid/figures.tsx",
          "type": "registry:component",
          "target": "blocks/tables/data-grid/figures.tsx"
        },
        {
          "path": "src/blocks/tables/data-grid/filters.tsx",
          "type": "registry:component",
          "target": "blocks/tables/data-grid/filters.tsx"
        },
        {
          "path": "src/blocks/tables/data-grid/format.ts",
          "type": "registry:component",
          "target": "blocks/tables/data-grid/format.ts"
        },
        {
          "path": "src/blocks/tables/data-grid/frame.tsx",
          "type": "registry:component",
          "target": "blocks/tables/data-grid/frame.tsx"
        },
        {
          "path": "src/blocks/tables/data-grid/head.tsx",
          "type": "registry:component",
          "target": "blocks/tables/data-grid/head.tsx"
        },
        {
          "path": "src/blocks/tables/data-grid/items.tsx",
          "type": "registry:component",
          "target": "blocks/tables/data-grid/items.tsx"
        },
        {
          "path": "src/blocks/tables/data-grid/layout.tsx",
          "type": "registry:component",
          "target": "blocks/tables/data-grid/layout.tsx"
        },
        {
          "path": "src/blocks/tables/data-grid/lines.tsx",
          "type": "registry:component",
          "target": "blocks/tables/data-grid/lines.tsx"
        },
        {
          "path": "src/blocks/tables/data-grid/menus.tsx",
          "type": "registry:component",
          "target": "blocks/tables/data-grid/menus.tsx"
        },
        {
          "path": "src/blocks/tables/data-grid/model.ts",
          "type": "registry:component",
          "target": "blocks/tables/data-grid/model.ts"
        },
        {
          "path": "src/blocks/tables/data-grid/nav.ts",
          "type": "registry:component",
          "target": "blocks/tables/data-grid/nav.ts"
        },
        {
          "path": "src/blocks/tables/data-grid/parts.tsx",
          "type": "registry:component",
          "target": "blocks/tables/data-grid/parts.tsx"
        },
        {
          "path": "src/blocks/tables/data-grid/props.ts",
          "type": "registry:component",
          "target": "blocks/tables/data-grid/props.ts"
        },
        {
          "path": "src/blocks/tables/data-grid/record-columns.tsx",
          "type": "registry:component",
          "target": "blocks/tables/data-grid/record-columns.tsx"
        },
        {
          "path": "src/blocks/tables/data-grid/row-actions.tsx",
          "type": "registry:component",
          "target": "blocks/tables/data-grid/row-actions.tsx"
        },
        {
          "path": "src/blocks/tables/data-grid/selection.ts",
          "type": "registry:component",
          "target": "blocks/tables/data-grid/selection.ts"
        },
        {
          "path": "src/blocks/tables/data-grid/skeleton.tsx",
          "type": "registry:component",
          "target": "blocks/tables/data-grid/skeleton.tsx"
        },
        {
          "path": "src/blocks/tables/data-grid/sort-indicator.tsx",
          "type": "registry:component",
          "target": "blocks/tables/data-grid/sort-indicator.tsx"
        },
        {
          "path": "src/blocks/tables/data-grid/state.ts",
          "type": "registry:component",
          "target": "blocks/tables/data-grid/state.ts"
        },
        {
          "path": "src/blocks/tables/data-grid/toolbar.tsx",
          "type": "registry:component",
          "target": "blocks/tables/data-grid/toolbar.tsx"
        },
        {
          "path": "src/blocks/tables/data-grid/use-grid.ts",
          "type": "registry:component",
          "target": "blocks/tables/data-grid/use-grid.ts"
        },
        {
          "path": "src/blocks/tables/data-grid/values.tsx",
          "type": "registry:component",
          "target": "blocks/tables/data-grid/values.tsx"
        },
        {
          "path": "src/blocks/tables/data-grid/virtual.tsx",
          "type": "registry:component",
          "target": "blocks/tables/data-grid/virtual.tsx"
        }
      ]
    },
    {
      "name": "tables-data-table",
      "type": "registry:block",
      "title": "Tables Data Table",
      "description": "The complete dense table, for records people scan, compare and manage: your columns and rows with search, filters as chips, saved views, selection with bulk actions, inline editing, CSV export, server mode and virtualization.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "tables-and-lists"
      },
      "dependencies": [
        "@tanstack/react-table@^9.2.4",
        "@tanstack/react-virtual@^3.14.13",
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/checkbox.json",
        "https://www.youj.dev/r/content-swap.json",
        "https://www.youj.dev/r/data-table.json",
        "https://www.youj.dev/r/icon-check-circle.json",
        "https://www.youj.dev/r/icon-circle-alert.json",
        "https://www.youj.dev/r/icon-circle-dashed.json",
        "https://www.youj.dev/r/icon-circle-x.json",
        "https://www.youj.dev/r/icon-copy.json",
        "https://www.youj.dev/r/icon-download.json",
        "https://www.youj.dev/r/icon-external-link.json",
        "https://www.youj.dev/r/icon-inbox.json",
        "https://www.youj.dev/r/icon-loader-ring.json",
        "https://www.youj.dev/r/icon-rotate-ccw.json",
        "https://www.youj.dev/r/icon-rotate-cw.json",
        "https://www.youj.dev/r/icon-search-x.json",
        "https://www.youj.dev/r/icon-trash.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-labels.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/tables/data-table.tsx",
          "type": "registry:component",
          "target": "blocks/tables/data-table.tsx"
        },
        {
          "path": "src/blocks/tables/data-table/announce.ts",
          "type": "registry:component",
          "target": "blocks/tables/data-table/announce.ts"
        },
        {
          "path": "src/blocks/tables/data-table/body.tsx",
          "type": "registry:component",
          "target": "blocks/tables/data-table/body.tsx"
        },
        {
          "path": "src/blocks/tables/data-table/copy.ts",
          "type": "registry:component",
          "target": "blocks/tables/data-table/copy.ts"
        },
        {
          "path": "src/blocks/tables/data-table/demo.tsx",
          "type": "registry:component",
          "target": "blocks/tables/data-table/demo.tsx"
        },
        {
          "path": "src/blocks/tables/data-table/editing.ts",
          "type": "registry:component",
          "target": "blocks/tables/data-table/editing.ts"
        },
        {
          "path": "src/blocks/tables/data-table/foot.tsx",
          "type": "registry:component",
          "target": "blocks/tables/data-table/foot.tsx"
        },
        {
          "path": "src/blocks/tables/data-table/frame.tsx",
          "type": "registry:component",
          "target": "blocks/tables/data-table/frame.tsx"
        },
        {
          "path": "src/blocks/tables/data-table/head.tsx",
          "type": "registry:component",
          "target": "blocks/tables/data-table/head.tsx"
        },
        {
          "path": "src/blocks/tables/data-table/keyboard.ts",
          "type": "registry:component",
          "target": "blocks/tables/data-table/keyboard.ts"
        },
        {
          "path": "src/blocks/tables/data-table/layout.tsx",
          "type": "registry:component",
          "target": "blocks/tables/data-table/layout.tsx"
        },
        {
          "path": "src/blocks/tables/data-table/model.ts",
          "type": "registry:component",
          "target": "blocks/tables/data-table/model.ts"
        },
        {
          "path": "src/blocks/tables/data-table/props.ts",
          "type": "registry:component",
          "target": "blocks/tables/data-table/props.ts"
        },
        {
          "path": "src/blocks/tables/data-table/selection.ts",
          "type": "registry:component",
          "target": "blocks/tables/data-table/selection.ts"
        },
        {
          "path": "src/blocks/tables/data-table/skeleton.tsx",
          "type": "registry:component",
          "target": "blocks/tables/data-table/skeleton.tsx"
        },
        {
          "path": "src/blocks/tables/data-table/state.ts",
          "type": "registry:component",
          "target": "blocks/tables/data-table/state.ts"
        },
        {
          "path": "src/blocks/tables/data-table/toolbar.tsx",
          "type": "registry:component",
          "target": "blocks/tables/data-table/toolbar.tsx"
        },
        {
          "path": "src/blocks/tables/data-table/virtual.tsx",
          "type": "registry:component",
          "target": "blocks/tables/data-table/virtual.tsx"
        }
      ]
    },
    {
      "name": "tables-grouped",
      "type": "registry:block",
      "title": "Tables Grouped",
      "description": "Planned against spent as a tree: lines grouped the ways you define (the demo: a budget by team, category or owner), each group summing its plan, spend, variance and share used down to a grand total.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "tables-and-lists"
      },
      "dependencies": [
        "@tanstack/react-table@^9.2.4"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/icon-arrow-down.json",
        "https://www.youj.dev/r/icon-arrow-up.json",
        "https://www.youj.dev/r/icon-chevron-right.json",
        "https://www.youj.dev/r/icon-chevrons-up-down.json",
        "https://www.youj.dev/r/icon-list-collapse.json",
        "https://www.youj.dev/r/presence-list.json",
        "https://www.youj.dev/r/progress.json",
        "https://www.youj.dev/r/segmented-control.json",
        "https://www.youj.dev/r/skeleton.json",
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/tables/grouped.tsx",
          "type": "registry:component",
          "target": "blocks/tables/grouped.tsx"
        },
        {
          "path": "src/blocks/tables/grouped/data.ts",
          "type": "registry:component",
          "target": "blocks/tables/grouped/data.ts"
        },
        {
          "path": "src/blocks/tables/grouped/model.ts",
          "type": "registry:component",
          "target": "blocks/tables/grouped/model.ts"
        },
        {
          "path": "src/blocks/tables/grouped/rows.tsx",
          "type": "registry:component",
          "target": "blocks/tables/grouped/rows.tsx"
        }
      ]
    },
    {
      "name": "tables-logs",
      "type": "registry:block",
      "title": "Tables Logs",
      "description": "A live event stream, virtualized for thousands of rows: it follows new events while you read from the top and holds still (counting what waits) when you scroll down or pause.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "tables-and-lists"
      },
      "dependencies": [
        "motion@^14"
      ],
      "registryDependencies": [
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/code-block.json",
        "https://www.youj.dev/r/data-table.json",
        "https://www.youj.dev/r/icon-arrow-up.json",
        "https://www.youj.dev/r/icon-braces.json",
        "https://www.youj.dev/r/icon-circle-pause.json",
        "https://www.youj.dev/r/icon-play.json",
        "https://www.youj.dev/r/icon-x.json",
        "https://www.youj.dev/r/tables-data-table.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/tables/logs.tsx",
          "type": "registry:component",
          "target": "blocks/tables/logs.tsx"
        },
        {
          "path": "src/blocks/tables/logs/columns.tsx",
          "type": "registry:component",
          "target": "blocks/tables/logs/columns.tsx"
        },
        {
          "path": "src/blocks/tables/logs/data.ts",
          "type": "registry:component",
          "target": "blocks/tables/logs/data.ts"
        },
        {
          "path": "src/blocks/tables/logs/inspector.tsx",
          "type": "registry:component",
          "target": "blocks/tables/logs/inspector.tsx"
        },
        {
          "path": "src/blocks/tables/logs/use-stream.ts",
          "type": "registry:component",
          "target": "blocks/tables/logs/use-stream.ts"
        }
      ]
    },
    {
      "name": "tables-records",
      "type": "registry:block",
      "title": "Tables Records",
      "description": "Work a list of people like a CRM: faces and organizations, a stage you change right in its cell, an owner, a score, an amount, the last touch, and tags, with views you define, a panel under each row, and a selection bar to assign, tag, export or delete.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "tables-and-lists"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/async-button.json",
        "https://www.youj.dev/r/badge.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/dropdown-menu.json",
        "https://www.youj.dev/r/icon-building.json",
        "https://www.youj.dev/r/icon-calendar.json",
        "https://www.youj.dev/r/icon-chevron-down.json",
        "https://www.youj.dev/r/icon-download.json",
        "https://www.youj.dev/r/icon-mail.json",
        "https://www.youj.dev/r/icon-map-pin.json",
        "https://www.youj.dev/r/icon-pencil.json",
        "https://www.youj.dev/r/icon-phone.json",
        "https://www.youj.dev/r/icon-plus.json",
        "https://www.youj.dev/r/icon-tag.json",
        "https://www.youj.dev/r/icon-trash.json",
        "https://www.youj.dev/r/icon-upload.json",
        "https://www.youj.dev/r/icon-user.json",
        "https://www.youj.dev/r/icon-user-plus.json",
        "https://www.youj.dev/r/icon-users.json",
        "https://www.youj.dev/r/tables-data-grid.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-presets.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/tables/records.tsx",
          "type": "registry:component",
          "target": "blocks/tables/records.tsx"
        },
        {
          "path": "src/blocks/tables/records/columns.tsx",
          "type": "registry:component",
          "target": "blocks/tables/records/columns.tsx"
        },
        {
          "path": "src/blocks/tables/records/data.ts",
          "type": "registry:component",
          "target": "blocks/tables/records/data.ts"
        },
        {
          "path": "src/blocks/tables/records/detail.tsx",
          "type": "registry:component",
          "target": "blocks/tables/records/detail.tsx"
        }
      ]
    },
    {
      "name": "tables-spreadsheet",
      "type": "registry:block",
      "title": "Tables Spreadsheet",
      "description": "Rows that work like a spreadsheet (the demo: a stock sheet): edit any cell in place, read the active cell in the name box and formula bar, paste a block of cells from Excel or Google Sheets (checked per column), undo and redo with ⌘Z and ⇧⌘Z, and keep the totals in view as you scroll.",
      "meta": {
        "kind": "card",
        "level": "card",
        "category": "tables-and-lists"
      },
      "dependencies": [],
      "registryDependencies": [
        "https://www.youj.dev/r/alert.json",
        "https://www.youj.dev/r/button.json",
        "https://www.youj.dev/r/data-table.json",
        "https://www.youj.dev/r/icon-function.json",
        "https://www.youj.dev/r/icon-redo.json",
        "https://www.youj.dev/r/icon-undo.json",
        "https://www.youj.dev/r/input-group.json",
        "https://www.youj.dev/r/tables-data-table.json",
        "https://www.youj.dev/r/tooltip.json",
        "https://www.youj.dev/r/use-announcer.json",
        "https://www.youj.dev/r/youj-core.json",
        "https://www.youj.dev/r/youj-ui-core.json"
      ],
      "files": [
        {
          "path": "src/blocks/tables/spreadsheet.tsx",
          "type": "registry:component",
          "target": "blocks/tables/spreadsheet.tsx"
        },
        {
          "path": "src/blocks/tables/spreadsheet/columns.tsx",
          "type": "registry:component",
          "target": "blocks/tables/spreadsheet/columns.tsx"
        },
        {
          "path": "src/blocks/tables/spreadsheet/data.ts",
          "type": "registry:component",
          "target": "blocks/tables/spreadsheet/data.ts"
        },
        {
          "path": "src/blocks/tables/spreadsheet/formula-bar.tsx",
          "type": "registry:component",
          "target": "blocks/tables/spreadsheet/formula-bar.tsx"
        },
        {
          "path": "src/blocks/tables/spreadsheet/use-sheet.ts",
          "type": "registry:component",
          "target": "blocks/tables/spreadsheet/use-sheet.ts"
        }
      ]
    }
  ]
}
