@aurea-uds/react 0.30.0 → 0.32.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.
@@ -15,7 +15,13 @@ export type IconName = PhosphorIconName | Extract<keyof AureaIconNames, string>;
15
15
  /**
16
16
  * O peso do ícone. `regular` é o de sempre; `fill` é o cheio, o do item escolhido (aba ativa,
17
17
  * item atual do menu) — ADR-0053. Nome próprio do app não tem forma cheia e fica no `regular`.
18
+ * `bold` (0.32.0) é o traço grosso, e só existe para os nomes de `NOMES_BOLD` (hoje, o `x` do
19
+ * `CloseButton`); para os outros, ele desenha o `regular`.
18
20
  */
19
- export type IconWeight = "regular" | "fill";
21
+ export type IconWeight = "regular" | "fill" | "bold";
20
22
  /** Os nomes do Phosphor em tempo de execução: só eles têm a forma cheia (`<nome>-fill`). */
21
23
  export declare const NOMES_PHOSPHOR: ReadonlySet<string>;
24
+ /** Os nomes que também têm o peso Bold (`<nome>-bold`), um a um, por decisão. */
25
+ export type BoldIconName = "x";
26
+ /** Os mesmos, em tempo de execução. */
27
+ export declare const NOMES_BOLD: ReadonlySet<string>;
@@ -2,3 +2,5 @@
2
2
  // Achado A-04: o nome do ícone é checado pelo TypeScript. ADR-0053: os nomes são os do Phosphor.
3
3
  /** Os nomes do Phosphor em tempo de execução: só eles têm a forma cheia (`<nome>-fill`). */
