@rainersoft/utils 1.0.4 → 1.1.0

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.
package/dist/index.d.mts CHANGED
@@ -3,7 +3,7 @@ export { C as CURRENCY_MAP, D as DEFAULT_LOCALE, a as LocaleConfig } from './typ
3
3
  export { textToSlug } from './string/index.mjs';
4
4
  export { formatDate, formatDateTime, formatRelativeDate, isValidDate, toISOString } from './date/index.mjs';
5
5
  export { formatCurrency } from './number/index.mjs';
6
- export { GenericStatus, getStatusColor, getStatusVariant, translateStatus } from './status/index.mjs';
6
+ export { GenericStatus, getStatusColor, getStatusVariant, translatePostStatus, translateStatus } from './status/index.mjs';
7
7
 
8
8
  declare function extractInitials(name: string | null | undefined, maxChars?: number): string;
9
9
  declare function generateAvatarUrl(name: string, size?: number, backgroundColor?: string, textColor?: string): string;
@@ -51,6 +51,10 @@ declare function validateText(text: string, options?: {
51
51
  maxLength?: number;
52
52
  fieldName?: string;
53
53
  }, locale?: Locale): ValidationResult;
54
+ declare function validateMessage(message: string, options?: {
55
+ minLength?: number;
56
+ maxLength?: number;
57
+ }, locale?: Locale): ValidationResult;
54
58
 
55
59
  declare function prefersReducedMotion(): boolean;
56
60
  declare function onReducedMotionChange(callback: (prefersReduced: boolean) => void): () => void;
@@ -155,4 +159,4 @@ declare namespace ptBr {
155
159
  export { ptBr_formatCompact as formatCompact, ptBr_formatCurrency as formatCurrency, ptBr_formatDate as formatDate, ptBr_formatDateTime as formatDateTime, ptBr_formatNumber as formatNumber, ptBr_formatRelativeDate as formatRelativeDate, ptBr_translateStatus as translateStatus };
156
160
  }
157
161
 
158
- export { Locale, type ValidationResult, calculateChange, calculateMovingAverage, capitalize, cleanText, copyToClipboard, countWords, downloadFile, extractInitials, findMinMax, formatNumber$1 as formatNumber, formatPercentage, generateAvatarUrl, generateDynamicAvatarUrl, generateMockChartData, generateUniqueId, getAvatarColorFromName, getElementPosition, groupDataByPeriod, isDarkMode, isElementVisible, isEmpty, isMobile, isValidAvatarUrl, normalizeSpaces, onDarkModeChange, onReducedMotionChange, prefersReducedMotion, ptBr as ptBR, scrollToElement, scrollToPosition, scrollToTop, smoothScrollTo, truncateText, usePasswordStrength, validateEmail, validatePassword, validatePhone, validateSlug, validateText, validateUrl, validateUsername };
162
+ export { Locale, type ValidationResult, calculateChange, calculateMovingAverage, capitalize, cleanText, copyToClipboard, countWords, downloadFile, extractInitials, findMinMax, formatNumber$1 as formatNumber, formatPercentage, generateAvatarUrl, generateDynamicAvatarUrl, generateMockChartData, generateUniqueId, getAvatarColorFromName, getElementPosition, groupDataByPeriod, isDarkMode, isElementVisible, isEmpty, isMobile, isValidAvatarUrl, normalizeSpaces, onDarkModeChange, onReducedMotionChange, prefersReducedMotion, ptBr as ptBR, scrollToElement, scrollToPosition, scrollToTop, smoothScrollTo, truncateText, usePasswordStrength, validateEmail, validateMessage, validatePassword, validatePhone, validateSlug, validateText, validateUrl, validateUsername };
package/dist/index.d.ts CHANGED
@@ -3,7 +3,7 @@ export { C as CURRENCY_MAP, D as DEFAULT_LOCALE, a as LocaleConfig } from './typ
3
3
  export { textToSlug } from './string/index.js';
4
4
  export { formatDate, formatDateTime, formatRelativeDate, isValidDate, toISOString } from './date/index.js';
5
5
  export { formatCurrency } from './number/index.js';
6
- export { GenericStatus, getStatusColor, getStatusVariant, translateStatus } from './status/index.js';
6
+ export { GenericStatus, getStatusColor, getStatusVariant, translatePostStatus, translateStatus } from './status/index.js';
7
7
 
8
8
  declare function extractInitials(name: string | null | undefined, maxChars?: number): string;
9
9
  declare function generateAvatarUrl(name: string, size?: number, backgroundColor?: string, textColor?: string): string;
@@ -51,6 +51,10 @@ declare function validateText(text: string, options?: {
51
51
  maxLength?: number;
52
52
  fieldName?: string;
53
53
  }, locale?: Locale): ValidationResult;
54
+ declare function validateMessage(message: string, options?: {
55
+ minLength?: number;
56
+ maxLength?: number;
57
+ }, locale?: Locale): ValidationResult;
54
58
 
