@stndrds/constants 0.1.0-alpha.67 → 1.0.0-alpha.102

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/README.md CHANGED
@@ -60,7 +60,7 @@ const code: CurrencyCode = "EUR"; // Type-safe
60
60
  ### File Sizes
61
61
 
62
62
  ```typescript
63
- import { FILE_SIZE, RECOMMENDED_MAX_SIZES, formatBytes, mbToBytes } from "@stndrds/constants";
63
+ import { FILE_SIZE, RECOMMENDED_MAX_SIZES, mbToBytes } from "@stndrds/constants";
64
64
 
65
65
  // Intuitive constants
66
66
  const avatarMaxSize = FILE_SIZE.MB_2; // 2,097,152 bytes
@@ -74,7 +74,6 @@ const maxSize = RECOMMENDED_MAX_SIZES.VIDEO; // 500 MB
74
74
 
75
75
  // Conversion utilities
76
76
  const bytes = mbToBytes(5); // 5,242,880
77
- const formatted = formatBytes(1048576); // "1 MB"
78
77
 
79
78
  // Validation
80
79
  import { isWithinSizeLimit } from "@stndrds/constants";
@@ -91,7 +90,6 @@ import {
91
90
  WEB_IMAGES,
92
91
  OFFICE_DOCUMENTS,
93
92
  isImageMimeType,
94
- getExtensionFromMimeType,
95
93
  } from "@stndrds/constants";
96
94
 
97
95
  // Individual MIME types
@@ -107,9 +105,6 @@ const officeFiles = OFFICE_DOCUMENTS; // [PDF, DOC, DOCX, XLS, XLSX, PPT, PPTX
107
105
  const isImage = isImageMimeType("image/jpeg"); // true
108
106
  const isDoc = isDocumentMimeType("application/pdf"); // true
109
107
 
110
- // Get extension
111
- const ext = getExtensionFromMimeType("image/jpeg"); // "jpg"
112
-
113
108
  // Type-safe MIME types
114
109
  import type { MimeType, ImageMimeType } from "@stndrds/constants";
115
110
  const type: MimeType = "image/jpeg"; // Type-safe
package/dist/index.d.mts CHANGED
@@ -1,3 +1,25 @@
1
+ import { ClassValue } from 'clsx';
2
+
3
+ /**
4
+ * AI Chat constants shared between frontend and backend.
5
+ *
6
+ * These define the allowed file types, size limits, and count limits
7
+ * for AI chat attachments. Both the UI and the backend validate against
8
+ * these values to ensure consistency.
9
+ */
10
+ /** Image MIME types supported by AI chat (subset of all image types) */
11
+ declare const AI_CHAT_SUPPORTED_IMAGES: readonly ["image/jpeg", "image/png", "image/webp", "image/gif"];
12
+ /** Document MIME types supported by AI chat */
13
+ declare const AI_CHAT_SUPPORTED_DOCUMENTS: readonly ["application/pdf", "application/msword", "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "text/plain", "text/markdown", "text/csv"];
14
+ /** All MIME types supported by AI chat */
15
+ declare const AI_CHAT_SUPPORTED_MIME_TYPES: readonly ["image/jpeg", "image/png", "image/webp", "image/gif", "application/pdf", "application/msword", "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "text/plain", "text/markdown", "text/csv"];
16
+ /** Comma-separated accept string for file inputs */
17
+ declare const AI_CHAT_ACCEPTED_TYPES: string;
18
+ /** Maximum file size for AI chat attachments (50 MB) */
19
+ declare const AI_CHAT_MAX_FILE_SIZE: number;
20
+ /** Maximum number of file attachments per message */
21
+ declare const AI_CHAT_MAX_FILES = 5;
22
+
1
23
  declare const ICONS: readonly ["a-arrow-down", "a-arrow-up", "academic-hat", "accessibility", "activity-square", "activity", "add-queue", "aeroplane", "air-conditioner", "airplay", "airpods", "alarm-check", "alarm-minus", "alarm-plus", "alarm-smoke", "alarm-snooze", "alarm-x", "alarm", "album", "align-bottom", "align-horizontal", "align-left", "align-right", "align-top", "align-vertical", "alt", "ambulance", "ampersand-square", "ampersand", "ampersands", "anchor", "angry-circle", "angry-ghost", "angry-square", "annoyed-circle", "annoyed-ghost", "annoyed-square", "aperture", "api", "ar", "archive", "arrow-diagonal-one", "arrow-diagonal-two", "arrow-down-circle", "arrow-down-left-circle", "arrow-down-left-square", "arrow-down-left-waves", "arrow-down-left", "arrow-down-right-circle", "arrow-down-right-square", "arrow-down-right-waves", "arrow-down-right", "arrow-down-square", "arrow-down-waves", "arrow-down", "arrow-left-circle", "arrow-left-right", "arrow-left-square", "arrow-left-waves", "arrow-left", "arrow-long-down-left", "arrow-long-down-right", "arrow-long-down", "arrow-long-left", "arrow-long-right", "arrow-long-up-left", "arrow-long-up-right", "arrow-long-up", "arrow-right-circle", "arrow-right-square", "arrow-right-waves", "arrow-right", "arrow-up-circle", "arrow-up-down", "arrow-up-left-circle", "arrow-up-left-square", "arrow-up-left-waves", "arrow-up-left", "arrow-up-right-circle", "arrow-up-right-square", "arrow-up-right-waves", "arrow-up-right", "arrow-up-square", "arrow-up-waves", "arrow-up", "asterisk-circle", "asterisk-diamond", "asterisk-hexagon", "asterisk-octagon", "asterisk-square", "asterisk-waves", "at", "atom", "baby", "backpack", "badge", "baggage-claim", "ban", "bank", "baseball", "bath", "battery-charging-four", "battery-charging-one", "battery-charging-three", "battery-charging-two", "battery-charging", "battery-check", "battery-empty", "battery-full", "battery-minus", "battery-plus", "battery-x", "bell-check", "bell-home", "bell-minus", "bell-on", "bell-plus", "bell-slash", "bell-snooze", "bell-user", "bell-x", "bell", "binoculars", "bitcoin-circle", "bitcoin-diamond", "bitcoin-hexagon", "bitcoin-octagon", "bitcoin-square", "bitcoin-waves", "bitcoin", "bluetooth", "boat", "book-check", "book-dot", "book-home", "book-image", "book-minus", "book-open", "book-plus", "book-slash", "book-snooze", "book-user", "book-x", "book", "bookmark-check", "bookmark-dot", "bookmark-home", "bookmark-minus", "bookmark-plus", "bookmark-slash", "bookmark-snooze", "bookmark-user", "bookmark-x", "bookmark", "bounding-box", "bowl", "box", "brand-chrome", "brand-codepen", "brand-codesandbox", "brand-dribbble", "brand-facebook", "brand-figma", "brand-framer", "brand-github", "brand-gitlab", "brand-google", "brand-instagram", "brand-linkedin", "brand-pinterest", "brand-pocket", "brand-slack", "brand-spotify", "brand-telegram", "brand-threads", "brand-trello", "brand-twitch", "brand-twitter", "brand-x", "brand-youtube", "briefcase-conveyor-belt", "briefcase", "brightness-high", "brightness-low", "bubbles", "building-one", "building", "cable-car", "cake", "calendar-check", "calendar-down", "calendar-minus", "calendar-plus", "calendar-slash", "calendar-up", "calendar-x", "calendar", "camera-slash", "camera", "campfire", "cannabis", "caravan", "cart-check", "cart-minus", "cart-plus", "cart-x", "cart", "cast-screen", "center-focus", "chart-area", "chart-bar-big", "chart-bar-decreasing", "chart-bar-increasing", "chart-bar-one", "chart-bar-stacked", "chart-bar", "chart-bubble", "chart-candlestick", "chart-column-big", "chart-column-decreasing", "chart-column-increasing", "chart-column-stacked", "chart-column", "chart-gantt", "chart-graph", "chart-line", "chart-network", "chart-no-axes-column-decreasing", "chart-no-axes-column-increasing", "chart-no-axes-column", "chart-no-axes-combined", "chart-no-axes-gantt", "chart-pie-one", "chart-pie-two", "chart-pie", "chart-scatter", "chart-spline", "chat-check", "chat-dots", "chat-messages", "chat-minus", "chat-plus", "chat-x", "chat", "check-circle-one", "check-circle", "check-diamond", "check-hexagon", "check-octagon", "check-square-one", "check-square", "check-waves", "check", "chevron-double-down-left", "chevron-double-down-right", "chevron-double-down", "chevron-double-left", "chevron-double-right", "chevron-double-up-left", "chevron-double-up-right", "chevron-double-up", "chevron-down-circle", "chevron-down-left-circle", "chevron-down-left-square", "chevron-down-left-waves", "chevron-down-left", "chevron-down-right-circle", "chevron-down-right-square", "chevron-down-right-waves", "chevron-down-right", "chevron-down-square", "chevron-down-waves", "chevron-down", "chevron-left-circle", "chevron-left-square", "chevron-left-waves", "chevron-left", "chevron-right-circle", "chevron-right-square", "chevron-right-waves", "chevron-right", "chevron-up-circle", "chevron-up-down", "chevron-up-left-circle", "chevron-up-left-square", "chevron-up-left-waves", "chevron-up-left", "chevron-up-right-circle", "chevron-up-right-square", "chevron-up-right-waves", "chevron-up-right", "chevron-up-square", "chevron-up-waves", "chevron-up", "chip", "cigarette-off", "cigarette", "circle-dashed", "circle-half-circle", "circle-half", "circle-notch", "circle", "click", "clipboard", "clock-circle", "clock-diamond", "clock-eight", "clock-eleven", "clock-five", "clock-four", "clock-hand", "clock-hexagon", "clock-nine", "clock-octagon", "clock-one", "clock-seven", "clock-six", "clock-square", "clock-ten", "clock-three", "clock-twelve", "clock-two", "clock-waves", "cloud-download", "cloud-drizzle", "cloud-fog", "cloud-hail", "cloud-lightning", "cloud-moon-rain", "cloud-moon", "cloud-off", "cloud-rain-wind", "cloud-rain", "cloud-snow", "cloud-sun-rain", "cloud-sun", "cloud-upload", "cloud", "cloudy", "cocktail", "code-circle", "code-diamond", "code-hexagon", "code-octagon", "code-square", "code-waves", "code", "coffee", "cog-four", "cog-one", "cog-three", "cog-two", "cog", "columns", "command", "compass", "components", "confetti", "config-vertical", "config", "contactless-circle", "contactless", "controller", "cookie", "copy", "copyleft", "copyright-slash", "copyright", "corner-down-left", "corner-down-right", "corner-left-down", "corner-left-up", "corner-right-down", "corner-right-up", "corner-up-left", "corner-up-right", "credit-card-check", "credit-card-minus", "credit-card-plus", "credit-card-x", "credit-card", "croissant", "crop", "crosshair", "cupcake", "danger-circle", "danger-diamond", "danger-hexagon", "danger-octagon", "danger-square", "danger-triangle", "danger-waves", "danger", "database", "daze-circle", "daze-ghost", "daze-square", "delete", "desktop", "diamond", "dice-five", "dice-four", "dice-one", "dice-six", "dice-three", "dice-two", "dislike", "divide", "dollar-circle", "dollar-diamond", "dollar-hexagon", "dollar-octagon", "dollar-square", "dollar-waves", "dollar", "door-closed-locked", "door-closed", "door-open", "dots-circle", "dots-diamond", "dots-hexagon", "dots-octagon", "dots-square", "dots-vertical-circle", "dots-vertical-diamond", "dots-vertical-hexagon", "dots-vertical-octagon", "dots-vertical-square", "dots-vertical-waves", "dots-vertical", "dots-waves", "dots", "download", "drop", "droplet-off", "droplet", "droplets", "ear-slash", "ear", "earth", "eclipse", "edit-one", "edit", "egg", "eight-circle", "eight-diamond", "eight-hexagon", "eight-octagon", "eight-square", "eight-waves", "eight", "elevator", "envelope-open", "envelope", "euro-circle", "euro-diamond", "euro-hexagon", "euro-octagon", "euro-square", "euro-waves", "euro", "exclude", "external-link", "eye-slash", "eye", "face-id", "fat-arrow-down-left", "fat-arrow-down-right", "fat-arrow-down", "fat-arrow-left", "fat-arrow-right", "fat-arrow-up-left", "fat-arrow-up-right", "fat-arrow-up", "fat-corner-down-left", "fat-corner-down-right", "fat-corner-left-down", "fat-corner-left-up", "fat-corner-right-down", "fat-corner-right-up", "fat-corner-up-left", "fat-corner-up-right", "female", "file-check", "file-minus", "file-plus", "file-text", "file-x", "file", "film", "filter-one", "filter", "fine-tune", "fire", "five-circle", "five-diamond", "five-hexagon", "five-octagon", "five-square", "five-waves", "five", "flag-one", "flag", "flame-kindling", "flame", "flask", "flower-2", "flower", "folder-check", "folder-heart", "folder-kanban", "folder-minus", "folder-one", "folder-plus", "folder-slash", "folder-two", "folder-x", "folder", "forward-circle", "forward-diamond", "forward-hexagon", "forward-octagon", "forward-square", "forward-waves", "forward", "four-circle", "four-diamond", "four-hexagon", "four-octagon", "four-square", "four-waves", "four", "frame", "funny-circle", "funny-ghost", "funny-square", "gift", "git-branch", "git-circle", "git-commit", "git-diamond", "git-diff", "git-hexagon", "git-merge", "git-octagon", "git-pull-request", "git-square", "git-waves", "glasses", "globe", "grid-one", "grid", "hand", "hard-drive", "hash-circle", "hash-diamond", "hash-hexagon", "hash-octagon", "hash-square", "hash-waves", "hash", "haze", "heading-five", "heading-four", "heading-one", "heading-six", "heading-three", "heading-two", "heading", "headphones", "heart-broken", "heart-check", "heart-circle", "heart-diamond", "heart-dot", "heart-hexagon", "heart-home", "heart-minus", "heart-octagon", "heart-plus", "heart-slash", "heart-snooze", "heart-square", "heart-user", "heart-waves", "heart-x", "heart", "hexagon", "home-check", "home-minus", "home-plus", "home-smile", "home-x", "home", "image-circle", "image-rectangle", "image", "inbox-archive", "inbox-check", "inbox-down", "inbox-minus", "inbox-plus", "inbox-up", "inbox-x", "inbox", "incognito", "indifferent-circle", "indifferent-ghost", "indifferent-square", "infinity", "info-circle", "info-diamond", "info-hexagon", "info-octagon", "info-square", "info-triangle", "info-waves", "info", "intersect", "kanban", "key", "keyboard-brightness-high", "keyboard-brightness-low", "keyboard", "label", "lamp", "layers-one", "layers-three", "layers-two", "layout", "leaf", "leaves", "letter-a-circle", "letter-a-diamond", "letter-a-hexagon", "letter-a-octagon", "letter-a-square", "letter-a-waves", "letter-a", "letter-b-circle", "letter-b-diamond", "letter-b-hexagon", "letter-b-octagon", "letter-b-square", "letter-b-waves", "letter-b", "letter-c-circle", "letter-c-diamond", "letter-c-hexagon", "letter-c-octagon", "letter-c-square", "letter-c-waves", "letter-c", "letter-d-circle", "letter-d-diamond", "letter-d-hexagon", "letter-d-octagon", "letter-d-square", "letter-d-waves", "letter-d", "letter-e-circle", "letter-e-diamond", "letter-e-hexagon", "letter-e-octagon", "letter-e-square", "letter-e-waves", "letter-e", "letter-f-circle", "letter-f-diamond", "letter-f-hexagon", "letter-f-octagon", "letter-f-square", "letter-f-waves", "letter-f", "letter-g-circle", "letter-g-diamond", "letter-g-hexagon", "letter-g-octagon", "letter-g-square", "letter-g-waves", "letter-g", "letter-h-circle", "letter-h-diamond", "letter-h-hexagon", "letter-h-octagon", "letter-h-square", "letter-h-waves", "letter-h", "letter-i-circle", "letter-i-diamond", "letter-i-hexagon", "letter-i-octagon", "letter-i-square", "letter-i-waves", "letter-i", "letter-j-circle", "letter-j-diamond", "letter-j-hexagon", "letter-j-octagon", "letter-j-square", "letter-j-waves", "letter-j", "letter-k-circle", "letter-k-diamond", "letter-k-hexagon", "letter-k-octagon", "letter-k-square", "letter-k-waves", "letter-k", "letter-l-circle", "letter-l-diamond", "letter-l-hexagon", "letter-l-octagon", "letter-l-square", "letter-l-waves", "letter-l", "letter-m-circle", "letter-m-diamond", "letter-m-hexagon", "letter-m-octagon", "letter-m-square", "letter-m-waves", "letter-m", "letter-n-circle", "letter-n-diamond", "letter-n-hexagon", "letter-n-octagon", "letter-n-square", "letter-n-waves", "letter-n", "letter-o-circle", "letter-o-diamond", "letter-o-hexagon", "letter-o-octagon", "letter-o-square", "letter-o-waves", "letter-o", "letter-p-circle", "letter-p-diamond", "letter-p-hexagon", "letter-p-octagon", "letter-p-square", "letter-p-waves", "letter-p", "letter-q-circle", "letter-q-diamond", "letter-q-hexagon", "letter-q-octagon", "letter-q-square", "letter-q-waves", "letter-q", "letter-r-circle", "letter-r-diamond", "letter-r-hexagon", "letter-r-octagon", "letter-r-square", "letter-r-waves", "letter-r", "letter-s-circle", "letter-s-diamond", "letter-s-hexagon", "letter-s-octagon", "letter-s-square", "letter-s-waves", "letter-s", "letter-t-circle", "letter-t-diamond", "letter-t-hexagon", "letter-t-octagon", "letter-t-square", "letter-t-waves", "letter-t", "letter-u-circle", "letter-u-diamond", "letter-u-hexagon", "letter-u-octagon", "letter-u-square", "letter-u-waves", "letter-u", "letter-v-circle", "letter-v-diamond", "letter-v-hexagon", "letter-v-octagon", "letter-v-square", "letter-v-waves", "letter-v", "letter-w-circle", "letter-w-diamond", "letter-w-hexagon", "letter-w-octagon", "letter-w-square", "letter-w-waves", "letter-w", "letter-x-circle", "letter-x-diamond", "letter-x-hexagon", "letter-x-octagon", "letter-x-square", "letter-x-waves", "letter-x", "letter-y-circle", "letter-y-diamond", "letter-y-hexagon", "letter-y-octagon", "letter-y-square", "letter-y-waves", "letter-y", "letter-z-circle", "letter-z-diamond", "letter-z-hexagon", "letter-z-octagon", "letter-z-square", "letter-z-waves", "letter-z", "lightning-off", "lightning", "like", "line-chart-circle", "line-chart-diamond", "line-chart-hexagon", "line-chart-octagon", "line-chart-square", "line-chart-waves", "link-one", "link-two", "link", "list-check", "list-number", "list", "location-check", "location-home", "location-minus", "location-plus", "location-selected", "location-slash", "location-snooze", "location-user", "location-x", "location", "lock-circle", "lock-diamond", "lock-hexagon", "lock-keyhole", "lock-octagon", "lock-open-keyhole", "lock-open-password", "lock-open", "lock-password", "lock-square", "lock-waves", "lock", "login", "logout", "magnet", "male", "map", "mask", "math-square", "math", "maximize-one", "maximize", "menu", "message-check", "message-dots", "message-minus", "message-plus", "message-reply", "message-x", "message", "microphone-slash", "microphone", "minimize-one", "minimize", "minus-circle", "minus-diamond", "minus-hexagon", "minus-octagon", "minus-square", "minus-waves", "minus", "mobile-signal-five", "mobile-signal-four", "mobile-signal-one", "mobile-signal-three", "mobile-signal-two", "mobile", "moon-star", "moon", "mountain-snow", "mountain", "mouse-pointer", "move-diagonal-one", "move-diagonal", "move-horizontal", "move-vertical", "move", "music-circle", "music-diamond", "music-hexagon", "music-octagon", "music-square", "music-waves", "music", "myna", "navigation-one", "navigation", "nine-circle", "nine-diamond", "nine-hexagon", "nine-octagon", "nine-square", "nine-waves", "nine", "notification", "octagon", "one-circle", "one-diamond", "one-hexagon", "one-octagon", "one-square", "one-waves", "one", "option", "package", "paint", "panel-bottom-close", "panel-bottom-inactive", "panel-bottom-open", "panel-bottom", "panel-left-close", "panel-left-inactive", "panel-left-open", "panel-left", "panel-right-close", "panel-right-inactive", "panel-right-open", "panel-right", "panel-top-close", "panel-top-inactive", "panel-top-open", "panel-top", "paperclip", "parking", "password", "path", "pause-circle", "pause-diamond", "pause-hexagon", "pause-octagon", "pause-square", "pause-waves", "pause", "pen", "pencil", "percentage-circle", "percentage-diamond", "percentage-hexagon", "percentage-octagon", "percentage-square", "percentage-waves", "percentage", "pin", "pizza", "planet", "play-circle", "play-diamond", "play-hexagon", "play-octagon", "play-square", "play-waves", "play", "plus-circle", "plus-diamond", "plus-hexagon", "plus-octagon", "plus-square", "plus-waves", "plus", "pokeball", "power", "presentation", "printer", "puzzle", "question-circle", "question-diamond", "question-hexagon", "question-octagon", "question-square", "question-waves", "question", "radio", "rainbow", "reception-bell", "record", "rectangle-vertical", "rectangle", "redo", "refresh-alt", "refresh", "repeat", "rewind-circle", "rewind-diamond", "rewind-hexagon", "rewind-octagon", "rewind-square", "rewind-waves", "rewind", "rhombus", "ribbon", "rocket", "room-service", "rows", "rss", "ruler", "rupee-circle", "rupee-diamond", "rupee-hexagon", "rupee-octagon", "rupee-square", "rupee-waves", "rupee", "sad-circle", "sad-ghost", "sad-square", "save", "scan", "scissors", "sea-waves", "search-check", "search-circle", "search-diamond", "search-dot", "search-hexagon", "search-home", "search-minus", "search-octagon", "search-plus", "search-slash", "search-snooze", "search-square", "search-user", "search-waves", "search-x", "search", "select-multiple", "send", "servers", "seven-circle", "seven-diamond", "seven-hexagon", "seven-octagon", "seven-square", "seven-waves", "seven", "share", "shell", "shield-check", "shield-crossed", "shield-minus", "shield-one", "shield-plus", "shield-slash", "shield-two", "shield-x", "shield", "shooting-star", "shopping-bag", "shovel", "shrub", "shuffle-alt", "shuffle", "sidebar-alt", "sidebar", "signal-circle", "signal-diamond", "signal-hexagon", "signal-octagon", "signal-square", "signal-waves", "signal", "six-circle", "six-diamond", "six-hexagon", "six-octagon", "six-square", "six-waves", "six", "skip-back", "skip-forward", "slash-circle", "slash-diamond", "slash-hexagon", "slash-octagon", "slash-square", "slash-waves", "smile-circle", "smile-ghost", "smile-square", "snow", "snowflake", "sofa", "sort", "sparkles", "speaker", "spinner-one", "spinner", "sprout", "square-chart-gantt", "square-dashed-kanban", "square-dashed", "square-half", "square-kanban", "square", "star", "stop-circle", "stop-diamond", "stop-hexagon", "stop-octagon", "stop-square", "stop-waves", "stop", "store", "subtract", "sun-dim", "sun-medium", "sun-snow", "sun", "sunrise", "sunset", "support", "swatches", "table", "tablet", "tag-plus", "tag", "tally-five", "tally-four", "tally-one", "tally-three", "tally-two", "target", "telephone-call", "telephone-forward", "telephone-in", "telephone-missed", "telephone-out", "telephone-slash", "telephone", "tent-tree", "tent", "terminal", "text-align-center", "text-align-left", "text-align-right", "text-justify", "thermometer-snowflake", "thermometer-sun", "thermometer", "three-circle", "three-diamond", "three-hexagon", "three-octagon", "three-square", "three-waves", "three", "ticket-slash", "ticket", "toggle-left", "toggle-right", "tool", "tornado", "train", "trash-one", "trash-two", "trash", "tree-deciduous", "tree-palm", "tree-pine", "tree", "trees", "trending-down", "trending-up-down", "trending-up", "triangle", "truck", "tv", "two-circle", "two-diamond", "two-hexagon", "two-octagon", "two-square", "two-waves", "two", "type-bold", "type-italic", "type-text", "type-underline", "umbrella-off", "umbrella", "undo", "union", "unlink", "upload", "user-check", "user-circle", "user-diamond", "user-hexagon", "user-minus", "user-octagon", "user-plus", "user-settings", "user-square", "user-waves", "user-x", "user", "users-group", "users", "video-slash", "video", "volume-check", "volume-high", "volume-low", "volume-minus", "volume-none", "volume-plus", "volume-slash", "volume-x", "watch", "waves", "webcam", "wheel", "wheelchair", "wifi-check", "wifi-low", "wifi-medium", "wifi-minus", "wifi-plus", "wifi-slash", "wifi-x", "wifi", "wind-arrow-down", "wind", "winds", "wine", "wink-circle", "wink-ghost", "wink-square", "wrench", "x-circle", "x-diamond", "x-hexagon", "x-octagon", "x-square", "x-triangle", "x-waves", "x", "yen-circle", "yen-diamond", "yen-hexagon", "yen-octagon", "yen-square", "yen-waves", "yen", "zap-off", "zap", "zero-circle", "zero-diamond", "zero-hexagon", "zero-octagon", "zero-square", "zero-waves", "zero"];
2
24
  type IconName = (typeof ICONS)[number];
3
25
 
@@ -12,6 +34,12 @@ declare const DEFAULT_ATTRIBUTE_ICONS: Record<string, IconName>;
12
34
  */
13
35
  declare function getDefaultAttributeIcon(type: string): IconName;
14
36
 
37
+ /**
38
+ * Merge class names with Tailwind CSS classes.
39
+ * Uses clsx for conditional classes and tailwind-merge to handle conflicts.
40
+ */
41
+ declare function cn(...inputs: ClassValue[]): string;
42
+
15
43
  interface Color {
16
44
  /** Background color - works on both light and dark mode */
17
45
  background: string;
@@ -976,7 +1004,6 @@ type CountryNumericCode = (typeof COUNTRIES)[CountryIso2]["numericCode"];
976
1004
  declare const getCountryByIso2: (iso2: string) => Country | undefined;
977
1005
  declare const getCountryByIso3: (iso3: string) => Country | undefined;
978
1006
  declare const getAllCountries: () => Country[];
979
- declare const getCountryPhoneCode: (iso2: string) => string;
980
1007
  declare const getPhoneMaxDigits: (iso2: string) => number;
981
1008
  declare const getPhoneTrunkPrefix: (iso2: string) => string;
982
1009
  /**
@@ -987,6 +1014,41 @@ declare const isValidIso2: (code: string) => code is CountryIso2;
987
1014
  * Type guard to check if a string is a valid ISO3 country code
988
1015
  */
989
1016
  declare const isValidIso3: (code: string) => code is CountryIso3;
1017
+ /**
1018
+ * Get the display name of a country in the specified locale.
1019
+ * Defaults to French with English as fallback.
1020
+ * Uses Intl.DisplayNames for locale-aware names (e.g., "Italie" for "IT" in French).
1021
+ * The Intl.DisplayNames instance is cached at module level to avoid repeated allocations.
1022
+ *
1023
+ * @param iso2 - ISO 3166-1 alpha-2 country code (e.g., "FR", "IT")
1024
+ * @param locales - BCP 47 language tags in preference order (default: ['fr', 'en'])
1025
+ */
1026
+ declare function getCountryDisplayName(iso2: string, locales?: string | string[]): string;
1027
+ /**
1028
+ * Get the display name of a country by its ISO 3166-1 alpha-3 code.
1029
+ * Defaults to French with English as fallback.
1030
+ *
1031
+ * @param iso3 - ISO 3166-1 alpha-3 country code (e.g., "FRA", "ITA")
1032
+ * @param locales - BCP 47 language tags in preference order (default: ['fr', 'en'])
1033
+ */
1034
+ declare function getCountryDisplayNameByIso3(iso3: string, locales?: string | string[]): string;
1035
+ /**
1036
+ * Get all countries sorted alphabetically by their display name in the given locale.
1037
+ * Sorted once — callers should store the result in a module-level constant.
1038
+ *
1039
+ * @param locale - BCP 47 language tag for sorting (default: 'fr')
1040
+ */
1041
+ declare function getSortedCountries(locale?: string): Country[];
1042
+ /**
1043
+ * Strip the national trunk prefix from a phone number.
1044
+ * Pure string operation, no external dependencies.
1045
+ *
1046
+ * @example
1047
+ * stripTrunkPrefix("0612345678", "0") // "612345678"
1048
+ * stripTrunkPrefix("612345678", "0") // "612345678" (no prefix to strip)
1049
+ * stripTrunkPrefix("06301234567", "06") // "301234567" (Hungary)
1050
+ */
1051
+ declare function stripTrunkPrefix(phoneNumber: string, trunkPrefix: string): string;
990
1052
 
991
1053
  interface Currency {
992
1054
  code: string;
@@ -1514,16 +1576,19 @@ declare const RECOMMENDED_MAX_SIZES: {
1514
1576
  readonly ARCHIVE: number;
1515
1577
  };
1516
1578
  /**
1517
- * Convert bytes to human-readable format
1579
+ * Format a byte count into a human-readable string
1580
+ *
1581
+ * @param bytes - Number of bytes
1582
+ * @param decimals - Number of decimal places (default: 2)
1583
+ * @returns Formatted string, e.g. "1.5 MB"
1518
1584
  *
1519
1585
  * @example
1520
1586
  * ```typescript