4
4
  export const NOMES_PHOSPHOR = new Set(["acorn", "address-book", "address-book-tabs", "air-traffic-control", "airplane", "airplane-in-flight", "airplane-landing", "airplane-takeoff", "airplane-taxiing", "airplane-tilt", "airplay", "alarm", "alien", "align-bottom", "align-bottom-simple", "align-center-horizontal", "align-center-horizontal-simple", "align-center-vertical", "align-center-vertical-simple", "align-left", "align-left-simple", "align-right", "align-right-simple", "align-top", "align-top-simple", "ambulance", "anchor", "anchor-simple", "angle", "aperture", "app-window", "approximate-equals", "archive", "armchair", "arrow-arc-left", "arrow-arc-right", "arrow-bend-double-up-left", "arrow-bend-double-up-right", "arrow-bend-down-left", "arrow-bend-down-right", "arrow-bend-left-down", "arrow-bend-left-up", "arrow-bend-right-down", "arrow-bend-right-up", "arrow-bend-up-left", "arrow-bend-up-right", "arrow-circle-down", "arrow-circle-down-left", "arrow-circle-down-right", "arrow-circle-left", "arrow-circle-right", "arrow-circle-up", "arrow-circle-up-left", "arrow-circle-up-right", "arrow-clockwise", "arrow-counter-clockwise", "arrow-down", "arrow-down-left", "arrow-down-right", "arrow-elbow-down-left", "arrow-elbow-down-right", "arrow-elbow-left", "arrow-elbow-left-down", "arrow-elbow-left-up", "arrow-elbow-right", "arrow-elbow-right-down", "arrow-elbow-right-up", "arrow-elbow-up-left", "arrow-elbow-up-right", "arrow-fat-down", "arrow-fat-left", "arrow-fat-line-down", "arrow-fat-line-left", "arrow-fat-line-right", "arrow-fat-line-up", "arrow-fat-lines-down", "arrow-fat-lines-left", "arrow-fat-lines-right", "arrow-fat-lines-up", "arrow-fat-right", "arrow-fat-up", "arrow-left", "arrow-line-down", "arrow-line-down-left", "arrow-line-down-right", "arrow-line-left", "arrow-line-right", "arrow-line-up", "arrow-line-up-left", "arrow-line-up-right", "arrow-right", "arrow-square-down", "arrow-square-down-left", "arrow-square-down-right", "arrow-square-in", "arrow-square-left", "arrow-square-out", "arrow-square-right", "arrow-square-up", "arrow-square-up-left", "arrow-square-up-right", "arrow-u-down-left", "arrow-u-down-right", "arrow-u-left-down", "arrow-u-left-up", "arrow-u-right-down", "arrow-u-right-up", "arrow-u-up-left", "arrow-u-up-right", "arrow-up", "arrow-up-left", "arrow-up-right", "arrows-clockwise", "arrows-counter-clockwise", "arrows-down-up", "arrows-horizontal", "arrows-in", "arrows-in-cardinal", "arrows-in-line-horizontal", "arrows-in-line-vertical", "arrows-in-simple", "arrows-left-right", "arrows-merge", "arrows-out", "arrows-out-cardinal", "arrows-out-line-horizontal", "arrows-out-line-vertical", "arrows-out-simple", "arrows-split", "arrows-vertical", "article", "article-medium", "article-ny-times", "asclepius", "asterisk", "asterisk-simple", "at", "atom", "avocado", "axe", "baby", "baby-carriage", "backpack", "backspace", "bag", "bag-simple", "balloon", "bandaids", "bank", "barbell", "barcode", "barn", "barricade", "baseball", "baseball-cap", "baseball-helmet", "basket", "basketball", "bathtub", "battery-charging", "battery-charging-vertical", "battery-empty", "battery-full", "battery-high", "battery-low", "battery-medium", "battery-plus", "battery-plus-vertical", "battery-vertical-empty", "battery-vertical-full", "battery-vertical-high", "battery-vertical-low", "battery-vertical-medium", "battery-warning", "battery-warning-vertical", "beach-ball", "beanie", "bed", "beer-bottle", "beer-stein", "bell", "bell-ringing", "bell-simple", "bell-simple-ringing", "bell-simple-slash", "bell-simple-z", "bell-slash", "bell-z", "belt", "bezier-curve", "bicycle", "binary", "binoculars", "biohazard", "bird", "blueprint", "bluetooth", "bluetooth-connected", "bluetooth-slash", "bluetooth-x", "boat", "bomb", "bone", "book", "book-bookmark", "book-open", "book-open-text", "book-open-user", "bookmark", "bookmark-simple", "bookmarks", "bookmarks-simple", "books", "boot", "boules", "bounding-box", "bowl-food", "bowl-steam", "bowling-ball", "box-arrow-down", "box-arrow-up", "boxing-glove", "brackets-angle", "brackets-curly", "brackets-round", "brackets-square", "brain", "brandy", "bread", "bridge", "briefcase", "briefcase-metal", "broadcast", "broom", "browser", "browsers", "bug", "bug-beetle", "bug-droid", "building", "building-apartment", "building-office", "buildings", "bulldozer", "bus", "butterfly", "cable-car", "cactus", "cake", "calculator", "calendar", "calendar-blank", "calendar-check", "calendar-dot", "calendar-dots", "calendar-heart", "calendar-minus", "calendar-plus", "calendar-slash", "calendar-star", "calendar-x", "call-bell", "camera", "camera-plus", "camera-rotate", "camera-slash", "campfire", "car", "car-battery", "car-profile", "car-simple", "cardholder", "cards", "cards-three", "caret-circle-double-down", "caret-circle-double-left", "caret-circle-double-right", "caret-circle-double-up", "caret-circle-down", "caret-circle-left", "caret-circle-right", "caret-circle-up", "caret-circle-up-down", "caret-double-down", "caret-double-left", "caret-double-right", "caret-double-up", "caret-down", "caret-left", "caret-line-down", "caret-line-left", "caret-line-right", "caret-line-up", "caret-right", "caret-up", "caret-up-down", "carrot", "cash-register", "cassette-tape", "castle-turret", "cat", "cell-signal-full", "cell-signal-high", "cell-signal-low", "cell-signal-medium", "cell-signal-none", "cell-signal-slash", "cell-signal-x", "cell-tower", "certificate", "chair", "chalkboard", "chalkboard-simple", "chalkboard-teacher", "champagne", "charging-station", "chart-bar", "chart-bar-horizontal", "chart-donut", "chart-line", "chart-line-down", "chart-line-up", "chart-pie", "chart-pie-slice", "chart-polar", "chart-scatter", "chat", "chat-centered", "chat-centered-dots", "chat-centered-slash", "chat-centered-text", "chat-circle", "chat-circle-dots", "chat-circle-slash", "chat-circle-text", "chat-dots", "chat-slash", "chat-teardrop", "chat-teardrop-dots", "chat-teardrop-slash", "chat-teardrop-text", "chat-text", "chats", "chats-circle", "chats-teardrop", "check", "check-circle", "check-fat", "check-square", "check-square-offset", "checkerboard", "checks", "cheers", "cheese", "chef-hat", "cherries", "church", "cigarette", "cigarette-slash", "circle", "circle-dashed", "circle-half", "circle-half-tilt", "circle-notch", "circles-four", "circles-three", "circles-three-plus", "circuitry", "city", "clipboard", "clipboard-text", "clock", "clock-afternoon", "clock-clockwise", "clock-countdown", "clock-counter-clockwise", "clock-user", "closed-captioning", "cloud", "cloud-arrow-down", "cloud-arrow-up", "cloud-check", "cloud-fog", "cloud-lightning", "cloud-moon", "cloud-rain", "cloud-slash", "cloud-snow", "cloud-sun", "cloud-warning", "cloud-x", "clover", "club", "coat-hanger", "code", "code-block", "code-simple", "coffee", "coffee-bean", "coin", "coin-vertical", "coins", "columns", "columns-plus-left", "columns-plus-right", "command", "compass", "compass-rose", "compass-tool", "computer-tower", "confetti", "contactless-payment", "control", "cookie", "cooking-pot", "copy", "copy-simple", "copyleft", "copyright", "corners-in", "corners-out", "couch", "court-basketball", "cow", "cowboy-hat", "cpu", "crane", "crane-tower", "credit-card", "cricket", "crop", "cross", "crosshair", "crosshair-simple", "crown", "crown-cross", "crown-simple", "cube", "cube-focus", "cube-transparent", "currency-btc", "currency-circle-dollar", "currency-cny", "currency-dollar", "currency-dollar-simple", "currency-eth", "currency-eur", "currency-gbp", "currency-inr", "currency-jpy", "currency-krw", "currency-kzt", "currency-ngn", "currency-rub", "cursor", "cursor-click", "cursor-text", "cylinder", "database", "desk", "desktop", "desktop-tower", "detective", "device-mobile", "device-mobile-camera", "device-mobile-slash", "device-mobile-speaker", "device-rotate", "device-tablet", "device-tablet-camera", "device-tablet-speaker", "devices", "diamond", "diamonds-four", "dice-five", "dice-four", "dice-one", "dice-six", "dice-three", "dice-two", "disc", "disco-ball", "divide", "dna", "dog", "door", "door-open", "dot", "dot-outline", "dots-nine", "dots-six", "dots-six-vertical", "dots-three", "dots-three-circle", "dots-three-circle-vertical", "dots-three-outline", "dots-three-outline-vertical", "dots-three-vertical", "download", "download-simple", "dress", "dresser", "drone", "drop", "drop-half", "drop-half-bottom", "drop-simple", "drop-slash", "ear", "ear-slash", "egg", "egg-crack", "eject", "eject-simple", "elevator", "empty", "engine", "envelope", "envelope-open", "envelope-simple", "envelope-simple-open", "equalizer", "equals", "eraser", "escalator-down", "escalator-up", "exam", "exclamation-mark", "exclude", "exclude-square", "export", "eye", "eye-closed", "eye-slash", "eyedropper", "eyedropper-sample", "eyeglasses", "eyes", "face-mask", "factory", "faders", "faders-horizontal", "fallout-shelter", "fan", "farm", "fast-forward", "fast-forward-circle", "feather", "file", "file-archive", "file-arrow-down", "file-arrow-up", "file-audio", "file-c", "file-c-sharp", "file-cloud", "file-code", "file-cpp", "file-css", "file-csv", "file-dashed", "file-doc", "file-html", "file-image", "file-ini", "file-jpg", "file-js", "file-jsx", "file-lock", "file-magnifying-glass", "file-md", "file-minus", "file-pdf", "file-plus", "file-png", "file-ppt", "file-py", "file-rs", "file-sql", "file-svg", "file-text", "file-ts", "file-tsx", "file-txt", "file-video", "file-vue", "file-x", "file-xls", "file-zip", "files", "film-reel", "film-script", "film-slate", "film-strip", "fingerprint", "fingerprint-simple", "finn-the-human", "fire", "fire-extinguisher", "fire-simple", "fire-truck", "first-aid", "first-aid-kit", "fish", "fish-simple", "flag", "flag-banner", "flag-banner-fold", "flag-checkered", "flag-pennant", "flame", "flashlight", "flask", "flip-horizontal", "flip-vertical", "floppy-disk", "floppy-disk-back", "flow-arrow", "flower", "flower-lotus", "flower-tulip", "flying-saucer", "folder", "folder-dashed", "folder-lock", "folder-minus", "folder-open", "folder-plus", "folder-simple", "folder-simple-dashed", "folder-simple-lock", "folder-simple-minus", "folder-simple-plus", "folder-simple-star", "folder-simple-user", "folder-star", "folder-user", "folders", "football", "football-helmet", "footprints", "fork-knife", "four-k", "frame-corners", "function", "funnel", "funnel-simple", "funnel-simple-x", "funnel-x", "game-controller", "garage", "gas-can", "gas-pump", "gauge", "gavel", "gear", "gear-fine", "gear-six", "gender-female", "gender-intersex", "gender-male", "gender-neuter", "gender-nonbinary", "gender-transgender", "ghost", "gif", "gift", "git-branch", "git-commit", "git-diff", "git-fork", "git-merge", "git-pull-request", "globe", "globe-hemisphere-east", "globe-hemisphere-west", "globe-simple", "globe-simple-x", "globe-stand", "globe-x", "goggles", "golf", "gps", "gps-fix", "gps-slash", "gradient", "graduation-cap", "grains", "grains-slash", "graph", "graphics-card", "greater-than", "greater-than-or-equal", "grid-four", "grid-nine", "guitar", "hair-dryer", "hamburger", "hammer", "hand", "hand-arrow-down", "hand-arrow-up", "hand-coins", "hand-deposit", "hand-eye", "hand-fist", "hand-grabbing", "hand-heart", "hand-palm", "hand-peace", "hand-pointing", "hand-soap", "hand-swipe-left", "hand-swipe-right", "hand-tap", "hand-waving", "hand-withdraw", "handbag", "handbag-simple", "hands-clapping", "hands-praying", "handshake", "hard-drive", "hard-drives", "hard-hat", "hash", "hash-straight", "head-circuit", "headlights", "headphones", "headset", "heart", "heart-break", "heart-half", "heart-straight", "heart-straight-break", "heartbeat", "hexagon", "high-definition", "high-heel", "highlighter", "highlighter-circle", "hockey", "hoodie", "horse", "hospital", "hourglass", "hourglass-high", "hourglass-low", "hourglass-medium", "hourglass-simple", "hourglass-simple-high", "hourglass-simple-low", "hourglass-simple-medium", "house", "house-line", "house-simple", "hurricane", "ice-cream", "identification-badge", "identification-card", "image", "image-broken", "image-square", "images", "images-square", "infinity", "info", "intersect", "intersect-square", "intersect-three", "intersection", "invoice", "island", "jar", "jar-label", "jeep", "joystick", "kanban", "key", "key-return", "keyboard", "keyhole", "knife", "ladder", "ladder-simple", "lamp", "lamp-pendant", "laptop", "lasso", "layout", "leaf", "lectern", "lego", "lego-smiley", "less-than", "less-than-or-equal", "letter-circle-h", "letter-circle-p", "letter-circle-v", "lifebuoy", "lightbulb", "lightbulb-filament", "lighthouse", "lightning", "lightning-a", "lightning-slash", "line-segment", "line-segments", "line-vertical", "link", "link-break", "link-simple", "link-simple-break", "link-simple-horizontal", "link-simple-horizontal-break", "list", "list-bullets", "list-checks", "list-dashes", "list-heart", "list-magnifying-glass", "list-numbers", "list-plus", "list-star", "lock", "lock-key", "lock-key-open", "lock-laminated", "lock-laminated-open", "lock-open", "lock-simple", "lock-simple-open", "lockers", "log", "magic-wand", "magnet", "magnet-straight", "magnifying-glass", "magnifying-glass-minus", "magnifying-glass-plus", "mailbox", "map-pin", "map-pin-area", "map-pin-line", "map-pin-plus", "map-pin-simple", "map-pin-simple-area", "map-pin-simple-line", "map-trifold", "marker-circle", "martini", "mask-happy", "mask-sad", "math-operations", "medal", "medal-military", "megaphone", "megaphone-simple", "member-of", "memory", "meteor", "metronome", "microphone", "microphone-slash", "microphone-stage", "microscope", "minus", "minus-circle", "minus-square", "money", "money-wavy", "monitor", "monitor-arrow-up", "monitor-play", "moon", "moon-stars", "moped", "moped-front", "mosque", "motorcycle", "mountains", "mouse", "mouse-left-click", "mouse-middle-click", "mouse-right-click", "mouse-scroll", "mouse-simple", "music-note", "music-note-simple", "music-notes", "music-notes-minus", "music-notes-plus", "music-notes-simple", "navigation-arrow", "needle", "network", "network-slash", "network-x", "newspaper", "newspaper-clipping", "not-equals", "not-member-of", "not-subset-of", "not-superset-of", "notches", "note", "note-blank", "note-pencil", "notebook", "notepad", "notification", "nuclear-plant", "number-circle-eight", "number-circle-five", "number-circle-four", "number-circle-nine", "number-circle-one", "number-circle-seven", "number-circle-six", "number-circle-three", "number-circle-two", "number-circle-zero", "number-eight", "number-five", "number-four", "number-nine", "number-one", "number-seven", "number-six", "number-square-eight", "number-square-five", "number-square-four", "number-square-nine", "number-square-one", "number-square-seven", "number-square-six", "number-square-three", "number-square-two", "number-square-zero", "number-three", "number-two", "number-zero", "numpad", "nut", "octagon", "office-chair", "onigiri", "option", "orange", "orange-slice", "oven", "package", "paint-brush", "paint-brush-broad", "paint-brush-household", "paint-bucket", "paint-roller", "palette", "panorama", "pants", "paper-plane", "paper-plane-right", "paper-plane-tilt", "paperclip", "paperclip-horizontal", "parachute", "paragraph", "parallelogram", "park", "password", "path", "pause", "pause-circle", "paw-print", "peace", "pen", "pen-nib", "pen-nib-straight", "pencil", "pencil-circle", "pencil-line", "pencil-ruler", "pencil-simple", "pencil-simple-line", "pencil-simple-slash", "pencil-slash", "pentagon", "pentagram", "pepper", "percent", "person", "person-arms-spread", "person-simple", "person-simple-bike", "person-simple-circle", "person-simple-hike", "person-simple-run", "person-simple-ski", "person-simple-snowboard", "person-simple-swim", "person-simple-tai-chi", "person-simple-throw", "person-simple-walk", "perspective", "phone", "phone-call", "phone-disconnect", "phone-incoming", "phone-list", "phone-outgoing", "phone-pause", "phone-plus", "phone-slash", "phone-transfer", "phone-x", "pi", "piano-keys", "picnic-table", "picture-in-picture", "piggy-bank", "pill", "ping-pong", "pint-glass", "pinwheel", "pipe", "pipe-wrench", "pizza", "placeholder", "planet", "plant", "play", "play-circle", "play-pause", "playlist", "plug", "plug-charging", "plugs", "plugs-connected", "plus", "plus-circle", "plus-minus", "plus-square", "poker-chip", "police-car", "polygon", "popcorn", "popsicle", "potted-plant", "power", "prescription", "presentation", "presentation-chart", "printer", "prohibit", "prohibit-inset", "projector-screen", "projector-screen-chart", "pulse", "push-pin", "push-pin-simple", "push-pin-simple-slash", "push-pin-slash", "puzzle-piece", "qr-code", "question", "question-mark", "queue", "quotes", "rabbit", "racquet", "radical", "radio", "radio-button", "radioactive", "rainbow", "rainbow-cloud", "ranking", "receipt", "receipt-x", "record", "rectangle", "rectangle-dashed", "recycle", "repeat", "repeat-once", "resize", "rewind", "rewind-circle", "road-horizon", "robot", "rocket", "rocket-launch", "rows", "rows-plus-bottom", "rows-plus-top", "rss", "rss-simple", "rug", "ruler", "sailboat", "scales", "scan", "scan-smiley", "scissors", "scooter", "screencast", "screwdriver", "scribble", "scribble-loop", "scroll", "seal", "seal-check", "seal-percent", "seal-question", "seal-warning", "seat", "seatbelt", "security-camera", "selection", "selection-all", "selection-background", "selection-foreground", "selection-inverse", "selection-plus", "selection-slash", "shapes", "share", "share-fat", "share-network", "shield", "shield-check", "shield-checkered", "shield-chevron", "shield-plus", "shield-slash", "shield-star", "shield-warning", "shipping-container", "shirt-folded", "shooting-star", "shopping-bag", "shopping-bag-open", "shopping-cart", "shopping-cart-simple", "shovel", "shower", "shrimp", "shuffle", "shuffle-angular", "shuffle-simple", "sidebar", "sidebar-simple", "sigma", "sign-in", "sign-out", "signature", "signpost", "sim-card", "siren", "skip-back", "skip-back-circle", "skip-forward", "skip-forward-circle", "skull", "sliders", "sliders-horizontal", "slideshow", "smiley", "smiley-angry", "smiley-blank", "smiley-meh", "smiley-melting", "smiley-nervous", "smiley-sad", "smiley-sticker", "smiley-wink", "smiley-x-eyes", "sneaker", "sneaker-move", "snowflake", "soccer-ball", "sock", "solar-panel", "solar-roof", "sort-ascending", "sort-descending", "spade", "sparkle", "speaker-hifi", "speaker-high", "speaker-low", "speaker-none", "speaker-simple-high", "speaker-simple-low", "speaker-simple-none", "speaker-simple-slash", "speaker-simple-x", "speaker-slash", "speaker-x", "speedometer", "sphere", "spinner", "spinner-ball", "spinner-gap", "spiral", "split-horizontal", "split-vertical", "spray-bottle", "square", "square-half", "square-half-bottom", "square-split-horizontal", "square-split-vertical", "squares-four", "stack", "stack-minus", "stack-plus", "stack-simple", "stairs", "stamp", "standard-definition", "star", "star-and-crescent", "star-four", "star-half", "star-of-david", "steering-wheel", "steps", "stethoscope", "sticker", "stool", "stop", "stop-circle", "storefront", "strategy", "student", "subset-of", "subset-proper-of", "subtitles", "subtitles-slash", "subtract", "subtract-square", "subway", "suitcase", "suitcase-rolling", "suitcase-simple", "sun", "sun-dim", "sun-horizon", "sunglasses", "superset-of", "superset-proper-of", "swap", "swatches", "swimming-pool", "sword", "synagogue", "syringe", "t-shirt", "table", "tabs", "tag", "tag-chevron", "tag-simple", "target", "taxi", "tea-bag", "television", "television-simple", "tennis-ball", "tent", "terminal", "terminal-window", "test-tube", "text-a-underline", "text-aa", "text-align-center", "text-align-justify", "text-align-left", "text-align-right", "text-b", "text-columns", "text-h", "text-h-five", "text-h-four", "text-h-one", "text-h-six", "text-h-three", "text-h-two", "text-indent", "text-italic", "text-outdent", "text-strikethrough", "text-subscript", "text-superscript", "text-t", "text-t-slash", "text-underline", "textbox", "thermometer", "thermometer-cold", "thermometer-hot", "thermometer-simple", "three-d", "thumbs-down", "thumbs-up", "ticket", "tilde", "timer", "tip-jar", "tipi", "tire", "toggle-left", "toggle-right", "toilet", "toilet-paper", "toolbox", "tooth", "tornado", "tote", "tote-simple", "towel", "tractor", "trademark", "trademark-registered", "traffic-cone", "traffic-sign", "traffic-signal", "train", "train-regional", "train-simple", "tram", "translate", "trash", "trash-simple", "tray", "tray-arrow-down", "tray-arrow-up", "treasure-chest", "tree", "tree-evergreen", "tree-palm", "tree-structure", "tree-view", "trend-down", "trend-up", "triangle", "triangle-dashed", "trolley", "trolley-suitcase", "trophy", "truck", "truck-trailer", "umbrella", "umbrella-simple", "union", "unite", "unite-square", "upload", "upload-simple", "usb", "user", "user-check", "user-circle", "user-circle-check", "user-circle-dashed", "user-circle-gear", "user-circle-minus", "user-circle-plus", "user-focus", "user-gear", "user-list", "user-minus", "user-plus", "user-rectangle", "user-sound", "user-square", "user-switch", "users", "users-four", "users-three", "van", "vault", "vector-three", "vector-two", "vibrate", "video", "video-camera", "video-camera-slash", "video-conference", "vignette", "vinyl-record", "virtual-reality", "virus", "visor", "voicemail", "volleyball", "wall", "wallet", "warehouse", "warning", "warning-circle", "warning-diamond", "warning-octagon", "washing-machine", "watch", "wave-sawtooth", "wave-sine", "wave-square", "wave-triangle", "waveform", "waveform-slash", "waves", "webcam", "webcam-slash", "wheelchair", "wheelchair-motion", "wifi-high", "wifi-low", "wifi-medium", "wifi-none", "wifi-slash", "wifi-x", "wind", "windmill", "wine", "wrench", "x", "x-circle", "x-square", "yarn", "yin-yang"]);