55
59
  declare function prefersReducedMotion(): boolean;
56
60
  declare function onReducedMotionChange(callback: (prefersReduced: boolean) => void): () => void;
@@ -155,4 +159,4 @@ declare namespace ptBr {
155
159
  export { ptBr_formatCompact as formatCompact, ptBr_formatCurrency as formatCurrency, ptBr_formatDate as formatDate, ptBr_formatDateTime as formatDateTime, ptBr_formatNumber as formatNumber, ptBr_formatRelativeDate as formatRelativeDate, ptBr_translateStatus as translateStatus };
156
160
  }
157
161
 
158
- export { Locale, type ValidationResult, calculateChange, calculateMovingAverage, capitalize, cleanText, copyToClipboard, countWords, downloadFile, extractInitials, findMinMax, formatNumber$1 as formatNumber, formatPercentage, generateAvatarUrl, generateDynamicAvatarUrl, generateMockChartData, generateUniqueId, getAvatarColorFromName, getElementPosition, groupDataByPeriod, isDarkMode, isElementVisible, isEmpty, isMobile, isValidAvatarUrl, normalizeSpaces, onDarkModeChange, onReducedMotionChange, prefersReducedMotion, ptBr as ptBR, scrollToElement, scrollToPosition, scrollToTop, smoothScrollTo, truncateText, usePasswordStrength, validateEmail, validatePassword, validatePhone, validateSlug, validateText, validateUrl, validateUsername };
162
+ export { Locale, type ValidationResult, calculateChange, calculateMovingAverage, capitalize, cleanText, copyToClipboard, countWords, downloadFile, extractInitials, findMinMax, formatNumber$1 as formatNumber, formatPercentage, generateAvatarUrl, generateDynamicAvatarUrl, generateMockChartData, generateUniqueId, getAvatarColorFromName, getElementPosition, groupDataByPeriod, isDarkMode, isElementVisible, isEmpty, isMobile, isValidAvatarUrl, normalizeSpaces, onDarkModeChange, onReducedMotionChange, prefersReducedMotion, ptBr as ptBR, scrollToElement, scrollToPosition, scrollToTop, smoothScrollTo, truncateText, usePasswordStrength, validateEmail, validateMessage, validatePassword, validatePhone, validateSlug, validateText, validateUrl, validateUsername };
package/dist/index.js CHANGED
@@ -363,6 +363,25 @@ function getStatusVariant(status) {
363
363
  }
364
364
  return "outline";
365
365
  }
366
+ function translatePostStatus(status, locale = DEFAULT_LOCALE) {
367
+ const postStatusMap = {
368
+ "draft": "DRAFT",
369
+ "published": "PUBLISHED",
370
+ "archived": "ARCHIVED",
371
+ "scheduled": "SCHEDULED",
372
+ "pending_review": "PENDING"
373
+ };
374
+ const normalized = postStatusMap[status.toLowerCase()] || status.toUpperCase();
375
+ if (status.toLowerCase() === "pending_review") {
376
+ const translations = {
377
+ "pt-BR": "Aguardando Revis\xE3o",
378
+ "en-US": "Pending Review",
379
+ "es-ES": "Pendiente de Revisi\xF3n"
380
+ };
381
+ return translations[locale] || translations["pt-BR"];
382
+ }
383
+ return translateStatus(normalized, locale);
384
+ }
366
385
 
367
386
  // src/validation/index.ts
368
387
  function validateEmail(email, locale = DEFAULT_LOCALE) {
@@ -578,6 +597,17 @@ function validateText(text, options = {}, locale = DEFAULT_LOCALE) {
578
597
  errors
579
598
  };
580
599
  }
600
+ function validateMessage(message, options = {}, locale = DEFAULT_LOCALE) {
601
+ const {
602
+ minLength = 10,
603
+ maxLength = 1e3
604
+ } = options;
605
+ return validateText(message, {
606
+ minLength,
607
+ maxLength,
608
+ fieldName: locale === "pt-BR" ? "Mensagem" : locale === "en-US" ? "Message" : "Mensaje"
609
+ }, locale);
610
+ }
581
611
 
582
612
  // src/dom/index.ts
583
613
  function prefersReducedMotion() {
@@ -1078,10 +1108,12 @@ exports.scrollToTop = scrollToTop;
1078
1108
  exports.smoothScrollTo = smoothScrollTo;
1079
1109
  exports.textToSlug = textToSlug;
1080
1110
  exports.toISOString = toISOString;
1111
+ exports.translatePostStatus = translatePostStatus;
1081
1112
  exports.translateStatus = translateStatus;
1082
1113
  exports.truncateText = truncateText;
1083
1114
  exports.usePasswordStrength = usePasswordStrength;
1084
1115
  exports.validateEmail = validateEmail;
1116
+ exports.validateMessage = validateMessage;
1085
1117
  exports.validatePassword = validatePassword;
1086
1118
  exports.validatePhone = validatePhone;
1087
1119
  exports.validateSlug = validateSlug;