{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "labels",
  "title": "Labels",
  "description": "Labels from the Get IT Done design system.",
  "dependencies": [],
  "registryDependencies": [
    "https://zero-design.itdone.de/r/theme.json"
  ],
  "files": [
    {
      "path": "registry/ui/labels.ts",
      "content": "// Built-in texts of the component library. English is the default, German ships as labelsDe.\n// Parameterised texts are functions so every language can order the words itself.\n\nexport type DesignSystemLocale = 'en' | 'de';\n\nexport interface Labels {\n  // Generic\n  add: string;\n  addNew: string;\n  and: string;\n  or: string;\n  apply: string;\n  cancel: string;\n  clear: string;\n  close: string;\n  code: string;\n  content: string;\n  copied: string;\n  copyCode: string;\n  dismiss: string;\n  find: string;\n  group: string;\n  help: string;\n  loading: string;\n  loadingItem: (label: string) => string;\n  loadingMore: string;\n  loadMore: string;\n  menu: string;\n  navigation: string;\n  next: string;\n  notFound: string;\n  online: string;\n  overflowMore: string;\n  phone: string;\n  pleaseWait: string;\n  previous: string;\n  required: string;\n  reset: string;\n  search: string;\n  searchEllipsis: string;\n  searchIn: (label: string) => string;\n  selectedSuffix: string;\n  invalidSuffix: string;\n  send: string;\n  showPassword: string;\n  hidePassword: string;\n  sending: string;\n  settings: string;\n  subscribe: string;\n  total: string;\n  tryAgain: string;\n  tryAgainInAMoment: string;\n  unread: string;\n  unreadPrefix: string;\n  verified: string;\n  couldNotLoad: string;\n  nothingHereYet: string;\n  remove: (label?: string) => string;\n  removeFilter: (label: string) => string;\n  retryItem: (name: string) => string;\n  itemCount: (count: number) => string;\n  noItemsYet: (label: string) => string;\n  itemNotLoaded: (label: string) => string;\n  // Landmarks and navigation\n  breadcrumb: string;\n  main: string;\n  primary: string;\n  footer: string;\n  categories: string;\n  toggleMenu: string;\n  closeMenu: string;\n  mobileNav: (label: string) => string;\n  moreLevels: string;\n  backFrom: string;\n  escClosesSettings: string;\n  statusActive: string;\n  statusInactive: string;\n  locked: string;\n  sidebarMainMenu: string;\n  sidebarExpand: string;\n  sidebarCollapse: string;\n  sidebarSearch: string;\n  quickActions: string;\n  workspaces: string;\n  createWorkspace: string;\n  // Pagination and carousel\n  pagination: string;\n  pages: string;\n  page: (page: number) => string;\n  pageOf: (page: number, pageCount: number) => string;\n  previousPage: string;\n  nextPage: string;\n  rowsPerPage: string;\n  perPage: (count: number) => string;\n  range: (first: number, last: number, total?: number) => string;\n  showing: (count: number, total: number) => string;\n  goToPage: (page: number, count: number) => string;\n  goToSlide: (slide: number, count: number) => string;\n  previousSlide: string;\n  nextSlide: string;\n  // Data states\n  noDataAvailable: string;\n  noDataYet: string;\n  dataNotLoaded: string;\n  loadingTableData: string;\n  tableErrorTitle: string;\n  tableErrorDescription: string;\n  sheetLoadError: string;\n  serviceNotResponding: string;\n  weekRowHeader: string;\n  weekEmptyTitle: string;\n  weekErrorTitle: string;\n  weekLoading: string;\n  monthEmptyTitle: string;\n  monthErrorTitle: string;\n  monthLoading: string;\n  weekdaysShort: string[];\n  heatmapRowHeader: string;\n  heatmapErrorTitle: string;\n  heatmapLoading: string;\n  chartEmptyTitle: string;\n  chartErrorTitle: string;\n  chartErrorDescription: string;\n  chartLoading: string;\n  chartCategory: string;\n  chartSlice: string;\n  chartValue: string;\n  chartShare: string;\n  chartAxis: string;\n  chartBin: string;\n  chartCount: string;\n  chartItem: string;\n  legend: string;\n  valueOfMax: (value: string, max: string) => string;\n  cvEmptyTitle: string;\n  cvEmptyDescription: string;\n  cvErrorTitle: string;\n  cvErrorDescription: string;\n  cvLoading: string;\n  skillsEmptyTitle: string;\n  skillsErrorTitle: string;\n  skillsLoading: string;\n  timelineEmptyTitle: string;\n  timelineErrorTitle: string;\n  timelineErrorDescription: string;\n  timelineLoading: string;\n  notifications: string;\n  notificationsEmptyTitle: string;\n  notificationsEmptyDescription: string;\n  notificationsErrorTitle: string;\n  notificationsErrorDescription: string;\n  notificationsLoading: string;\n  markAllRead: string;\n  // Kanban\n  kanbanEmptyColumn: string;\n  kanbanErrorTitle: string;\n  kanbanErrorDescription: string;\n  kanbanLoading: string;\n  kanbanMoveCancelled: string;\n  kanbanMoveReverted: (title: string) => string;\n  kanbanDroppedInPlace: string;\n  kanbanPosition: (column: string, position: number) => string;\n  kanbanPickedUp: (title: string | undefined, position: string) => string;\n  kanbanDropped: (title: string | undefined, position: string) => string;\n  kanbanMoveTo: string;\n  kanbanCardActions: (title: string) => string;\n  kanbanCurrentColumn: (column: string) => string;\n  // Scores\n  score: string;\n  scoreBreakdown: string;\n  scoreBreakdownLoading: string;\n  scoreCounts: string;\n  scoreFormulaOpen: string;\n  scoreLocked: (label: string) => string;\n  scorePercent: (label: string, percent: number) => string;\n  scoreServiceNotResponding: string;\n  scoreSuffixAnd: string;\n  scoreSuffixOr: string;\n  criteriaEmptyTitle: string;\n  criteriaEmptyDescription: string;\n  matchErrorTitle: string;\n  formulaEmpty: string;\n  formulaError: string;\n  formulaLoading: string;\n  // Forms and inputs\n  activeFilters: string;\n  appliedFilters: string;\n  addFilter: string;\n  addItems: string;\n  selectTime: string;\n  addTag: string;\n  tagsAdded: (tags: string) => string;\n  tagRemoved: (tag: string) => string;\n  bulkActions: string;\n  deselectAll: string;\n  selectedCount: (count: number) => string;\n  moreActions: string;\n  noFiltersApplied: string;\n  filtersApplied: (count: number) => string;\n  filters: string;\n  matchMode: string;\n  showMore: (count: number) => string;\n  showLess: string;\n  digit: (index: number, length: number) => string;\n  minimum: string;\n  maximum: string;\n  presets: string;\n  selectDate: string;\n  signature: string;\n  signHere: string;\n  eventColumn: string;\n  checkAll: string;\n  uncheckAll: string;\n  unsavedChanges: string;\n  autosaveHint: string;\n  enterNew: (label?: string) => string;\n  pressEnterToAdd: string;\n  selectCountry: string;\n  searchCountry: string;\n  noCountryFound: string;\n  // Accessible names of the select family and the stepper\n  openOptions: string;\n  selectOptions: string;\n  stepName: (index: number, label?: string) => string;\n  stepCurrent: string;\n  autosaveStates: Record<'saved' | 'saving' | 'dirty' | 'error' | 'offline', string>;\n  // Upload\n  fileUploadTitle: string;\n  fileUploadDescription: string;\n  fileUploadLoading: string;\n  uploadFailed: string;\n  uploadComplete: string;\n  uploadedPercent: (percent: number) => string;\n  uploading: (name: string) => string;\n  // Editor and code\n  richTextActions: Record<\n    | 'bold'\n    | 'italic'\n    | 'underline'\n    | 'strikethrough'\n    | 'code'\n    | 'heading1'\n    | 'heading2'\n    | 'quote'\n    | 'link'\n    | 'image'\n    | 'bulletList'\n    | 'orderedList'\n    | 'undo'\n    | 'redo'\n    | 'alignLeft'\n    | 'alignCenter'\n    | 'alignRight'\n    | 'alignJustify'\n    | 'textColor'\n    | 'highlight',\n    string\n  >;\n  textFormatting: string;\n  editorMode: string;\n  write: string;\n  preview: string;\n  previewRegion: string;\n  nothingToPreview: string;\n  // Misc\n  announcement: string;\n  dismissBanner: string;\n  typing: string;\n  reactions: string;\n  skills: string;\n  skillsTitle: string;\n  storage: string;\n  storageUsed: (used: number, total: number, unit: string) => string;\n  storagePercentUsed: (label: string, percent: number) => string;\n  rating: string;\n  ratingOf: (label: string, filled: number, max: number) => string;\n  rowActions: string;\n  selectAllRows: string;\n  selectRow: string;\n  dataGrid: string;\n  trendUp: string;\n  trendDown: string;\n  timer: string;\n  timerState: (label: string, running: boolean, time: string) => string;\n  socialSignIn: string;\n  signInWith: (provider: string) => string;\n  // Sections\n  learnMore: string;\n  aboutItem: (title: string) => string;\n  readArticle: string;\n  fromOutlet: (outlet: string) => string;\n  billing: (label: string) => string;\n  emailAddress: string;\n  enterYourEmail: string;\n  noPostsYet: string;\n  noOpenPositions: string;\n  noTeamMembersYet: string;\n  noQuestionsYet: string;\n  // CV\n  education: string;\n  experience: string;\n  deliverables: string;\n  durationYears: (count: number) => string;\n  durationMonths: (count: number) => string;\n  durationAnd: string;\n  durationLessThanMonth: string;\n  // Confirm dialog and guest header\n  confirm: string;\n  typeToConfirm: (value: string) => string;\n  language: string;\n  switchTheme: string;\n  // Calendar grid add affordance\n  addEntry: string;\n  messageActions: string;\n  unreadCount: (count: number) => string;\n  muted: string;\n  showSecret: string;\n  hideSecret: string;\n  copyValue: string;\n  colorOption: (index: number) => string;\n  pickColor: string;\n  hexColor: string;\n  stepCompleted: string;\n  stepFailed: string;\n  weekTotal: string;\n  holiday: string;\n  fileNotUploaded: string;\n  kanbanMovedTo: (column: string) => string;\n  todaySuffix: string;\n  avatarUpload: string;\n  // Site and layout pieces (table of contents, cookie banner, countdown, chat window, versions, file icon, blind mode)\n  tableOfContents: string;\n  cookieConsentRegion: string;\n  acceptAllCookies: string;\n  declineNonEssentialCookies: string;\n  cookieSettings: string;\n  cookieClose: string;\n  cookieSaveSelection: string;\n  cookieBack: string;\n  cookieAlwaysActive: string;\n  cookieSettingsTitle: string;\n  countdownDays: string;\n  countdownHours: string;\n  countdownMinutes: string;\n  countdownSeconds: string;\n  countdownEnded: string;\n  countdownFinished: string;\n  chatMinimize: string;\n  chatRestore: string;\n  versionsTitle: string;\n  currentVersion: string;\n  versionLabel: (version: string | number) => string;\n  versionBy: (name: string) => string;\n  restoreVersion: (version: string | number) => string;\n  downloadVersion: (version: string | number) => string;\n  versionRestoring: string;\n  noVersionNote: string;\n  noVersionsYet: string;\n  blindMode: string;\n  blindModeDescription: string;\n  blindModeOn: string;\n  blindModeOff: string;\n  blindModeAnnounceOn: string;\n  blindModeAnnounceOff: string;\n  fileKind: (kind: string) => string;\n  // Compact countdown units\n  countdownDaysShort: string;\n  countdownHoursShort: string;\n  countdownMinutesShort: string;\n  countdownSecondsShort: string;\n  // Inline edit cell\n  editCell: (label: string, value: string) => string;\n  addNote: (label: string) => string;\n  editNote: (label: string) => string;\n  noteField: (label: string) => string;\n  // Tag input suggestions\n  tagSuggestions: string;\n  tagSuggestionsCount: (count: number) => string;\n  requiredByJob: string;\n  // Rating input: name of one star option, e.g. `2 of 5`\n  ratingOption: (value: number, max: number) => string;\n}\n\n// Per-instance override: a plain string, or for parameterised texts a string or the function form.\nexport type LabelProp<Args extends unknown[] = []> = string | ((...args: Args) => string);\n\nexport type LabelOverrides = {\n  [K in keyof Labels]?: Labels[K] extends (...args: infer A) => string ? LabelProp<A> : Labels[K];\n};\n\n// Precedence: instance prop, then provider labels, then the English default.\nexport const applyLabelOverrides = (base: Labels, overrides?: LabelOverrides): Labels => {\n  if (!overrides) return base;\n  const next: Record<string, unknown> = { ...base };\n  (Object.keys(overrides) as (keyof Labels)[]).forEach((key) => {\n    const value = overrides[key];\n    if (value === undefined) return;\n    next[key] = typeof base[key] === 'function' && typeof value === 'string' ? () => value : value;\n  });\n  return next as unknown as Labels;\n};\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}