@burdenoff/microfe-store 2026.830.1 → 2026.831.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,16 @@
1
+ /**
2
+ * useTr — translation hook with fallback semantics.
3
+ *
4
+ * Wraps `useI18n().t()` so that when a key has no translation (i.e. the
5
+ * provider returns the key itself), the caller's English fallback is used
6
+ * instead. This keeps consumer call sites consistent and avoids leaking
7
+ * untranslated keys into the UI.
8
+ *
9
+ * Supports optional interpolation params using `{{key}}` placeholders.
10
+ *
11
+ * @example
12
+ * const tr = useTr();
13
+ * return <h1>{tr('store.marketplace.title', 'Marketplace')}</h1>;
14
+ * return <p>{tr('store.cart.itemCount', '{{count}} items', { count: 5 })}</p>;
15
+ */
16
+ export declare function useTr(): (key: string, fallback: string, params?: Record<string, string | number>) => string;
@@ -0,0 +1,14 @@
1
+ import { useCallback as e } from "react";
2
+ import { useI18n as t } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
3
+ //#region src/shared/hooks/useTr.ts
4
+ function n() {
5
+ let { t: n } = t();
6
+ return e((e, t, r) => {
7
+ let i = n(e), a = i === e ? t : i;
8
+ return r ? Object.entries(r).reduce((e, [t, n]) => e.replace(RegExp(`\\{\\{${t}\\}\\}`, "g"), String(n)), a) : a;
9
+ }, [n]);
10
+ }
11
+ //#endregion
12
+ export { n as useTr };
13
+
14
+ //# sourceMappingURL=useTr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTr.js","names":[],"sources":["../../../src/shared/hooks/useTr.ts"],"sourcesContent":["import { useCallback } from 'react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\n\n/**\n * useTr — translation hook with fallback semantics.\n *\n * Wraps `useI18n().t()` so that when a key has no translation (i.e. the\n * provider returns the key itself), the caller's English fallback is used\n * instead. This keeps consumer call sites consistent and avoids leaking\n * untranslated keys into the UI.\n *\n * Supports optional interpolation params using `{{key}}` placeholders.\n *\n * @example\n * const tr = useTr();\n * return <h1>{tr('store.marketplace.title', 'Marketplace')}</h1>;\n * return <p>{tr('store.cart.itemCount', '{{count}} items', { count: 5 })}</p>;\n */\nexport function useTr(): (\n key: string,\n fallback: string,\n params?: Record<string, string | number>\n) => string {\n const { t } = useI18n();\n return useCallback(\n (key: string, fallback: string, params?: Record<string, string | number>): string => {\n const translated = t(key);\n const raw = translated === key ? fallback : translated;\n if (!params) return raw;\n return Object.entries(params).reduce(\n (str, [k, v]) => str.replace(new RegExp(`\\\\{\\\\{${k}\\\\}\\\\}`, 'g'), String(v)),\n raw\n );\n },\n [t]\n );\n}\n"],"mappings":";;;AAkBA,SAAgB,IAIJ;CACV,IAAM,EAAE,SAAM,GAAS;AACvB,QAAO,GACJ,GAAa,GAAkB,MAAqD;EACnF,IAAM,IAAa,EAAE,EAAI,EACnB,IAAM,MAAe,IAAM,IAAW;AAE5C,SADK,IACE,OAAO,QAAQ,EAAO,CAAC,QAC3B,GAAK,CAAC,GAAG,OAAO,EAAI,QAAY,OAAO,SAAS,EAAE,SAAS,IAAI,EAAE,OAAO,EAAE,CAAC,EAC5E,EACD,GAJmB;IAMtB,CAAC,EAAE,CACJ"}
@@ -214,17 +214,46 @@ export declare const enTranslations: {
214
214
  cart: {
215
215
  title: string;
216
216
  empty: string;
217
+ emptyHint: string;
217
218
  checkout: string;
218
219
  continueShopping: string;
219
220
  removeItem: string;
221
+ removeItemTitle: string;
220
222
  clearCart: string;
221
223
  subtotal: string;
222
224
  total: string;
225
+ tax: string;
226
+ each: string;
227
+ closeCart: string;
228
+ quantity: string;
229
+ decreaseQuantity: string;
230
+ increaseQuantity: string;
223
231
  itemAdded: string;
224
232
  itemRemoved: string;
225
233
  cartCleared: string;
226
234
  mergeSuccess: string;
227
235
  };
236
+ installApp: {
237
+ title: string;
238
+ reviewPermissions: string;
239
+ selectWorkspace: string;
240
+ failedToLoadWorkspaces: string;
241
+ noWorkspaces: string;
242
+ version: string;
243
+ latest: string;
244
+ latestWithVersion: string;
245
+ versionWithStatus: string;
246
+ installingInto: string;
247
+ permissionsRequested: string;
248
+ consentDescription: string;
249
+ acceptAndInstall: string;
250
+ permissionReadWrite: string;
251
+ permissionWebhooks: string;
252
+ permissionAuthorized: string;
253
+ revokeHint: string;
254
+ installing: string;
255
+ installApp: string;
256
+ };
228
257
  nav: {
229
258
  marketplace: string;
230
259
  cart: string;
@@ -246,7 +275,6 @@ export declare const enTranslations: {
246
275
  accessDenied: string;
247
276
  accessDeniedDescription: string;
248
277
  moduleLoadError: string;
249
- loading: string;
250
278
  error: string;
251
279
  retry: string;
252
280
  save: string;
@@ -271,36 +299,138 @@ export declare const enTranslations: {
271
299
  submit: string;
272
300
  confirm: string;
273
301
  browse: string;
302
+ continue: string;
303
+ loading: string;
304
+ loadMore: string;
305
+ product: string;
306
+ item: string;
307
+ unknownProduct: string;
308
+ notProvided: string;
309
+ notApplicable: string;
310
+ markdownEditor: {
311
+ write: string;
312
+ preview: string;
313
+ formatting: string;
314
+ bold: string;
315
+ italic: string;
316
+ link: string;
317
+ inlineCode: string;
318
+ bulletList: string;
319
+ nothingToPreview: string;
320
+ };
274
321
  };
275
322
  pages: {
276
323
  marketplace: {
324
+ appTitle: string;
277
325
  title: string;
278
326
  subtitle: string;
279
- searchPlaceholder: string;
280
- filterByCategory: string;
327
+ cart: string;
328
+ search: {
329
+ label: string;
330
+ placeholder: string;
331
+ clear: string;
332
+ searching: string;
333
+ resultCount: string;
334
+ };
335
+ filters: string;
336
+ sortLabel: string;
337
+ quickFilterFree: string;
338
+ quickFilterRating: string;
339
+ quickFilterFeatured: string;
340
+ clearAll: string;
341
+ filterPricing: string;
342
+ filterPrice: string;
343
+ filterMinRating: string;
344
+ filterRating: string;
345
+ filterCategory: string;
346
+ filterNature: string;
347
+ filterLicense: string;
348
+ activeFilters: string;
349
+ activeFilterType: string;
350
+ activeFilterPrice: string;
351
+ activeFilterRating: string;
352
+ activeFilterCategory: string;
353
+ activeFilterNature: string;
354
+ activeFilterLicense: string;
355
+ activeFilterFeatured: string;
356
+ pricingAll: string;
357
+ pricingFree: string;
358
+ pricingPaid: string;
359
+ pricingSubscription: string;
360
+ ratingAny: string;
361
+ rating3: string;
362
+ rating3_5: string;
363
+ rating4: string;
364
+ rating4_5: string;
365
+ natureAll: string;
366
+ natureDigital: string;
367
+ naturePhysical: string;
368
+ sortRelevance: string;
369
+ sortRating: string;
370
+ sortDownloads: string;
371
+ sortNewest: string;
372
+ sortPriceLow: string;
373
+ sortPriceHigh: string;
374
+ sortNameAsc: string;
375
+ typeAll: string;
281
376
  allCategories: string;
377
+ allLicenses: string;
378
+ featured: string;
379
+ featuredApp: string;
380
+ viewAll: string;
381
+ viewDetails: string;
382
+ viewProduct: string;
383
+ free: string;
384
+ installed: string;
385
+ downloads: string;
386
+ downloadsCount: string;
387
+ pagePurpose: string;
388
+ errorTitle: string;
389
+ errorDescription: string;
390
+ browseByType: string;
391
+ searchResults: string;
392
+ filteredResults: string;
393
+ appsFound: string;
394
+ noFilterMatch: string;
395
+ noFilterMatchDescription: string;
396
+ clearAllFilters: string;
397
+ mostDownloaded: string;
398
+ mostDownloadedSubtitle: string;
399
+ newReleases: string;
400
+ newReleasesSubtitle: string;
401
+ freeApps: string;
402
+ freeAppsSubtitle: string;
403
+ allApps: string;
404
+ allAppsSubtitle: string;
405
+ deprecatedApps: string;
406
+ deprecatedAppsSubtitle: string;
407
+ deprecated: string;
408
+ deprecatedHint: string;
409
+ noAppsTitle: string;
410
+ noAppsDescription: string;
411
+ filterByCategory: string;
282
412
  featuredApps: string;
283
413
  popularApps: string;
284
414
  recentlyUpdated: string;
285
- freeApps: string;
286
415
  noResults: string;
287
416
  noResultsDescription: string;
288
417
  clearSearch: string;
289
418
  installNow: string;
290
- viewDetails: string;
291
- free: string;
292
- installed: string;
293
419
  };
294
420
  productDetail: {
295
421
  overview: string;
296
422
  reviews: string;
297
423
  versions: string;
298
424
  installApp: string;
425
+ install: string;
299
426
  installing: string;
300
427
  installed: string;
428
+ installedVersion: string;
301
429
  addToCart: string;
430
+ inCart: string;
302
431
  alreadyInCart: string;
303
432
  buyNow: string;
433
+ processing: string;
304
434
  viewInstallation: string;
305
435
  publisher: string;
306
436
  category: string;
@@ -308,16 +438,100 @@ export declare const enTranslations: {
308
438
  updated: string;
309
439
  rating: string;
310
440
  reviews_count: string;
441
+ downloadsCount: string;
442
+ downloadsLabel: string;
443
+ typeLabel: string;
311
444
  noReviews: string;
312
445
  beFirstToReview: string;
446
+ beFirstToReviewShort: string;
313
447
  writeReview: string;
314
448
  submitReview: string;
449
+ updateReview: string;
450
+ deleteReview: string;
315
451
  yourRating: string;
452
+ yourRatingLabel: string;
316
453
  yourReview: string;
454
+ reviewTitleLabel: string;
455
+ reviewTitlePlaceholder: string;
456
+ reviewBodyLabel: string;
457
+ reviewBodyPlaceholder: string;
317
458
  reviewPlaceholder: string;
318
- notFound: string;
319
- notFoundDescription: string;
459
+ savingReview: string;
460
+ removingReview: string;
461
+ installToReview: string;
462
+ ratingRequired: string;
463
+ reviewSaveError: string;
464
+ reviewUpdated: string;
465
+ reviewSubmitted: string;
466
+ deleteReviewTitle: string;
467
+ deleteReviewMessage: string;
468
+ reviewDeleteError: string;
469
+ reviewRemoved: string;
470
+ verifiedBuyer: string;
471
+ markHelpful: string;
472
+ helpful: string;
473
+ updatingHelpful: string;
474
+ showLess: string;
475
+ showMore: string;
476
+ showAllReviews: string;
477
+ notFoundTitle: string;
478
+ notFoundDetail: string;
320
479
  backToMarketplace: string;
480
+ errorTitle: string;
481
+ errorDescription: string;
482
+ aboutThisApp: string;
483
+ noDescription: string;
484
+ noDesc: string;
485
+ ratingsAndReviews: string;
486
+ requiredPermissions: string;
487
+ integrations: string;
488
+ additionalInformation: string;
489
+ versionLabel: string;
490
+ publishedLabel: string;
491
+ updatedLabel: string;
492
+ licenseLabel: string;
493
+ minPlatformVersionLabel: string;
494
+ appSupport: string;
495
+ documentation: string;
496
+ sourceRepository: string;
497
+ contactPublisher: string;
498
+ visitWebsite: string;
499
+ similarApps: string;
500
+ previewTitle: string;
501
+ noPreview: string;
502
+ noPreviewHint: string;
503
+ subscriptionPrice: string;
504
+ outOfStock: string;
505
+ inStock: string;
506
+ quantity: string;
507
+ decreaseQuantity: string;
508
+ increaseQuantity: string;
509
+ updateToVersion: string;
510
+ installToWorkspace: string;
511
+ addToCartError: string;
512
+ createOrderError: string;
513
+ checkoutError: string;
514
+ pickupAvailable: string;
515
+ shipsToAddress: string;
516
+ sellerReturnsPolicy: string;
517
+ theSeller: string;
518
+ availableForWorkspace: string;
519
+ purchaseFinalNotice: string;
520
+ licenseStatus: string;
521
+ licenseExpires: string;
522
+ pagePurpose: string;
523
+ nextStepInstallLabel: string;
524
+ nextStepInstallDescription: string;
525
+ nextStepBuyLabel: string;
526
+ nextStepOwnedDescription: string;
527
+ nextStepBuyDescription: string;
528
+ nextStepPermissionsLabel: string;
529
+ nextStepPermissionsDescription: string;
530
+ nextStepReviewsLabel: string;
531
+ nextStepReviewsDescription: string;
532
+ cancelReviewEditing: string;
533
+ editYourReview: string;
534
+ cancelReview: string;
321
535
  };
322
536
  cart: {
323
537
  title: string;
@@ -330,6 +544,7 @@ export declare const enTranslations: {
330
544
  clearCart: string;
331
545
  singleLicense: string;
332
546
  qty: string;
547
+ each: string;
333
548
  digital: string;
334
549
  physical: string;
335
550
  subscription: string;
@@ -361,9 +576,56 @@ export declare const enTranslations: {
361
576
  failedToLoad: string;
362
577
  filterAll: string;
363
578
  reorder: string;
579
+ loading: string;
580
+ browseMarketplace: string;
581
+ tabCompleted: string;
582
+ tabPending: string;
583
+ noCompletedTitle: string;
584
+ noPendingTitle: string;
585
+ colOrder: string;
586
+ colDate: string;
587
+ colItems: string;
588
+ colTotal: string;
589
+ colStatus: string;
590
+ colProduct: string;
591
+ colQty: string;
592
+ colPrice: string;
593
+ colAction: string;
594
+ item: string;
595
+ items: string;
596
+ orderTracking: string;
597
+ statusPending: string;
598
+ statusCompleted: string;
599
+ statusProcessing: string;
600
+ statusFailed: string;
601
+ statusRefunded: string;
602
+ statusCancelled: string;
603
+ estimatedDelivery: string;
604
+ trackingNumber: string;
605
+ trackPackage: string;
606
+ stepProcessing: string;
607
+ stepShipped: string;
608
+ stepOutForDelivery: string;
609
+ stepDelivered: string;
610
+ qtyTimesPrice: string;
611
+ subtotal: string;
612
+ tax: string;
613
+ total: string;
364
614
  };
365
615
  orderConfirmation: {
366
616
  title: string;
617
+ totalAt: string;
618
+ orderId: string;
619
+ loading: string;
620
+ shipping: string;
621
+ status: string;
622
+ estimatedDelivery: string;
623
+ trackPackage: string;
624
+ licenses: string;
625
+ expires: string;
626
+ copyLicenseKey: string;
627
+ copied: string;
628
+ installToWorkspace: string;
367
629
  subtitle: string;
368
630
  orderNumber: string;
369
631
  orderDate: string;
@@ -374,7 +636,11 @@ export declare const enTranslations: {
374
636
  subtotal: string;
375
637
  tax: string;
376
638
  total: string;
377
- whatHappensNext: string;
639
+ whatsNext: string;
640
+ nextInstall: string;
641
+ nextTrack: string;
642
+ nextReceipt: string;
643
+ nextDiscover: string;
378
644
  nextStep1: string;
379
645
  nextStep2: string;
380
646
  nextStep3: string;
@@ -395,6 +661,31 @@ export declare const enTranslations: {
395
661
  settings: string;
396
662
  statusAll: string;
397
663
  installNew: string;
664
+ statusActive: string;
665
+ statusInactive: string;
666
+ statusPending: string;
667
+ statusInstalling: string;
668
+ statusFailed: string;
669
+ statusUninstalled: string;
670
+ uninstallError: string;
671
+ searchPlaceholder: string;
672
+ noMatchTitle: string;
673
+ noMatchDescription: string;
674
+ emptyTitleAlt: string;
675
+ emptyDescriptionAlt: string;
676
+ noSearchResults: string;
677
+ colApp: string;
678
+ colWorkspace: string;
679
+ colStatus: string;
680
+ colVersion: string;
681
+ colInstalled: string;
682
+ colActions: string;
683
+ delisted: string;
684
+ details: string;
685
+ configure: string;
686
+ product: string;
687
+ uninstallTitle: string;
688
+ uninstallPrompt: string;
398
689
  };
399
690
  appDetail: {
400
691
  title: string;
@@ -408,6 +699,19 @@ export declare const enTranslations: {
408
699
  failedToLoad: string;
409
700
  notFound: string;
410
701
  notFoundDescription: string;
702
+ loading: string;
703
+ backToInstalled: string;
704
+ integrationConfigTitle: string;
705
+ installationId: string;
706
+ manageConfig: string;
707
+ openProductPage: string;
708
+ installedAtLabel: string;
709
+ updatedAt: string;
710
+ workspaceId: string;
711
+ organizationId: string;
712
+ installedBy: string;
713
+ runtimeMetadata: string;
714
+ metadata: string;
411
715
  };
412
716
  appSettings: {
413
717
  title: string;
@@ -417,6 +721,12 @@ export declare const enTranslations: {
417
721
  failedToSave: string;
418
722
  noSettings: string;
419
723
  noSettingsDescription: string;
724
+ loading: string;
725
+ notFound: string;
726
+ backToInstalled: string;
727
+ configDetails: string;
728
+ manifest: string;
729
+ metadataContext: string;
420
730
  };
421
731
  licenses: {
422
732
  title: string;
@@ -429,6 +739,8 @@ export declare const enTranslations: {
429
739
  entitlementId: string;
430
740
  licenseKey: string;
431
741
  expiresOn: string;
742
+ loading: string;
743
+ product: string;
432
744
  };
433
745
  publisherDashboard: {
434
746
  title: string;
@@ -503,6 +815,10 @@ export declare const enTranslations: {
503
815
  noResultsDescription: string;
504
816
  browseMarketplace: string;
505
817
  resultCount: string;
818
+ placeholder: string;
819
+ searching: string;
820
+ emptyTitle: string;
821
+ noResultsTitle: string;
506
822
  };
507
823
  stores: {
508
824
  title: string;
@@ -516,6 +832,7 @@ export declare const enTranslations: {
516
832
  noProducts: string;
517
833
  noProductsDescription: string;
518
834
  browseAll: string;
835
+ thisCategory: string;
519
836
  };
520
837
  };
521
838
  };