1521
- * formatBytes(1024) // "1 KB"
1522
- * formatBytes(1048576) // "1 MB"
1523
- * formatBytes(1073741824) // "1 GB"
1587
+ * formatBytes(1048576) // "1 MB"
1588
+ * formatBytes(1500, 1) // "1.5 KB"
1524
1589
  * ```
1525
1590
  */
1526
- declare const formatBytes: (bytes: number, decimals?: number) => string;
1591
+ declare function formatBytes(bytes: number, decimals?: number): string;
1527
1592
  /**
1528
1593
  * Convert megabytes to bytes
1529
1594
  *
@@ -1659,12 +1724,6 @@ declare const FONT_MIME_TYPES: {
1659
1724
  readonly EOT: "application/vnd.ms-fontobject";
1660
1725
  };
1661
1726
  declare const FONT_MIME_TYPES_ARRAY: ("font/ttf" | "font/otf" | "font/woff" | "font/woff2" | "application/vnd.ms-fontobject")[];
1662
- declare const OTHER_MIME_TYPES: {
1663
- readonly BINARY: "application/octet-stream";
1664
- readonly FORM_DATA: "multipart/form-data";
1665
- readonly JSON_LD: "application/ld+json";
1666
- readonly XHTML: "application/xhtml+xml";
1667
- };
1668
1727
  /**
1669
1728
  * All image MIME types
1670
1729
  */
@@ -1708,7 +1767,7 @@ declare const MEDIA: readonly ("image/jpeg" | "image/png" | "image/gif" | "image
1708
1767
  /**
1709
1768
  * All MIME types combined
1710
1769
  */
1711
- declare const ALL_MIME_TYPES: readonly ("image/jpeg" | "image/png" | "image/gif" | "image/webp" | "image/svg+xml" | "image/bmp" | "image/tiff" | "image/x-icon" | "image/heic" | "image/heif" | "application/pdf" | "application/msword" | "application/vnd.openxmlformats-officedocument.wordprocessingml.document" | "application/vnd.ms-excel" | "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" | "application/vnd.ms-powerpoint" | "application/vnd.openxmlformats-officedocument.presentationml.presentation" | "application/vnd.oasis.opendocument.text" | "application/vnd.oasis.opendocument.spreadsheet" | "application/vnd.oasis.opendocument.presentation" | "application/rtf" | "text/plain" | "text/csv" | "text/markdown" | "application/zip" | "application/vnd.rar" | "application/x-tar" | "application/gzip" | "application/x-7z-compressed" | "application/x-bzip2" | "audio/mpeg" | "audio/wav" | "audio/ogg" | "audio/aac" | "audio/flac" | "audio/mp4" | "audio/webm" | "video/mp4" | "video/webm" | "video/ogg" | "video/x-msvideo" | "video/quicktime" | "video/x-matroska" | "video/x-flv" | "video/x-ms-wmv" | "video/mpeg" | "text/javascript" | "text/typescript" | "application/json" | "application/xml" | "text/html" | "text/css" | "text/x-python" | "text/x-java-source" | "text/x-c" | "text/x-c++" | "application/x-yaml" | "application/sql" | "font/ttf" | "font/otf" | "font/woff" | "font/woff2" | "application/vnd.ms-fontobject" | "application/octet-stream" | "multipart/form-data" | "application/ld+json" | "application/xhtml+xml")[];
1770
+ declare const ALL_MIME_TYPES: readonly ("image/jpeg" | "image/png" | "image/gif" | "image/webp" | "image/svg+xml" | "image/bmp" | "image/tiff" | "image/x-icon" | "image/heic" | "image/heif" | "application/pdf" | "application/msword" | "application/vnd.openxmlformats-officedocument.wordprocessingml.document" | "application/vnd.ms-excel" | "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" | "application/vnd.ms-powerpoint" | "application/vnd.openxmlformats-officedocument.presentationml.presentation" | "application/vnd.oasis.opendocument.text" | "application/vnd.oasis.opendocument.spreadsheet" | "application/vnd.oasis.opendocument.presentation" | "application/rtf" | "text/plain" | "text/csv" | "text/markdown" | "application/zip" | "application/vnd.rar" | "application/x-tar" | "application/gzip" | "application/x-7z-compressed" | "application/x-bzip2" | "audio/mpeg" | "audio/wav" | "audio/ogg" | "audio/aac" | "audio/flac" | "audio/mp4" | "audio/webm" | "video/mp4" | "video/webm" | "video/ogg" | "video/x-msvideo" | "video/quicktime" | "video/x-matroska" | "video/x-flv" | "video/x-ms-wmv" | "video/mpeg" | "text/javascript" | "text/typescript" | "application/json" | "application/xml" | "text/html" | "text/css" | "text/x-python" | "text/x-java-source" | "text/x-c" | "text/x-c++" | "application/x-yaml" | "application/sql" | "font/ttf" | "font/otf" | "font/woff" | "font/woff2" | "application/vnd.ms-fontobject")[];
1712
1771
  /**
1713
1772
  * Union type of all valid MIME types
1714
1773
  */
@@ -1765,9 +1824,5 @@ declare const isVideoMimeType: (mimeType: string) => boolean;
1765
1824
  * Check if a MIME type is code
1766
1825
  */
1767
1826
  declare const isCodeMimeType: (mimeType: string) => boolean;
1768
- /**
1769
- * Get file extension from MIME type
1770
- */
1771
- declare const getExtensionFromMimeType: (mimeType: string) => string | null;
1772
1827
 
1773
- export { ALL_MIME_TYPES, ARCHIVES, ARCHIVE_MIME_TYPES, ARCHIVE_MIME_TYPES_ARRAY, AUDIO, AUDIO_MIME_TYPES, AUDIO_MIME_TYPES_ARRAY, type ArchiveMimeType, type AudioMimeType, BYTES, CODE, CODE_MIME_TYPES, CODE_MIME_TYPES_ARRAY, COLORS, COLOR_GROUPS, COUNTRIES, CURRENCIES, type CodeMimeType, type Color, type ColorBackground, type ColorBorder, type ColorGroup, type ColorGroupColors, type ColorIcon, type ColorId, type ColorText, type Country, type CountryIso2, type CountryIso3, type CountryName, type CountryNumericCode, type CountryPhoneCode, type Currency, type CurrencyCode, type CurrencyName, type CurrencySymbol, DEFAULT_ATTRIBUTE_ICONS, DOCUMENTS, DOCUMENT_MIME_TYPES, DOCUMENT_MIME_TYPES_ARRAY, type DocumentMimeType, FILE_SIZE, FONTS, FONT_MIME_TYPES, FONT_MIME_TYPES_ARRAY, type FontMimeType, GIGABYTES, ICONS, IMAGES, IMAGE_MIME_TYPES, IMAGE_MIME_TYPES_ARRAY, type IconName, type ImageMimeType, KILOBYTES, MEDIA, MEGABYTES, type MimeType, OFFICE_DOCUMENTS, OTHER_MIME_TYPES, RECOMMENDED_MAX_SIZES, STATUS_COLORS, type StatusColorGroup, VIDEO, VIDEO_MIME_TYPES, VIDEO_MIME_TYPES_ARRAY, type VideoMimeType, WEB_IMAGES, bytesToGb, bytesToMb, formatBytes, gbToBytes, getAllColors, getAllCountries, getAllCurrencies, getColor, getColorIds, getColorsByGroup, getCountryByIso2, getCountryByIso3, getCountryPhoneCode, getCurrency, getCurrencySymbol, getDefaultAttributeIcon, getExtensionFromMimeType, getPhoneMaxDigits, getPhoneTrunkPrefix, isArchiveMimeType, isAudioMimeType, isCodeMimeType, isDocumentMimeType, isImageMimeType, isValidColorId, isValidCurrencyCode, isValidIso2, isValidIso3, isVideoMimeType, isWithinSizeLimit, mbToBytes };
1828
+ export { AI_CHAT_ACCEPTED_TYPES, AI_CHAT_MAX_FILES, AI_CHAT_MAX_FILE_SIZE, AI_CHAT_SUPPORTED_DOCUMENTS, AI_CHAT_SUPPORTED_IMAGES, AI_CHAT_SUPPORTED_MIME_TYPES, ALL_MIME_TYPES, ARCHIVES, ARCHIVE_MIME_TYPES, ARCHIVE_MIME_TYPES_ARRAY, AUDIO, AUDIO_MIME_TYPES, AUDIO_MIME_TYPES_ARRAY, type ArchiveMimeType, type AudioMimeType, BYTES, CODE, CODE_MIME_TYPES, CODE_MIME_TYPES_ARRAY, COLORS, COLOR_GROUPS, COUNTRIES, CURRENCIES, type CodeMimeType, type Color, type ColorBackground, type ColorBorder, type ColorGroup, type ColorGroupColors, type ColorIcon, type ColorId, type ColorText, type Country, type CountryIso2, type CountryIso3, type CountryName, type CountryNumericCode, type CountryPhoneCode, type Currency, type CurrencyCode, type CurrencyName, type CurrencySymbol, DEFAULT_ATTRIBUTE_ICONS, DOCUMENTS, DOCUMENT_MIME_TYPES, DOCUMENT_MIME_TYPES_ARRAY, type DocumentMimeType, FILE_SIZE, FONTS, FONT_MIME_TYPES, FONT_MIME_TYPES_ARRAY, type FontMimeType, GIGABYTES, ICONS, IMAGES, IMAGE_MIME_TYPES, IMAGE_MIME_TYPES_ARRAY, type IconName, type ImageMimeType, KILOBYTES, MEDIA, MEGABYTES, type MimeType, OFFICE_DOCUMENTS, RECOMMENDED_MAX_SIZES, STATUS_COLORS, type StatusColorGroup, VIDEO, VIDEO_MIME_TYPES, VIDEO_MIME_TYPES_ARRAY, type VideoMimeType, WEB_IMAGES, bytesToGb, bytesToMb, cn, formatBytes, gbToBytes, getAllColors, getAllCountries, getAllCurrencies, getColor, getColorIds, getColorsByGroup, getCountryByIso2, getCountryByIso3, getCountryDisplayName, getCountryDisplayNameByIso3, getCurrency, getCurrencySymbol, getDefaultAttributeIcon, getPhoneMaxDigits, getPhoneTrunkPrefix, getSortedCountries, isArchiveMimeType, isAudioMimeType, isCodeMimeType, isDocumentMimeType, isImageMimeType, isValidColorId, isValidCurrencyCode, isValidIso2, isValidIso3, isVideoMimeType, isWithinSizeLimit, mbToBytes, stripTrunkPrefix };
package/dist/index.d.ts CHANGED
@@ -1,3 +1,25 @@
1
+ import { ClassValue } from 'clsx';
2
+
3
+ /**
4
+ * AI Chat constants shared between frontend and backend.
5
+ *
6
+ * These define the allowed file types, size limits, and count limits
7
+ * for AI chat attachments. Both the UI and the backend validate against
8
+ * these values to ensure consistency.
9
+ */
10
+ /** Image MIME types supported by AI chat (subset of all image types) */
11
+ declare const AI_CHAT_SUPPORTED_IMAGES: readonly ["image/jpeg", "image/png", "image/webp", "image/gif"];
12
+ /** Document MIME types supported by AI chat */
13
+ declare const AI_CHAT_SUPPORTED_DOCUMENTS: readonly ["application/pdf", "application/msword", "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "text/plain", "text/markdown", "text/csv"];
14
+ /** All MIME types supported by AI chat */
15
+ declare const AI_CHAT_SUPPORTED_MIME_TYPES: readonly ["image/jpeg", "image/png", "image/webp", "image/gif", "application/pdf", "application/msword", "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "text/plain", "text/markdown", "text/csv"];
16
+ /** Comma-separated accept string for file inputs */
17
+ declare const AI_CHAT_ACCEPTED_TYPES: string;
18
+ /** Maximum file size for AI chat attachments (50 MB) */
19
+ declare const AI_CHAT_MAX_FILE_SIZE: number;
20
+ /** Maximum number of file attachments per message */
21
+ declare const AI_CHAT_MAX_FILES = 5;
22
+
1
23
  declare const ICONS: readonly ["a-arrow-down", "a-arrow-up", "academic-hat", "accessibility", "activity-square", "activity", "add-queue", "aeroplane", "air-conditioner", "airplay", "airpods", "alarm-check", "alarm-minus", "alarm-plus", "alarm-smoke", "alarm-snooze", "alarm-x", "alarm", "album", "align-bottom", "align-horizontal", "align-left", "align-right", "align-top", "align-vertical", "alt", "ambulance", "ampersand-square", "ampersand", "ampersands", "anchor", "angry-circle", "angry-ghost", "angry-square", "annoyed-circle", "annoyed-ghost", "annoyed-square", "aperture", "api", "ar", "archive", "arrow-diagonal-one", "arrow-diagonal-two", "arrow-down-circle", "arrow-down-left-circle", "arrow-down-left-square", "arrow-down-left-waves", "arrow-down-left", "arrow-down-right-circle", "arrow-down-right-square", "arrow-down-right-waves", "arrow-down-right", "arrow-down-square", "arrow-down-waves", "arrow-down", "arrow-left-circle", "arrow-left-right", "arrow-left-square", "arrow-left-waves", "arrow-left", "arrow-long-down-left", "arrow-long-down-right", "arrow-long-down", "arrow-long-left", "arrow-long-right", "arrow-long-up-left", "arrow-long-up-right", "arrow-long-up", "arrow-right-circle", "arrow-right-square", "arrow-right-waves", "arrow-right", "arrow-up-circle", "arrow-up-down", "arrow-up-left-circle", "arrow-up-left-square", "arrow-up-left-waves", "arrow-up-left", "arrow-up-right-circle", "arrow-up-right-square", "arrow-up-right-waves", "arrow-up-right", "arrow-up-square", "arrow-up-waves", "arrow-up", "asterisk-circle", "asterisk-diamond", "asterisk-hexagon", "asterisk-octagon", "asterisk-square", "asterisk-waves", "at", "atom", "baby", "backpack", "badge", "baggage-claim", "ban", "bank", "baseball", "bath", "battery-charging-four", "battery-charging-one", "battery-charging-three", "battery-charging-two", "battery-charging", "battery-check", "battery-empty", "battery-full", "battery-minus", "battery-plus", "battery-x", "bell-check", "bell-home", "bell-minus", "bell-on", "bell-plus", "bell-slash", "bell-snooze", "bell-user", "bell-x", "bell", "binoculars", "bitcoin-circle", "bitcoin-diamond", "bitcoin-hexagon", "bitcoin-octagon", "bitcoin-square", "bitcoin-waves", "bitcoin", "bluetooth", "boat", "book-check", "book-dot", "book-home", "book-image", "book-minus", "book-open", "book-plus", "book-slash", "book-snooze", "book-user", "book-x", "book", "bookmark-check", "bookmark-dot", "bookmark-home", "bookmark-minus", "bookmark-plus", "bookmark-slash", "bookmark-snooze", "bookmark-user", "bookmark-x", "bookmark", "bounding-box", "bowl", "box", "brand-chrome", "brand-codepen", "brand-codesandbox", "brand-dribbble", "brand-facebook", "brand-figma", "brand-framer", "brand-github", "brand-gitlab", "brand-google", "brand-instagram", "brand-linkedin", "brand-pinterest", "brand-pocket", "brand-slack", "brand-spotify", "brand-telegram", "brand-threads", "brand-trello", "brand-twitch", "brand-twitter", "brand-x", "brand-youtube", "briefcase-conveyor-belt", "briefcase", "brightness-high", "brightness-low", "bubbles", "building-one", "building", "cable-car", "cake", "calendar-check", "calendar-down", "calendar-minus", "calendar-plus", "calendar-slash", "calendar-up", "calendar-x", "calendar", "camera-slash", "camera", "campfire", "cannabis", "caravan", "cart-check", "cart-minus", "cart-plus", "cart-x", "cart", "cast-screen", "center-focus", "chart-area", "chart-bar-big", "chart-bar-decreasing", "chart-bar-increasing", "chart-bar-one", "chart-bar-stacked", "chart-bar", "chart-bubble", "chart-candlestick", "chart-column-big", "chart-column-decreasing", "chart-column-increasing", "chart-column-stacked", "chart-column", "chart-gantt", "chart-graph", "chart-line", "chart-network", "chart-no-axes-column-decreasing", "chart-no-axes-column-increasing", "chart-no-axes-column", "chart-no-axes-combined", "chart-no-axes-gantt", "chart-pie-one", "chart-pie-two", "chart-pie", "chart-scatter", "chart-spline", "chat-check", "chat-dots", "chat-messages", "chat-minus", "chat-plus", "chat-x", "chat", "check-circle-one", "check-circle", "check-diamond", "check-hexagon", "check-octagon", "check-square-one", "check-square", "check-waves", "check", "chevron-double-down-left", "chevron-double-down-right", "chevron-double-down", "chevron-double-left", "chevron-double-right", "chevron-double-up-left", "chevron-double-up-right", "chevron-double-up", "chevron-down-circle", "chevron-down-left-circle", "chevron-down-left-square", "chevron-down-left-waves", "chevron-down-left", "chevron-down-right-circle", "chevron-down-right-square", "chevron-down-right-waves", "chevron-down-right", "chevron-down-square", "chevron-down-waves", "chevron-down", "chevron-left-circle", "chevron-left-square", "chevron-left-waves", "chevron-left", "chevron-right-circle", "chevron-right-square", "chevron-right-waves", "chevron-right", "chevron-up-circle", "chevron-up-down", "chevron-up-left-circle", "chevron-up-left-square", "chevron-up-left-waves", "chevron-up-left", "chevron-up-right-circle", "chevron-up-right-square", "chevron-up-right-waves", "chevron-up-right", "chevron-up-square", "chevron-up-waves", "chevron-up", "chip", "cigarette-off", "cigarette", "circle-dashed", "circle-half-circle", "circle-half", "circle-notch", "circle", "click", "clipboard", "clock-circle", "clock-diamond", "clock-eight", "clock-eleven", "clock-five", "clock-four", "clock-hand", "clock-hexagon", "clock-nine", "clock-octagon", "clock-one", "clock-seven", "clock-six", "clock-square", "clock-ten", "clock-three", "clock-twelve", "clock-two", "clock-waves", "cloud-download", "cloud-drizzle", "cloud-fog", "cloud-hail", "cloud-lightning", "cloud-moon-rain", "cloud-moon", "cloud-off", "cloud-rain-wind", "cloud-rain", "cloud-snow", "cloud-sun-rain", "cloud-sun", "cloud-upload", "cloud", "cloudy", "cocktail", "code-circle", "code-diamond", "code-hexagon", "code-octagon", "code-square", "code-waves", "code", "coffee", "cog-four", "cog-one", "cog-three", "cog-two", "cog", "columns", "command", "compass", "components", "confetti", "config-vertical", "config", "contactless-circle", "contactless", "controller", "cookie", "copy", "copyleft", "copyright-slash", "copyright", "corner-down-left", "corner-down-right", "corner-left-down", "corner-left-up", "corner-right-down", "corner-right-up", "corner-up-left", "corner-up-right", "credit-card-check", "credit-card-minus", "credit-card-plus", "credit-card-x", "credit-card", "croissant", "crop", "crosshair", "cupcake", "danger-circle", "danger-diamond", "danger-hexagon", "danger-octagon", "danger-square", "danger-triangle", "danger-waves", "danger", "database", "daze-circle", "daze-ghost", "daze-square", "delete", "desktop", "diamond", "dice-five", "dice-four", "dice-one", "dice-six", "dice-three", "dice-two", "dislike", "divide", "dollar-circle", "dollar-diamond", "dollar-hexagon", "dollar-octagon", "dollar-square", "dollar-waves", "dollar", "door-closed-locked", "door-closed", "door-open", "dots-circle", "dots-diamond", "dots-hexagon", "dots-octagon", "dots-square", "dots-vertical-circle", "dots-vertical-diamond", "dots-vertical-hexagon", "dots-vertical-octagon", "dots-vertical-square", "dots-vertical-waves", "dots-vertical", "dots-waves", "dots", "download", "drop", "droplet-off", "droplet", "droplets", "ear-slash", "ear", "earth", "eclipse", "edit-one", "edit", "egg", "eight-circle", "eight-diamond", "eight-hexagon", "eight-octagon", "eight-square", "eight-waves", "eight", "elevator", "envelope-open", "envelope", "euro-circle", "euro-diamond", "euro-hexagon", "euro-octagon", "euro-square", "euro-waves", "euro", "exclude", "external-link", "eye-slash", "eye", "face-id", "fat-arrow-down-left", "fat-arrow-down-right", "fat-arrow-down", "fat-arrow-left", "fat-arrow-right", "fat-arrow-up-left", "fat-arrow-up-right", "fat-arrow-up", "fat-corner-down-left", "fat-corner-down-right", "fat-corner-left-down", "fat-corner-left-up", "fat-corner-right-down", "fat-corner-right-up", "fat-corner-up-left", "fat-corner-up-right", "female", "file-check", "file-minus", "file-plus", "file-text", "file-x", "file", "film", "filter-one", "filter", "fine-tune", "fire", "five-circle", "five-diamond", "five-hexagon", "five-octagon", "five-square", "five-waves", "five", "flag-one", "flag", "flame-kindling", "flame", "flask", "flower-2", "flower", "folder-check", "folder-heart", "folder-kanban", "folder-minus", "folder-one", "folder-plus", "folder-slash", "folder-two", "folder-x", "folder", "forward-circle", "forward-diamond", "forward-hexagon", "forward-octagon", "forward-square", "forward-waves", "forward", "four-circle", "four-diamond", "four-hexagon", "four-octagon", "four-square", "four-waves", "four", "frame", "funny-circle", "funny-ghost", "funny-square", "gift", "git-branch", "git-circle", "git-commit", "git-diamond", "git-diff", "git-hexagon", "git-merge", "git-octagon", "git-pull-request", "git-square", "git-waves", "glasses", "globe", "grid-one", "grid", "hand", "hard-drive", "hash-circle", "hash-diamond", "hash-hexagon", "hash-octagon", "hash-square", "hash-waves", "hash", "haze", "heading-five", "heading-four", "heading-one", "heading-six", "heading-three", "heading-two", "heading", "headphones", "heart-broken", "heart-check", "heart-circle", "heart-diamond", "heart-dot", "heart-hexagon", "heart-home", "heart-minus", "heart-octagon", "heart-plus", "heart-slash", "heart-snooze", "heart-square", "heart-user", "heart-waves", "heart-x", "heart", "hexagon", "home-check", "home-minus", "home-plus", "home-smile", "home-x", "home", "image-circle", "image-rectangle", "image", "inbox-archive", "inbox-check", "inbox-down", "inbox-minus", "inbox-plus", "inbox-up", "inbox-x", "inbox", "incognito", "indifferent-circle", "indifferent-ghost", "indifferent-square", "infinity", "info-circle", "info-diamond", "info-hexagon", "info-octagon", "info-square", "info-triangle", "info-waves", "info", "intersect", "kanban", "key", "keyboard-brightness-high", "keyboard-brightness-low", "keyboard", "label", "lamp", "layers-one", "layers-three", "layers-two", "layout", "leaf", "leaves", "letter-a-circle", "letter-a-diamond", "letter-a-hexagon", "letter-a-octagon", "letter-a-square", "letter-a-waves", "letter-a", "letter-b-circle", "letter-b-diamond", "letter-b-hexagon", "letter-b-octagon", "letter-b-square", "letter-b-waves", "letter-b", "letter-c-circle", "letter-c-diamond", "letter-c-hexagon", "letter-c-octagon", "letter-c-square", "letter-c-waves", "letter-c", "letter-d-circle", "letter-d-diamond", "letter-d-hexagon", "letter-d-octagon", "letter-d-square", "letter-d-waves", "letter-d", "letter-e-circle", "letter-e-diamond", "letter-e-hexagon", "letter-e-octagon", "letter-e-square", "letter-e-waves", "letter-e", "letter-f-circle", "letter-f-diamond", "letter-f-hexagon", "letter-f-octagon", "letter-f-square", "letter-f-waves", "letter-f", "letter-g-circle", "letter-g-diamond", "letter-g-hexagon", "letter-g-octagon", "letter-g-square", "letter-g-waves", "letter-g", "letter-h-circle", "letter-h-diamond", "letter-h-hexagon", "letter-h-octagon", "letter-h-square", "letter-h-waves", "letter-h", "letter-i-circle", "letter-i-diamond", "letter-i-hexagon", "letter-i-octagon", "letter-i-square", "letter-i-waves", "letter-i", "letter-j-circle", "letter-j-diamond", "letter-j-hexagon", "letter-j-octagon", "letter-j-square", "letter-j-waves", "letter-j", "letter-k-circle", "letter-k-diamond", "letter-k-hexagon", "letter-k-octagon", "letter-k-square", "letter-k-waves", "letter-k", "letter-l-circle", "letter-l-diamond", "letter-l-hexagon", "letter-l-octagon", "letter-l-square", "letter-l-waves", "letter-l", "letter-m-circle", "letter-m-diamond", "letter-m-hexagon", "letter-m-octagon", "letter-m-square", "letter-m-waves", "letter-m", "letter-n-circle", "letter-n-diamond", "letter-n-hexagon", "letter-n-octagon", "letter-n-square", "letter-n-waves", "letter-n", "letter-o-circle", "letter-o-diamond", "letter-o-hexagon", "letter-o-octagon", "letter-o-square", "letter-o-waves", "letter-o", "letter-p-circle", "letter-p-diamond", "letter-p-hexagon", "letter-p-octagon", "letter-p-square", "letter-p-waves", "letter-p", "letter-q-circle", "letter-q-diamond", "letter-q-hexagon", "letter-q-octagon", "letter-q-square", "letter-q-waves", "letter-q", "letter-r-circle", "letter-r-diamond", "letter-r-hexagon", "letter-r-octagon", "letter-r-square", "letter-r-waves", "letter-r", "letter-s-circle", "letter-s-diamond", "letter-s-hexagon", "letter-s-octagon", "letter-s-square", "letter-s-waves", "letter-s", "letter-t-circle", "letter-t-diamond", "letter-t-hexagon", "letter-t-octagon", "letter-t-square", "letter-t-waves", "letter-t", "letter-u-circle", "letter-u-diamond", "letter-u-hexagon", "letter-u-octagon", "letter-u-square", "letter-u-waves", "letter-u", "letter-v-circle", "letter-v-diamond", "letter-v-hexagon", "letter-v-octagon", "letter-v-square", "letter-v-waves", "letter-v", "letter-w-circle", "letter-w-diamond", "letter-w-hexagon", "letter-w-octagon", "letter-w-square", "letter-w-waves", "letter-w", "letter-x-circle", "letter-x-diamond", "letter-x-hexagon", "letter-x-octagon", "letter-x-square", "letter-x-waves", "letter-x", "letter-y-circle", "letter-y-diamond", "letter-y-hexagon", "letter-y-octagon", "letter-y-square", "letter-y-waves", "letter-y", "letter-z-circle", "letter-z-diamond", "letter-z-hexagon", "letter-z-octagon", "letter-z-square", "letter-z-waves", "letter-z", "lightning-off", "lightning", "like", "line-chart-circle", "line-chart-diamond", "line-chart-hexagon", "line-chart-octagon", "line-chart-square", "line-chart-waves", "link-one", "link-two", "link", "list-check", "list-number", "list", "location-check", "location-home", "location-minus", "location-plus", "location-selected", "location-slash", "location-snooze", "location-user", "location-x", "location", "lock-circle", "lock-diamond", "lock-hexagon", "lock-keyhole", "lock-octagon", "lock-open-keyhole", "lock-open-password", "lock-open", "lock-password", "lock-square", "lock-waves", "lock", "login", "logout", "magnet", "male", "map", "mask", "math-square", "math", "maximize-one", "maximize", "menu", "message-check", "message-dots", "message-minus", "message-plus", "message-reply", "message-x", "message", "microphone-slash", "microphone", "minimize-one", "minimize", "minus-circle", "minus-diamond", "minus-hexagon", "minus-octagon", "minus-square", "minus-waves", "minus", "mobile-signal-five", "mobile-signal-four", "mobile-signal-one", "mobile-signal-three", "mobile-signal-two", "mobile", "moon-star", "moon", "mountain-snow", "mountain", "mouse-pointer", "move-diagonal-one", "move-diagonal", "move-horizontal", "move-vertical", "move", "music-circle", "music-diamond", "music-hexagon", "music-octagon", "music-square", "music-waves", "music", "myna", "navigation-one", "navigation", "nine-circle", "nine-diamond", "nine-hexagon", "nine-octagon", "nine-square", "nine-waves", "nine", "notification", "octagon", "one-circle", "one-diamond", "one-hexagon", "one-octagon", "one-square", "one-waves", "one", "option", "package", "paint", "panel-bottom-close", "panel-bottom-inactive", "panel-bottom-open", "panel-bottom", "panel-left-close", "panel-left-inactive", "panel-left-open", "panel-left", "panel-right-close", "panel-right-inactive", "panel-right-open", "panel-right", "panel-top-close", "panel-top-inactive", "panel-top-open", "panel-top", "paperclip", "parking", "password", "path", "pause-circle", "pause-diamond", "pause-hexagon", "pause-octagon", "pause-square", "pause-waves", "pause", "pen", "pencil", "percentage-circle", "percentage-diamond", "percentage-hexagon", "percentage-octagon", "percentage-square", "percentage-waves", "percentage", "pin", "pizza", "planet", "play-circle", "play-diamond", "play-hexagon", "play-octagon", "play-square", "play-waves", "play", "plus-circle", "plus-diamond", "plus-hexagon", "plus-octagon", "plus-square", "plus-waves", "plus", "pokeball", "power", "presentation", "printer", "puzzle", "question-circle", "question-diamond", "question-hexagon", "question-octagon", "question-square", "question-waves", "question", "radio", "rainbow", "reception-bell", "record", "rectangle-vertical", "rectangle", "redo", "refresh-alt", "refresh", "repeat", "rewind-circle", "rewind-diamond", "rewind-hexagon", "rewind-octagon", "rewind-square", "rewind-waves", "rewind", "rhombus", "ribbon", "rocket", "room-service", "rows", "rss", "ruler", "rupee-circle", "rupee-diamond", "rupee-hexagon", "rupee-octagon", "rupee-square", "rupee-waves", "rupee", "sad-circle", "sad-ghost", "sad-square", "save", "scan", "scissors", "sea-waves", "search-check", "search-circle", "search-diamond", "search-dot", "search-hexagon", "search-home", "search-minus", "search-octagon", "search-plus", "search-slash", "search-snooze", "search-square", "search-user", "search-waves", "search-x", "search", "select-multiple", "send", "servers", "seven-circle", "seven-diamond", "seven-hexagon", "seven-octagon", "seven-square", "seven-waves", "seven", "share", "shell", "shield-check", "shield-crossed", "shield-minus", "shield-one", "shield-plus", "shield-slash", "shield-two", "shield-x", "shield", "shooting-star", "shopping-bag", "shovel", "shrub", "shuffle-alt", "shuffle", "sidebar-alt", "sidebar", "signal-circle", "signal-diamond", "signal-hexagon", "signal-octagon", "signal-square", "signal-waves", "signal", "six-circle", "six-diamond", "six-hexagon", "six-octagon", "six-square", "six-waves", "six", "skip-back", "skip-forward", "slash-circle", "slash-diamond", "slash-hexagon", "slash-octagon", "slash-square", "slash-waves", "smile-circle", "smile-ghost", "smile-square", "snow", "snowflake", "sofa", "sort", "sparkles", "speaker", "spinner-one", "spinner", "sprout", "square-chart-gantt", "square-dashed-kanban", "square-dashed", "square-half", "square-kanban", "square", "star", "stop-circle", "stop-diamond", "stop-hexagon", "stop-octagon", "stop-square", "stop-waves", "stop", "store", "subtract", "sun-dim", "sun-medium", "sun-snow", "sun", "sunrise", "sunset", "support", "swatches", "table", "tablet", "tag-plus", "tag", "tally-five", "tally-four", "tally-one", "tally-three", "tally-two", "target", "telephone-call", "telephone-forward", "telephone-in", "telephone-missed", "telephone-out", "telephone-slash", "telephone", "tent-tree", "tent", "terminal", "text-align-center", "text-align-left", "text-align-right", "text-justify", "thermometer-snowflake", "thermometer-sun", "thermometer", "three-circle", "three-diamond", "three-hexagon", "three-octagon", "three-square", "three-waves", "three", "ticket-slash", "ticket", "toggle-left", "toggle-right", "tool", "tornado", "train", "trash-one", "trash-two", "trash", "tree-deciduous", "tree-palm", "tree-pine", "tree", "trees", "trending-down", "trending-up-down", "trending-up", "triangle", "truck", "tv", "two-circle", "two-diamond", "two-hexagon", "two-octagon", "two-square", "two-waves", "two", "type-bold", "type-italic", "type-text", "type-underline", "umbrella-off", "umbrella", "undo", "union", "unlink", "upload", "user-check", "user-circle", "user-diamond", "user-hexagon", "user-minus", "user-octagon", "user-plus", "user-settings", "user-square", "user-waves", "user-x", "user", "users-group", "users", "video-slash", "video", "volume-check", "volume-high", "volume-low", "volume-minus", "volume-none", "volume-plus", "volume-slash", "volume-x", "watch", "waves", "webcam", "wheel", "wheelchair", "wifi-check", "wifi-low", "wifi-medium", "wifi-minus", "wifi-plus", "wifi-slash", "wifi-x", "wifi", "wind-arrow-down", "wind", "winds", "wine", "wink-circle", "wink-ghost", "wink-square", "wrench", "x-circle", "x-diamond", "x-hexagon", "x-octagon", "x-square", "x-triangle", "x-waves", "x", "yen-circle", "yen-diamond", "yen-hexagon", "yen-octagon", "yen-square", "yen-waves", "yen", "zap-off", "zap", "zero-circle", "zero-diamond", "zero-hexagon", "zero-octagon", "zero-square", "zero-waves", "zero"];
2
24
  type IconName = (typeof ICONS)[number];
3
25
 
@@ -12,6 +34,12 @@ declare const DEFAULT_ATTRIBUTE_ICONS: Record<string, IconName>;
12
34
  */
13
35
  declare function getDefaultAttributeIcon(type: string): IconName;
14
36
 
37
+ /**
38
+ * Merge class names with Tailwind CSS classes.
39
+ * Uses clsx for conditional classes and tailwind-merge to handle conflicts.
40
+ */
41
+ declare function cn(...inputs: ClassValue[]): string;
42
+
15
43
  interface Color {
16
44
  /** Background color - works on both light and dark mode */
17
45
  background: string;
@@ -976,7 +1004,6 @@ type CountryNumericCode = (typeof COUNTRIES)[CountryIso2]["numericCode"];
976
1004
  declare const getCountryByIso2: (iso2: string) => Country | undefined;
977
1005
  declare const getCountryByIso3: (iso3: string) => Country | undefined;
978
1006
  declare const getAllCountries: () => Country[];
979
- declare const getCountryPhoneCode: (iso2: string) => string;
980
1007
  declare const getPhoneMaxDigits: (iso2: string) => number;
981
1008
  declare const getPhoneTrunkPrefix: (iso2: string) => string;
982
1009
  /**
@@ -987,6 +1014,41 @@ declare const isValidIso2: (code: string) => code is CountryIso2;
987
1014
  * Type guard to check if a string is a valid ISO3 country code
988
1015
  */
989
1016
  declare const isValidIso3: (code: string) => code is CountryIso3;
1017
+ /**
1018
+ * Get the display name of a country in the specified locale.
1019
+ * Defaults to French with English as fallback.
1020
+ * Uses Intl.DisplayNames for locale-aware names (e.g., "Italie" for "IT" in French).
1021
+ * The Intl.DisplayNames instance is cached at module level to avoid repeated allocations.
1022
+ *
1023
+ * @param iso2 - ISO 3166-1 alpha-2 country code (e.g., "FR", "IT")
1024
+ * @param locales - BCP 47 language tags in preference order (default: ['fr', 'en'])
1025
+ */
1026
+ declare function getCountryDisplayName(iso2: string, locales?: string | string[]): string;
1027
+ /**
1028
+ * Get the display name of a country by its ISO 3166-1 alpha-3 code.
1029
+ * Defaults to French with English as fallback.
1030
+ *
1031
+ * @param iso3 - ISO 3166-1 alpha-3 country code (e.g., "FRA", "ITA")
1032
+ * @param locales - BCP 47 language tags in preference order (default: ['fr', 'en'])
1033
+ */
1034
+ declare function getCountryDisplayNameByIso3(iso3: string, locales?: string | string[]): string;
1035
+ /**
1036
+ * Get all countries sorted alphabetically by their display name in the given locale.
1037
+ * Sorted once — callers should store the result in a module-level constant.
1038
+ *
1039
+ * @param locale - BCP 47 language tag for sorting (default: 'fr')
1040
+ */
1041
+ declare function getSortedCountries(locale?: string): Country[];
1042
+ /**
1043
+ * Strip the national trunk prefix from a phone number.
1044
+ * Pure string operation, no external dependencies.
1045
+ *
1046
+ * @example
1047
+ * stripTrunkPrefix("0612345678", "0") // "612345678"
1048
+ * stripTrunkPrefix("612345678", "0") // "612345678" (no prefix to strip)
1049
+ * stripTrunkPrefix("06301234567", "06") // "301234567" (Hungary)
1050
+ */
1051
+ declare function stripTrunkPrefix(phoneNumber: string, trunkPrefix: string): string;
990
1052
 
991
1053
  interface Currency {
992
1054
  code: string;
@@ -1514,16 +1576,19 @@ declare const RECOMMENDED_MAX_SIZES: {
1514
1576
  readonly ARCHIVE: number;
1515
1577
  };
1516
1578
  /**
1517
- * Convert bytes to human-readable format
1579
+ * Format a byte count into a human-readable string
1580
+ *
1581
+ * @param bytes - Number of bytes
1582
+ * @param decimals - Number of decimal places (default: 2)
1583
+ * @returns Formatted string, e.g. "1.5 MB"
1518
1584
  *
1519
1585
  * @example
1520
1586
  * ```typescript