5
+ /** Os mesmos, em tempo de execução. */
6
+ export const NOMES_BOLD = new Set(["x"]);
package/dist/index.d.ts CHANGED
@@ -2,7 +2,7 @@ export { cx, defaultStrings, ptBR, defaultSpriteUrl, gridStateToParams, gridStat
2
2
  export { useAureaStrings, useSpriteUrl, useTheme, useDensity } from "./internal.js";
3
3
  export { type Responsive, type Breakpoint, type ContainerBreakpoint, type Orientation, ESCALA, ESCALA_CONTAINER } from "./pure.js";
4
4
  export { ContainerScope, useValorResponsivo } from "./responsivo-runtime.js";
5
- export { AspectRatio, InputGroup, InputGroupAddon, Label, Card, Stack, Cluster, Grid, Container, Section, KPI, DataList, Timeline, Prose, Text, Heading, Paragraph, Code, Badge, Progress, Skeleton, AvatarGroup, LogStream, MediaPlayerShell, Header, Topbar, Kbd, Textarea, Checkbox, Radio, Switch, Range, formatBadgeCount, type BadgeVariant, type BadgeCategory, type BadgeEmphasis, type BadgeSize, type BadgePlacement, type BadgeProps, type KPIProps, type KPIDirection, type KPITone, type KPIVariant, type ProgressProps, type ProgressTone, type AvatarSize, type HeaderVariant, type HeaderProps, type TopbarVariant, type SectionVariant, type SectionFooterGroup, type CardProps, type CardAccent, type TextProps, type HeadingProps, type ParagraphProps, type CodeProps, type TypographyType, type TypographyColor, type TypographyWeight, type TypographyAlign, type HeadingLevel, type ParagraphSize } from "./markup.js";
5
+ export { AspectRatio, InputGroup, InputGroupAddon, Label, Card, Stack, Cluster, Grid, Container, Section, KPI, DataList, Timeline, Prose, Text, Heading, Paragraph, Code, Badge, Progress, Skeleton, Link, ColorSwatch, ProgressCircle, AvatarGroup, LogStream, MediaPlayerShell, Header, Topbar, Kbd, Textarea, Checkbox, Radio, Switch, Range, formatBadgeCount, type BadgeVariant, type BadgeCategory, type BadgeEmphasis, type BadgeSize, type BadgePlacement, type BadgeProps, type KPIProps, type KPIDirection, type KPITone, type KPIVariant, type ProgressProps, type ProgressTone, type AvatarSize, type HeaderVariant, type HeaderProps, type TopbarVariant, type SectionVariant, type SectionFooterGroup, type CardProps, type CardAccent, type TextProps, type HeadingProps, type ParagraphProps, type CodeProps, type TypographyType, type TypographyColor, type TypographyWeight, type TypographyAlign, type HeadingLevel, type ParagraphSize, type LinkProps, type ColorSwatchProps, type ColorSwatchSize, type ProgressCircleProps, type ProgressCircleSize, type ProgressSize, type SkeletonAnimation, type TypographyTone } from "./markup.js";
6
6
  export * from "./system.js";
7
7
  export * from "./actions.js";
8
8
  export * from "./feedback.js";
package/dist/index.js CHANGED
@@ -51,7 +51,7 @@ export { ContainerScope, useValorResponsivo } from "./responsivo-runtime.js";
51
51
  // inteiro). O que muda é de ONDE ele vem — do módulo com a diretiva —, e aí ele volta a chegar
52
52
  // como referência de CLIENTE e os 118,5 KB voltam com ele. Não é um erro: é o ganho do item O1
53
53
  // se desfazendo em silêncio. É isso, exatamente isso, que o check 35 pega.
54
- export { AspectRatio, InputGroup, InputGroupAddon, Label, Card, Stack, Cluster, Grid, Container, Section, KPI, DataList, Timeline, Prose, Text, Heading, Paragraph, Code, Badge, Progress, Skeleton, AvatarGroup, LogStream, MediaPlayerShell, Header, Topbar, Kbd, Textarea, Checkbox, Radio, Switch, Range, formatBadgeCount } from "./markup.js";
54
+ export { AspectRatio, InputGroup, InputGroupAddon, Label, Card, Stack, Cluster, Grid, Container, Section, KPI, DataList, Timeline, Prose, Text, Heading, Paragraph, Code, Badge, Progress, Skeleton, Link, ColorSwatch, ProgressCircle, AvatarGroup, LogStream, MediaPlayerShell, Header, Topbar, Kbd, Textarea, Checkbox, Radio, Switch, Range, formatBadgeCount } from "./markup.js";
55
55
  export * from "./system.js";
56
56
  export * from "./actions.js";
57
57
  export * from "./feedback.js";
@@ -1,6 +1,7 @@
1
1
  import React, { type ButtonHTMLAttributes, type HTMLAttributes, type InputHTMLAttributes, type RefAttributes, type ReactNode } from "react";
2
2
  import { type Responsive } from "./pure.js";
3
- import { type FieldSize } from "./markup.js";
3
+ import { type ColorChannel, type ColorSpace } from "./color.js";
4
+ import { type ColorSwatchOption, type FieldSize, type FieldVariant } from "./markup.js";
4
5
  import { type IconName } from "./system.js";
5
6
  export { FileInput, matchesAccept, type FileRejection, type UploadContext, type UploadFn } from "./file-input.js";
6
7
  export type FieldOrientation = "vertical" | "horizontal";
@@ -18,8 +19,11 @@ export interface FieldProps extends HTMLAttributes<HTMLDivElement>, RefAttribute
18
19
  name?: string;
19
20
  orientation?: Responsive<FieldOrientation>;
20
21
  labelWidth?: FieldLabelWidth;
22
+ /** 0.32.0, como o `isRequired` da referência: o asterisco vermelho depois do rótulo (escondido do
23
+ * leitor de tela) e o `required` no controle — é ele que anuncia "obrigatório". */
24
+ required?: boolean;
21
25
  }