1521
- * formatBytes(1024) // "1 KB"
1522
- * formatBytes(1048576) // "1 MB"
1523
- * formatBytes(1073741824) // "1 GB"
1587
+ * formatBytes(1048576) // "1 MB"
1588
+ * formatBytes(1500, 1) // "1.5 KB"
1524
1589
  * ```
1525
1590
  */
1526
- declare const formatBytes: (bytes: number, decimals?: number) => string;
1591
+ declare function formatBytes(bytes: number, decimals?: number): string;
1527
1592
  /**
1528
1593
  * Convert megabytes to bytes
1529
1594
  *
@@ -1659,12 +1724,6 @@ declare const FONT_MIME_TYPES: {
1659
1724
  readonly EOT: "application/vnd.ms-fontobject";
1660
1725
  };
1661
1726
  declare const FONT_MIME_TYPES_ARRAY: ("font/ttf" | "font/otf" | "font/woff" | "font/woff2" | "application/vnd.ms-fontobject")[];
1662
- declare const OTHER_MIME_TYPES: {
1663
- readonly BINARY: "application/octet-stream";
1664
- readonly FORM_DATA: "multipart/form-data";
1665
- readonly JSON_LD: "application/ld+json";
1666
- readonly XHTML: "application/xhtml+xml";
1667
- };
1668
1727
  /**
1669
1728
  * All image MIME types
1670
1729
  */
@@ -1708,7 +1767,7 @@ declare const MEDIA: readonly ("image/jpeg" | "image/png" | "image/gif" | "image
1708
1767
  /**
1709
1768
  * All MIME types combined
1710
1769
  */
1711
- declare const ALL_MIME_TYPES: readonly ("image/jpeg" | "image/png" | "image/gif" | "image/webp" | "image/svg+xml" | "image/bmp" | "image/tiff" | "image/x-icon" | "image/heic" | "image/heif" | "application/pdf" | "application/msword" | "application/vnd.openxmlformats-officedocument.wordprocessingml.document" | "application/vnd.ms-excel" | "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" | "application/vnd.ms-powerpoint" | "application/vnd.openxmlformats-officedocument.presentationml.presentation" | "application/vnd.oasis.opendocument.text" | "application/vnd.oasis.opendocument.spreadsheet" | "application/vnd.oasis.opendocument.presentation" | "application/rtf" | "text/plain" | "text/csv" | "text/markdown" | "application/zip" | "application/vnd.rar" | "application/x-tar" | "application/gzip" | "application/x-7z-compressed" | "application/x-bzip2" | "audio/mpeg" | "audio/wav" | "audio/ogg" | "audio/aac" | "audio/flac" | "audio/mp4" | "audio/webm" | "video/mp4" | "video/webm" | "video/ogg" | "video/x-msvideo" | "video/quicktime" | "video/x-matroska" | "video/x-flv" | "video/x-ms-wmv" | "video/mpeg" | "text/javascript" | "text/typescript" | "application/json" | "application/xml" | "text/html" | "text/css" | "text/x-python" | "text/x-java-source" | "text/x-c" | "text/x-c++" | "application/x-yaml" | "application/sql" | "font/ttf" | "font/otf" | "font/woff" | "font/woff2" | "application/vnd.ms-fontobject" | "application/octet-stream" | "multipart/form-data" | "application/ld+json" | "application/xhtml+xml")[];
1770
+ declare const ALL_MIME_TYPES: readonly ("image/jpeg" | "image/png" | "image/gif" | "image/webp" | "image/svg+xml" | "image/bmp" | "image/tiff" | "image/x-icon" | "image/heic" | "image/heif" | "application/pdf" | "application/msword" | "application/vnd.openxmlformats-officedocument.wordprocessingml.document" | "application/vnd.ms-excel" | "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" | "application/vnd.ms-powerpoint" | "application/vnd.openxmlformats-officedocument.presentationml.presentation" | "application/vnd.oasis.opendocument.text" | "application/vnd.oasis.opendocument.spreadsheet" | "application/vnd.oasis.opendocument.presentation" | "application/rtf" | "text/plain" | "text/csv" | "text/markdown" | "application/zip" | "application/vnd.rar" | "application/x-tar" | "application/gzip" | "application/x-7z-compressed" | "application/x-bzip2" | "audio/mpeg" | "audio/wav" | "audio/ogg" | "audio/aac" | "audio/flac" | "audio/mp4" | "audio/webm" | "video/mp4" | "video/webm" | "video/ogg" | "video/x-msvideo" | "video/quicktime" | "video/x-matroska" | "video/x-flv" | "video/x-ms-wmv" | "video/mpeg" | "text/javascript" | "text/typescript" | "application/json" | "application/xml" | "text/html" | "text/css" | "text/x-python" | "text/x-java-source" | "text/x-c" | "text/x-c++" | "application/x-yaml" | "application/sql" | "font/ttf" | "font/otf" | "font/woff" | "font/woff2" | "application/vnd.ms-fontobject")[];
1712
1771
  /**
1713
1772
  * Union type of all valid MIME types
1714
1773
  */
@@ -1765,9 +1824,5 @@ declare const isVideoMimeType: (mimeType: string) => boolean;
1765
1824
  * Check if a MIME type is code
1766
1825
  */
1767
1826
  declare const isCodeMimeType: (mimeType: string) => boolean;
1768
- /**
1769
- * Get file extension from MIME type
1770
- */
1771
- declare const getExtensionFromMimeType: (mimeType: string) => string | null;
1772
1827
 
1773
- export { ALL_MIME_TYPES, ARCHIVES, ARCHIVE_MIME_TYPES, ARCHIVE_MIME_TYPES_ARRAY, AUDIO, AUDIO_MIME_TYPES, AUDIO_MIME_TYPES_ARRAY, type ArchiveMimeType, type AudioMimeType, BYTES, CODE, CODE_MIME_TYPES, CODE_MIME_TYPES_ARRAY, COLORS, COLOR_GROUPS, COUNTRIES, CURRENCIES, type CodeMimeType, type Color, type ColorBackground, type ColorBorder, type ColorGroup, type ColorGroupColors, type ColorIcon, type ColorId, type ColorText, type Country, type CountryIso2, type CountryIso3, type CountryName, type CountryNumericCode, type CountryPhoneCode, type Currency, type CurrencyCode, type CurrencyName, type CurrencySymbol, DEFAULT_ATTRIBUTE_ICONS, DOCUMENTS, DOCUMENT_MIME_TYPES, DOCUMENT_MIME_TYPES_ARRAY, type DocumentMimeType, FILE_SIZE, FONTS, FONT_MIME_TYPES, FONT_MIME_TYPES_ARRAY, type FontMimeType, GIGABYTES, ICONS, IMAGES, IMAGE_MIME_TYPES, IMAGE_MIME_TYPES_ARRAY, type IconName, type ImageMimeType, KILOBYTES, MEDIA, MEGABYTES, type MimeType, OFFICE_DOCUMENTS, OTHER_MIME_TYPES, RECOMMENDED_MAX_SIZES, STATUS_COLORS, type StatusColorGroup, VIDEO, VIDEO_MIME_TYPES, VIDEO_MIME_TYPES_ARRAY, type VideoMimeType, WEB_IMAGES, bytesToGb, bytesToMb, formatBytes, gbToBytes, getAllColors, getAllCountries, getAllCurrencies, getColor, getColorIds, getColorsByGroup, getCountryByIso2, getCountryByIso3, getCountryPhoneCode, getCurrency, getCurrencySymbol, getDefaultAttributeIcon, getExtensionFromMimeType, getPhoneMaxDigits, getPhoneTrunkPrefix, isArchiveMimeType, isAudioMimeType, isCodeMimeType, isDocumentMimeType, isImageMimeType, isValidColorId, isValidCurrencyCode, isValidIso2, isValidIso3, isVideoMimeType, isWithinSizeLimit, mbToBytes };
1828
+ export { AI_CHAT_ACCEPTED_TYPES, AI_CHAT_MAX_FILES, AI_CHAT_MAX_FILE_SIZE, AI_CHAT_SUPPORTED_DOCUMENTS, AI_CHAT_SUPPORTED_IMAGES, AI_CHAT_SUPPORTED_MIME_TYPES, ALL_MIME_TYPES, ARCHIVES, ARCHIVE_MIME_TYPES, ARCHIVE_MIME_TYPES_ARRAY, AUDIO, AUDIO_MIME_TYPES, AUDIO_MIME_TYPES_ARRAY, type ArchiveMimeType, type AudioMimeType, BYTES, CODE, CODE_MIME_TYPES, CODE_MIME_TYPES_ARRAY, COLORS, COLOR_GROUPS, COUNTRIES, CURRENCIES, type CodeMimeType, type Color, type ColorBackground, type ColorBorder, type ColorGroup, type ColorGroupColors, type ColorIcon, type ColorId, type ColorText, type Country, type CountryIso2, type CountryIso3, type CountryName, type CountryNumericCode, type CountryPhoneCode, type Currency, type CurrencyCode, type CurrencyName, type CurrencySymbol, DEFAULT_ATTRIBUTE_ICONS, DOCUMENTS, DOCUMENT_MIME_TYPES, DOCUMENT_MIME_TYPES_ARRAY, type DocumentMimeType, FILE_SIZE, FONTS, FONT_MIME_TYPES, FONT_MIME_TYPES_ARRAY, type FontMimeType, GIGABYTES, ICONS, IMAGES, IMAGE_MIME_TYPES, IMAGE_MIME_TYPES_ARRAY, type IconName, type ImageMimeType, KILOBYTES, MEDIA, MEGABYTES, type MimeType, OFFICE_DOCUMENTS, RECOMMENDED_MAX_SIZES, STATUS_COLORS, type StatusColorGroup, VIDEO, VIDEO_MIME_TYPES, VIDEO_MIME_TYPES_ARRAY, type VideoMimeType, WEB_IMAGES, bytesToGb, bytesToMb, cn, formatBytes, gbToBytes, getAllColors, getAllCountries, getAllCurrencies, getColor, getColorIds, getColorsByGroup, getCountryByIso2, getCountryByIso3, getCountryDisplayName, getCountryDisplayNameByIso3, getCurrency, getCurrencySymbol, getDefaultAttributeIcon, getPhoneMaxDigits, getPhoneTrunkPrefix, getSortedCountries, isArchiveMimeType, isAudioMimeType, isCodeMimeType, isDocumentMimeType, isImageMimeType, isValidColorId, isValidCurrencyCode, isValidIso2, isValidIso3, isVideoMimeType, isWithinSizeLimit, mbToBytes, stripTrunkPrefix };