22
- export declare function Field({ label, hint, description, error, children, className, id, name, orientation, labelWidth, style, ...props }: FieldProps): React.JSX.Element;
26
+ export declare function Field({ label, hint, description, error, children, className, id, name, orientation, labelWidth, style, required, ...props }: FieldProps): React.JSX.Element;
23
27
  export declare function Form({ errors, onSubmit, children, className, ...props }: Omit<React.FormHTMLAttributes<HTMLFormElement>, "onSubmit"> & RefAttributes<HTMLFormElement> & {
24
28
  errors?: Record<string, string | string[]>;
25
29
  onSubmit?: (values: Record<string, unknown>) => void;
@@ -27,6 +31,8 @@ export declare function Form({ errors, onSubmit, children, className, ...props }
27
31
  export interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "size">, RefAttributes<HTMLInputElement> {
28
32
  formatOnBlur?: (value: string) => string;
29
33
  size?: Responsive<FieldSize>;
34
+ /** 0.32.0, a da referência: `secondary` é o fundo neutro, para o campo dentro de um cartão. */
35
+ variant?: FieldVariant;
30
36
  }
31
37
  export declare const Input: React.ForwardRefExoticComponent<Omit<InputProps, "ref"> & RefAttributes<HTMLInputElement>>;
32
38
  export interface SearchFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "size" | "width">, RefAttributes<HTMLInputElement> {
@@ -56,6 +62,213 @@ export declare function NumberField({ value, defaultValue, onValueChange, min, m
56
62
  scrubbable?: boolean;
57
63
  scrubDirection?: "horizontal" | "vertical";
58
64
  }): React.JSX.Element;
65
+ export interface CheckboxGroupProps extends Omit<HTMLAttributes<HTMLDivElement>, "defaultValue" | "onChange">, RefAttributes<HTMLDivElement> {
66
+ label: ReactNode;
67
+ description?: ReactNode;
68
+ error?: ReactNode;
69
+ value?: readonly string[];
70
+ defaultValue?: readonly string[];
71
+ onValueChange?: (value: string[]) => void;
72
+ /** O `name` de todas as caixas, para o formulário. */
73
+ name?: string;
74
+ disabled?: boolean;
75
+ /** O asterisco no rótulo, como o `Field`. */
76
+ required?: boolean;
77
+ }
78
+ export declare function CheckboxGroup({ label, description, error, value, defaultValue, onValueChange, name, disabled, required, children, className, ...props }: CheckboxGroupProps): React.JSX.Element;
79
+ export interface ListBoxItem {
80
+ id: string;
81
+ label: ReactNode;
82
+ /** O texto que a busca pela letra lê, quando o `label` não é texto. */
83
+ textValue?: string;
84
+ description?: ReactNode;
85
+ icon?: IconName;
86
+ disabled?: boolean;
87
+ /** O item de perigo ("Excluir"), na cor de perigo. */
88
+ danger?: boolean;
89
+ }
90
+ export interface ListBoxSection {
91
+ title: ReactNode;
92
+ items: readonly ListBoxItem[];
93
+ }
94
+ export type ListBoxSelectionMode = "none" | "single" | "multiple";
95
+ export interface ListBoxProps extends Omit<HTMLAttributes<HTMLDivElement>, "defaultValue" | "onChange"> {
96
+ /** O nome da lista para o leitor de tela. */
97
+ label: string;
98
+ items: readonly (ListBoxItem | ListBoxSection)[];
99
+ selectionMode?: ListBoxSelectionMode;
100
+ value?: readonly string[];
101
+ defaultValue?: readonly string[];
102
+ onValueChange?: (value: string[]) => void;
103
+ /** Sem escolha: o item foi ativado (Enter, Espaço ou clique). */
104
+ onAction?: (id: string) => void;
105
+ }
106
+ export declare function ListBox({ label, items, selectionMode, value, defaultValue, onValueChange, onAction, className, ...props }: ListBoxProps): React.JSX.Element;
107
+ export type TagGroupSelectionMode = "none" | "single" | "multiple";
108
+ export type TagSize = "sm" | "md" | "lg";
109
+ export type TagVariant = "default" | "surface";
110
+ export interface TagItem {
111
+ id: string;
112
+ label: ReactNode;
113
+ /** O texto do nome do X ("Remover Design"), quando o `label` não é texto. */
114
+ textValue?: string;
115
+ icon?: IconName;
116
+ disabled?: boolean;
117
+ }
118
+ export interface TagGroupProps {
119
+ /** O nome do grupo. `labelHidden` o tira da tela e deixa para o leitor de tela. */
120
+ label: ReactNode;
121
+ labelHidden?: boolean;
122
+ description?: ReactNode;
123
+ errorMessage?: ReactNode;
124
+ items: readonly TagItem[];
125
+ selectionMode?: TagGroupSelectionMode;
126
+ selectedKeys?: readonly string[];
127
+ defaultSelectedKeys?: readonly string[];
128
+ onSelectionChange?: (keys: string[]) => void;
129
+ /** Com ele, cada etiqueta ganha o X, e Delete/Backspace tiram a ativa. */
130
+ onRemove?: (ids: string[]) => void;
131
+ size?: TagSize;
132
+ variant?: TagVariant;
133
+ className?: string;
134
+ id?: string;
135
+ }
136
+ export declare function TagGroup({ label, labelHidden, description, errorMessage, items, selectionMode, selectedKeys, defaultSelectedKeys, onSelectionChange, onRemove, size, variant, className, id }: TagGroupProps): React.JSX.Element;
137
+ export type SliderOrientation = "horizontal" | "vertical";
138
+ /** O que os dois modos do Slider têm em comum (o número e a cor). É a base que o leitor da API segue em
139
+ * `base & (a | b)` — com a união sozinha, ele não acha prop nenhuma (medido no `ColorSwatch`, 13/10/2026). */
140
+ export interface SliderBase {
141
+ /** O rótulo. Obrigatório: é o nome das alças. `labelHidden` o tira da tela e deixa para o leitor de tela. */
142
+ label: ReactNode;
143
+ labelHidden?: boolean;
144
+ orientation?: SliderOrientation;
145
+ disabled?: boolean;
146
+ name?: string;
147
+ /** Mostrar o valor ao lado do rótulo. Padrão: sim. */
148
+ showValue?: boolean;
149
+ className?: string;
150
+ id?: string;
151
+ }
152
+ export interface SliderProps<V extends number | readonly number[] = number | readonly number[]> extends SliderBase {
153
+ value?: V;
154
+ defaultValue?: V;
155
+ /** Chamado a cada passo, com o número (ou a lista, na faixa). */
156
+ onValueChange?: (value: V) => void;
157
+ /** Chamado ao soltar a alça — o momento de salvar. */
158
+ onValueCommitted?: (value: V) => void;
159
+ min?: number;
160
+ max?: number;
161
+ step?: number;
162
+ /** O passo do Page Up/Down e do Shift + seta. */
163
+ largeStep?: number;
164
+ format?: Intl.NumberFormatOptions;
165
+ locale?: string;
166
+ /** Com dois valores, o nome de cada alça, na ordem ("Mínimo", "Máximo"). */
167
+ thumbLabels?: readonly string[];
168
+ channel?: undefined;
169
+ }
170
+ /** A TRILHA DE COR (0.32.0, ADR-0069), variação deste mesmo Slider: com `channel`, ele anda num canal da cor — e o
171
+ * valor passa a ser a COR (hex), como na referência, para várias trilhas repartirem a mesma. */
172
+ export interface SliderColorProps extends SliderBase {
173
+ /** O canal: `hue`, `saturation`, `brightness`, `lightness`, `red`, `green`, `blue` ou `alpha`. */
174
+ channel: ColorChannel;
175
+ /** O espaço de `hue` e `saturation` (`hsb` ou `hsl`); os outros canais já dizem o deles. Padrão: `hsb`. */
176
+ colorSpace?: ColorSpace;
177
+ /** A cor, em hex ou `rgb()`/`hsl()`/`hsb()`. Controlado. */
178
+ value?: string;
179
+ defaultValue?: string;
180
+ /** Chamado a cada passo, com o hex (`#rrggbb`, ou `#rrggbbaa` com transparência). */
181
+ onValueChange?: (value: string) => void;
182
+ /** Chamado ao soltar — o momento de salvar. */
183
+ onValueCommitted?: (value: string) => void;
184
+ }
185
+ export declare function Slider<V extends number | readonly number[]>(props: SliderBase & (SliderProps<V> | SliderColorProps)): React.JSX.Element;
186
+ export interface ColorAreaProps {
187
+ /** A cor, em hex ou `rgb()`/`hsl()`/`hsb()`. Controlado. */
188
+ value?: string;
189
+ /** A cor de partida quando você não controla. Padrão: branco. */
190
+ defaultValue?: string;
191
+ /** Chamado a cada passo, com o hex (`#rrggbb`, ou `#rrggbbaa` com transparência). */
192
+ onValueChange?: (value: string) => void;
193
+ /** Chamado ao soltar o ponteiro e a cada tecla — o momento de salvar. */
194
+ onValueCommitted?: (value: string) => void;
195
+ /** O espaço de cor da área: `hsb` (o padrão), `hsl` ou `rgb`. */
196
+ colorSpace?: ColorSpace;
197
+ /** O canal do eixo de lado. Padrão: saturação (HSB e HSL) ou vermelho (RGB). A área não tem alfa. */
198
+ xChannel?: Exclude<ColorChannel, "alpha">;
199
+ /** O canal do eixo de cima. Padrão: brilho (HSB), luminosidade (HSL) ou verde (RGB). */
200
+ yChannel?: Exclude<ColorChannel, "alpha">;
201
+ /** Pontinhos por cima da área, como na referência — ajudam a ver a posição. */
202
+ showDots?: boolean;
203
+ disabled?: boolean;
204
+ /** Vai no formulário como hex. */
205
+ name?: string;
206
+ id?: string;
207
+ className?: string;
208
+ "aria-label"?: string;
209
+ "aria-labelledby"?: string;
210
+ "aria-describedby"?: string;
211
+ }
212
+ export declare function ColorArea({ value, defaultValue, onValueChange, onValueCommitted, colorSpace, xChannel, yChannel, ...resto }: ColorAreaProps): React.JSX.Element;
213
+ export interface ColorFieldProps {
214
+ /** A cor, em hex ou `rgb()`/`hsl()`/`hsb()`; `""` é o campo vazio. Controlado. */
215
+ value?: string;
216
+ /** A cor de partida quando você não controla. Sem ela, o campo começa vazio. */
217
+ defaultValue?: string;
218
+ /** Chamado ao confirmar (Enter ou sair do campo) e a cada tecla no canal, com o hex — ou `""`, ao limpar. */
219
+ onValueChange?: (value: string) => void;
220
+ /** Chamado junto do `onValueChange` — o momento de salvar. */
221
+ onValueCommitted?: (value: string) => void;
222
+ /** Um canal só, no lugar do código: `hue`, `saturation`, `brightness`, `lightness`, `red`, `green`, `blue`, `alpha`. */
223
+ channel?: ColorChannel;
224
+ /** O espaço de `hue` e `saturation` no modo canal (`hsb` ou `hsl`). Padrão: `hsb`. */
225
+ colorSpace?: ColorSpace;
226
+ /** A amostra na frente. Padrão: sim no código, não no canal. */
227
+ swatch?: boolean;
228
+ size?: Responsive<FieldSize>;
229
+ /** `secondary` é o fundo neutro, para o campo dentro de um cartão (o mesmo do `Input`). */
230
+ variant?: FieldVariant;
231
+ /** A largura do campo — `"20rem"` ou `"auto"`. Sem ela, 100% da linha, como os outros campos. */
232
+ width?: string;
233
+ disabled?: boolean;
234
+ readOnly?: boolean;
235
+ required?: boolean;
236
+ /** Vai no formulário como hex. */
237
+ name?: string;
238
+ placeholder?: string;
239
+ id?: string;
240
+ className?: string;
241
+ "aria-label"?: string;
242
+ "aria-labelledby"?: string;
243
+ "aria-describedby"?: string;
244
+ "aria-invalid"?: boolean | "true" | "false";
245
+ }
246
+ export declare function ColorField({ value, defaultValue, onValueChange, onValueCommitted, channel, colorSpace, swatch, size, variant, width, disabled, readOnly, required, name, placeholder, id, className, ...aria }: ColorFieldProps): React.JSX.Element;
247
+ export interface ColorPickerProps {
248
+ /** O nome, ao lado da amostra no gatilho ("Cor da marca"). Nomeia o gatilho e a janela. */
249
+ label: string;
250
+ /** A cor, em hex ou `rgb()`/`hsl()`/`hsb()`. Controlado. */
251
+ value?: string;
252
+ /** A cor de partida quando você não controla. Padrão: branco. */
253
+ defaultValue?: string;
254
+ /** Chamado a cada passo, com o hex (`#rrggbb`, ou `#rrggbbaa` com transparência). */
255
+ onValueChange?: (value: string) => void;
256
+ /** Chamado ao soltar, a cada tecla, ao escolher uma amostra e ao confirmar o código — o momento de salvar. */
257
+ onValueCommitted?: (value: string) => void;
258
+ /** Cores prontas, embaixo da trilha; com `variant="swatches"`, no lugar da área. Hex ou `{color, label}`. */
259
+ swatches?: readonly (string | ColorSwatchOption)[];
260
+ /** `"swatches"`: a paleta fechada — só as amostras e o campo do código. Padrão: `"full"`. */
261
+ variant?: "full" | "swatches";
262
+ /** O conteúdo da janela, montado por quem usa (no lugar do padrão): `ColorArea`, `Slider` com `channel`,
263
+ * `ColorField` e o que mais couber. As peças de cor sem valor próprio usam a cor do seletor. */
264
+ children?: ReactNode;
265
+ disabled?: boolean;
266
+ /** Vai no formulário como hex. */
267
+ name?: string;
268
+ id?: string;
269
+ className?: string;
270
+ }
271
+ export declare function ColorPicker({ label, value, defaultValue, onValueChange, onValueCommitted, swatches, variant, children, disabled, name, id, className }: ColorPickerProps): React.JSX.Element;
59
272
  export declare function OTPField({ length, value, defaultValue, onValueChange, mask, disabled, required, label, id, className }: {
60
273
  length: number;
61
274
  value?: string;