@rdna/radiants 0.1.1 → 0.1.3
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 +87 -18
- package/animations.css +1 -1
- package/assets/icons/16px/USDC.svg +5 -0
- package/assets/icons/16px/broadcast-dish.svg +5 -0
- package/assets/icons/16px/broken-battery.svg +5 -0
- package/assets/icons/16px/calendar.svg +5 -0
- package/assets/icons/16px/calendar2.svg +5 -0
- package/assets/icons/16px/camera.svg +5 -0
- package/assets/icons/16px/cd-horizontal.svg +5 -0
- package/assets/icons/16px/cd.svg +5 -0
- package/assets/icons/16px/cell-bars.svg +5 -0
- package/assets/icons/16px/checkmark.svg +5 -0
- package/assets/icons/16px/chevron-down.svg +5 -0
- package/assets/icons/16px/chevron-left.svg +5 -0
- package/assets/icons/16px/chevron-right.svg +5 -0
- package/assets/icons/16px/clock.svg +5 -0
- package/assets/icons/16px/close-filled.svg +5 -0
- package/assets/icons/16px/close.svg +7 -0
- package/assets/icons/16px/code-file.svg +5 -0
- package/assets/icons/16px/code-folder.svg +5 -0
- package/assets/icons/16px/code-window-filled.svg +5 -0
- package/assets/icons/16px/code-window.svg +5 -0
- package/assets/icons/16px/coins.svg +5 -0
- package/assets/icons/16px/comments-blank.svg +5 -0
- package/assets/icons/16px/comments-typing.svg +5 -0
- package/assets/icons/16px/computer.svg +5 -0
- package/assets/icons/16px/copied-to-clipboard.svg +5 -0
- package/assets/icons/16px/copy-to-clipboard.svg +5 -0
- package/assets/icons/16px/copy.svg +5 -0
- package/assets/icons/16px/crosshair-3.svg +5 -0
- package/assets/icons/16px/crosshair1.svg +5 -0
- package/assets/icons/16px/crosshair2-retro.svg +5 -0
- package/assets/icons/16px/crosshair2.svg +5 -0
- package/assets/icons/16px/crosshair4.svg +5 -0
- package/assets/icons/16px/cursor-text.svg +5 -0
- package/assets/icons/16px/cursor2.svg +5 -0
- package/assets/icons/16px/cut.svg +5 -0
- package/assets/icons/16px/discord.svg +5 -0
- package/assets/icons/16px/document-image.svg +5 -0
- package/assets/icons/16px/document.svg +5 -0
- package/assets/icons/16px/document2.svg +5 -0
- package/assets/icons/16px/download.svg +5 -0
- package/assets/icons/16px/eject.svg +5 -0
- package/assets/icons/16px/electric.svg +5 -0
- package/assets/icons/16px/envelope-closed.svg +5 -0
- package/assets/icons/16px/envelope-open.svg +5 -0
- package/assets/icons/16px/equalizer.svg +5 -0
- package/assets/icons/16px/eye-hidden.svg +5 -0
- package/assets/icons/16px/eye.svg +5 -0
- package/assets/icons/16px/film-camera.svg +5 -0
- package/assets/icons/16px/film-strip-outline.svg +5 -0
- package/assets/icons/16px/film-strip.svg +5 -0
- package/assets/icons/16px/fire.svg +5 -0
- package/assets/icons/16px/folder-closed.svg +5 -0
- package/assets/icons/16px/folder-open.svg +5 -0
- package/assets/icons/16px/full-screen.svg +5 -0
- package/assets/icons/16px/game-controller.svg +5 -0
- package/assets/icons/16px/globe.svg +5 -0
- package/assets/icons/16px/go-forward.svg +5 -0
- package/assets/icons/16px/grid-3x3.svg +15 -0
- package/assets/icons/16px/grip-horizontal.svg +12 -0
- package/assets/icons/16px/grip-vertical.svg +12 -0
- package/assets/icons/16px/hamburger.svg +5 -0
- package/assets/icons/16px/hand-point.svg +5 -0
- package/assets/icons/16px/hard-drive.svg +5 -0
- package/assets/icons/16px/headphones.svg +5 -0
- package/assets/icons/16px/heart.svg +5 -0
- package/assets/icons/16px/home.svg +5 -0
- package/assets/icons/16px/home2.svg +5 -0
- package/assets/icons/16px/hourglass.svg +5 -0
- package/assets/icons/16px/info-filled.svg +5 -0
- package/assets/icons/16px/info.svg +5 -0
- package/assets/icons/16px/joystick.svg +5 -0
- package/assets/icons/16px/lightbulb.svg +5 -0
- package/assets/icons/16px/lightbulb2.svg +5 -0
- package/assets/icons/16px/line-chart.svg +5 -0
- package/assets/icons/16px/list.svg +5 -0
- package/assets/icons/16px/lock-closed.svg +5 -0
- package/assets/icons/16px/lock-open.svg +5 -0
- package/assets/icons/16px/microphone-mute.svg +5 -0
- package/assets/icons/16px/microphone.svg +5 -0
- package/assets/icons/16px/minus.svg +5 -0
- package/assets/icons/16px/money.svg +5 -0
- package/assets/icons/16px/moon.svg +5 -0
- package/assets/icons/16px/more-horizontal.svg +9 -0
- package/assets/icons/16px/more-vertical.svg +9 -0
- package/assets/icons/16px/multiple-images.svg +5 -0
- package/assets/icons/16px/music-8th-notes.svg +5 -0
- package/assets/icons/16px/outline-box.svg +5 -0
- package/assets/icons/16px/paper-plane.svg +5 -0
- package/assets/icons/16px/pause.svg +5 -0
- package/assets/icons/16px/pencil.svg +5 -0
- package/assets/icons/16px/picture-in-picture.svg +5 -0
- package/assets/icons/16px/pie-chart.svg +5 -0
- package/assets/icons/16px/play.svg +5 -0
- package/assets/icons/16px/plug.svg +5 -0
- package/assets/icons/16px/plus.svg +5 -0
- package/assets/icons/16px/power1.svg +5 -0
- package/assets/icons/16px/power2.svg +5 -0
- package/assets/icons/16px/print.svg +5 -0
- package/assets/icons/16px/question-filled.svg +5 -0
- package/assets/icons/16px/question.svg +5 -0
- package/assets/icons/16px/queue.svg +5 -0
- package/assets/icons/16px/rad-mark.svg +5 -0
- package/assets/icons/16px/radiants-logo.svg +5 -0
- package/assets/icons/16px/record-playback.svg +5 -0
- package/assets/icons/16px/record-player.svg +5 -0
- package/assets/icons/16px/refresh-filled.svg +5 -0
- package/assets/icons/16px/refresh1.svg +5 -0
- package/assets/icons/16px/reload.svg +5 -0
- package/assets/icons/16px/resize-corner.svg +5 -0
- package/assets/icons/16px/save-2.svg +5 -0
- package/assets/icons/16px/save.svg +5 -0
- package/assets/icons/16px/search.svg +5 -0
- package/assets/icons/16px/seek-back.svg +5 -0
- package/assets/icons/16px/seek-forward.svg +5 -0
- package/assets/icons/16px/settings-cog.svg +5 -0
- package/assets/icons/16px/share.svg +5 -0
- package/assets/icons/16px/skip-back.svg +5 -0
- package/assets/icons/16px/skip-forward.svg +5 -0
- package/assets/icons/16px/skull-and-crossbones.svg +5 -0
- package/assets/icons/16px/sort-descending.svg +5 -0
- package/assets/icons/16px/sort-filter-empty.svg +5 -0
- package/assets/icons/16px/sort-filter-filled.svg +5 -0
- package/assets/icons/16px/sparkles.svg +5 -0
- package/assets/icons/16px/stop-playback.svg +5 -0
- package/assets/icons/16px/swap.svg +5 -0
- package/assets/icons/16px/tape.svg +5 -0
- package/assets/icons/16px/telephone.svg +5 -0
- package/assets/icons/16px/trash-full.svg +5 -0
- package/assets/icons/16px/trash-open.svg +5 -0
- package/assets/icons/16px/trash.svg +5 -0
- package/assets/icons/16px/trophy.svg +5 -0
- package/assets/icons/16px/trophy2.svg +5 -0
- package/assets/icons/16px/tv.svg +5 -0
- package/assets/icons/16px/twitter.svg +5 -0
- package/assets/icons/16px/upload.svg +5 -0
- package/assets/icons/16px/usb-icon.svg +5 -0
- package/assets/icons/16px/usb.svg +5 -0
- package/assets/icons/16px/usericon.svg +5 -0
- package/assets/icons/16px/volume-faders.svg +5 -0
- package/assets/icons/16px/volume-high.svg +21 -0
- package/assets/icons/16px/volume-low.svg +11 -0
- package/assets/icons/16px/volume-med.svg +13 -0
- package/assets/icons/16px/volume-mute.svg +5 -0
- package/assets/icons/16px/warning-filled-outline.svg +5 -0
- package/assets/icons/16px/warning-filled.svg +5 -0
- package/assets/icons/16px/warning-hollow.svg +5 -0
- package/assets/icons/16px/wifi.svg +5 -0
- package/assets/icons/16px/window-error.svg +5 -0
- package/assets/icons/16px/windows.svg +5 -0
- package/assets/icons/16px/wrench.svg +5 -0
- package/assets/icons/16px/zip-file.svg +5 -0
- package/assets/icons/16px/zip-file2.svg +5 -0
- package/assets/icons/24px/Business-Products-treasure.svg +20 -0
- package/assets/icons/24px/beauty-barber-light-sign.svg +29 -0
- package/assets/icons/24px/beauty-beard-style.svg +35 -0
- package/assets/icons/24px/beauty-body-care-snail.svg +46 -0
- package/assets/icons/24px/beauty-body-care-sun-screen.svg +9 -0
- package/assets/icons/24px/beauty-cosmatic-brush-set.svg +28 -0
- package/assets/icons/24px/beauty-cosmatic-lip-stick.svg +13 -0
- package/assets/icons/24px/beauty-healthy-food-dish.svg +32 -0
- package/assets/icons/24px/beauty-mirror-1.svg +38 -0
- package/assets/icons/24px/beauty-mirror-2.svg +15 -0
- package/assets/icons/24px/beauty-nail-polish.svg +23 -0
- package/assets/icons/24px/beauty-perfume-1.svg +28 -0
- package/assets/icons/24px/beauty-perfume-2.svg +26 -0
- package/assets/icons/24px/building-real-eastate-deal-documant.svg +25 -0
- package/assets/icons/24px/building-real-eastate-for-sale.svg +23 -0
- package/assets/icons/24px/building-real-eastate-house-1.svg +32 -0
- package/assets/icons/24px/building-real-eastate-house-2.svg +26 -0
- package/assets/icons/24px/building-real-eastate-houses-location.svg +9 -0
- package/assets/icons/24px/building-real-eastate-location.svg +31 -0
- package/assets/icons/24px/building-real-eastate-project-blueprint.svg +14 -0
- package/assets/icons/24px/building-real-eastate-sign-for-rent.svg +27 -0
- package/assets/icons/24px/building-real-eastate-sign-house-1.svg +17 -0
- package/assets/icons/24px/building-real-eastate-sign-house-2.svg +18 -0
- package/assets/icons/24px/building-real-eastate-storage.svg +21 -0
- package/assets/icons/24px/business-money-coin-currency.svg +37 -0
- package/assets/icons/24px/business-prodect-diamond.svg +37 -0
- package/assets/icons/24px/business-product-check.svg +31 -0
- package/assets/icons/24px/business-product-piggy-bank.svg +42 -0
- package/assets/icons/24px/business-product-price-tag.svg +56 -0
- package/assets/icons/24px/business-product-report-present-grahp.svg +23 -0
- package/assets/icons/24px/business-product-scale.svg +22 -0
- package/assets/icons/24px/business-product-startup-1.svg +34 -0
- package/assets/icons/24px/business-product-startup-2.svg +32 -0
- package/assets/icons/24px/business-product-target.svg +42 -0
- package/assets/icons/24px/business-products-bag-money.svg +38 -0
- package/assets/icons/24px/business-products-bag.svg +22 -0
- package/assets/icons/24px/business-products-bag_1.svg +16 -0
- package/assets/icons/24px/business-products-boat-success.svg +37 -0
- package/assets/icons/24px/business-products-cash-search.svg +40 -0
- package/assets/icons/24px/business-products-cash-shield.svg +41 -0
- package/assets/icons/24px/business-products-cash-user-man-message.svg +30 -0
- package/assets/icons/24px/business-products-climb-top.svg +31 -0
- package/assets/icons/24px/business-products-data-file-bars.svg +10 -0
- package/assets/icons/24px/business-products-deal-handshake.svg +41 -0
- package/assets/icons/24px/business-products-factory.svg +31 -0
- package/assets/icons/24px/business-products-magic-rabbit.svg +23 -0
- package/assets/icons/24px/business-products-money.svg +24 -0
- package/assets/icons/24px/business-products-network-user.svg +35 -0
- package/assets/icons/24px/business-products-performance-money-decrease.svg +33 -0
- package/assets/icons/24px/business-products-performance-money-increase.svg +34 -0
- package/assets/icons/24px/business-products-safe.svg +27 -0
- package/assets/icons/24px/business-products-wallet-money.svg +21 -0
- package/assets/icons/24px/change-clean-energy.svg +40 -0
- package/assets/icons/24px/chat-email.svg +27 -0
- package/assets/icons/24px/coding-app-website-ui.svg +20 -0
- package/assets/icons/24px/coding-apps-websites-404-error.svg +32 -0
- package/assets/icons/24px/coding-apps-websites-android.svg +30 -0
- package/assets/icons/24px/coding-apps-websites-browser-bugs-2.svg +14 -0
- package/assets/icons/24px/coding-apps-websites-conference.svg +16 -0
- package/assets/icons/24px/coding-apps-websites-constuction.svg +28 -0
- package/assets/icons/24px/coding-apps-websites-database.svg +22 -0
- package/assets/icons/24px/coding-apps-websites-dinosaur-error.svg +25 -0
- package/assets/icons/24px/coding-apps-websites-favorite-rate.svg +41 -0
- package/assets/icons/24px/coding-apps-websites-finder.svg +13 -0
- package/assets/icons/24px/coding-apps-websites-firewall.svg +42 -0
- package/assets/icons/24px/coding-apps-websites-live-status.svg +26 -0
- package/assets/icons/24px/coding-apps-websites-mobile.svg +27 -0
- package/assets/icons/24px/coding-apps-websites-module.svg +28 -0
- package/assets/icons/24px/coding-apps-websites-music-player.svg +24 -0
- package/assets/icons/24px/coding-apps-websites-phone-tablet.svg +28 -0
- package/assets/icons/24px/coding-apps-websites-plugin.svg +19 -0
- package/assets/icons/24px/coding-apps-websites-programming-browser-bugs-1.svg +31 -0
- package/assets/icons/24px/coding-apps-websites-programming-browser.svg +13 -0
- package/assets/icons/24px/coding-apps-websites-programming-bug.svg +26 -0
- package/assets/icons/24px/coding-apps-websites-programming-hold-code.svg +57 -0
- package/assets/icons/24px/coding-apps-websites-search-bug.svg +27 -0
- package/assets/icons/24px/coding-apps-websites-setting-computer.svg +38 -0
- package/assets/icons/24px/coding-apps-websites-shield-lock.svg +37 -0
- package/assets/icons/24px/coding-apps-websites-solves.svg +24 -0
- package/assets/icons/24px/coding-apps-websites.svg +15 -0
- package/assets/icons/24px/computer-old-electronics-bug.svg +16 -0
- package/assets/icons/24px/computer-old-electronics.svg +18 -0
- package/assets/icons/24px/computers-devices-electronics-battery-charge.svg +20 -0
- package/assets/icons/24px/computers-devices-electronics-board.svg +30 -0
- package/assets/icons/24px/computers-devices-electronics-chipset.svg +14 -0
- package/assets/icons/24px/computers-devices-electronics-click-select-tablet.svg +26 -0
- package/assets/icons/24px/computers-devices-electronics-desktop.svg +28 -0
- package/assets/icons/24px/computers-devices-electronics-earpod-sound.svg +33 -0
- package/assets/icons/24px/computers-devices-electronics-flash-drive-1.svg +17 -0
- package/assets/icons/24px/computers-devices-electronics-flash-drive-2.svg +17 -0
- package/assets/icons/24px/computers-devices-electronics-graphic-tablet-draw.svg +21 -0
- package/assets/icons/24px/computers-devices-electronics-graphic-tablet.svg +24 -0
- package/assets/icons/24px/computers-devices-electronics-harddisk.svg +37 -0
- package/assets/icons/24px/computers-devices-electronics-keyboard-button.svg +22 -0
- package/assets/icons/24px/computers-devices-electronics-keyboard-pad.svg +20 -0
- package/assets/icons/24px/computers-devices-electronics-keyboard-wireless.svg +53 -0
- package/assets/icons/24px/computers-devices-electronics-keyboard.svg +36 -0
- package/assets/icons/24px/computers-devices-electronics-laptop.svg +15 -0
- package/assets/icons/24px/computers-devices-electronics-memory.svg +17 -0
- package/assets/icons/24px/computers-devices-electronics-mobile-qr-scan.svg +20 -0
- package/assets/icons/24px/computers-devices-electronics-monitor.svg +13 -0
- package/assets/icons/24px/computers-devices-electronics-mouse.svg +22 -0
- package/assets/icons/24px/computers-devices-electronics-smart-watch.svg +26 -0
- package/assets/icons/24px/computers-devices-electronics-tablet.svg +12 -0
- package/assets/icons/24px/computers-devices-electronics-tape-cassette.svg +19 -0
- package/assets/icons/24px/computers-devices-electronics-television-vintage.svg +28 -0
- package/assets/icons/24px/computers-devices-electronics-vintage-mac.svg +22 -0
- package/assets/icons/24px/computers-devices-electronics-webcam.svg +38 -0
- package/assets/icons/24px/computers-devices-electronicscd-disk.svg +35 -0
- package/assets/icons/24px/computers-devices-electronicsmicrochip-board.svg +13 -0
- package/assets/icons/24px/construction-building-real-eastate.svg +14 -0
- package/assets/icons/24px/content-files-archive-books-1.svg +19 -0
- package/assets/icons/24px/content-files-archive-books-2.svg +11 -0
- package/assets/icons/24px/content-files-archive-books-3.svg +12 -0
- package/assets/icons/24px/content-files-book-library.svg +12 -0
- package/assets/icons/24px/content-files-book.svg +19 -0
- package/assets/icons/24px/content-files-books-1.svg +23 -0
- package/assets/icons/24px/content-files-books-2.svg +19 -0
- package/assets/icons/24px/content-files-close-book-bookmark.svg +14 -0
- package/assets/icons/24px/content-files-draw-content.svg +36 -0
- package/assets/icons/24px/content-files-favorite-book.svg +18 -0
- package/assets/icons/24px/content-files-folder-open.svg +20 -0
- package/assets/icons/24px/content-files-newspaper.svg +23 -0
- package/assets/icons/24px/content-files-note-book.svg +14 -0
- package/assets/icons/24px/content-files-note.svg +15 -0
- package/assets/icons/24px/content-files-notepad.svg +24 -0
- package/assets/icons/24px/content-files-open-book-bookmark.svg +29 -0
- package/assets/icons/24px/content-files-open-book.svg +30 -0
- package/assets/icons/24px/content-files-pdf.svg +11 -0
- package/assets/icons/24px/content-files-pen.svg +29 -0
- package/assets/icons/24px/content-files-pencil-brush.svg +78 -0
- package/assets/icons/24px/content-files-pencil-ruler.svg +30 -0
- package/assets/icons/24px/content-files-phone-book.svg +13 -0
- package/assets/icons/24px/content-files-quill-ink.svg +28 -0
- package/assets/icons/24px/content-files-sticky-notepad-1.svg +18 -0
- package/assets/icons/24px/content-files-sticky-notepad-2.svg +31 -0
- package/assets/icons/24px/content-files-typing-machine.svg +21 -0
- package/assets/icons/24px/content-files-write-note.svg +38 -0
- package/assets/icons/24px/cursor-hand.svg +20 -0
- package/assets/icons/24px/design-artboard-shapes.svg +17 -0
- package/assets/icons/24px/design-color-brush-paint.svg +35 -0
- package/assets/icons/24px/design-color-bucket-brush.svg +30 -0
- package/assets/icons/24px/design-color-bucket.svg +25 -0
- package/assets/icons/24px/design-color-painting-palette.svg +42 -0
- package/assets/icons/24px/design-color-palette-sample.svg +35 -0
- package/assets/icons/24px/design-color-spray.svg +32 -0
- package/assets/icons/24px/design-color-tube-pastel.svg +16 -0
- package/assets/icons/24px/design-crop-edit-picture.svg +15 -0
- package/assets/icons/24px/design-drawing-board.svg +23 -0
- package/assets/icons/24px/design-dropper-1.svg +15 -0
- package/assets/icons/24px/design-dropper-2.svg +41 -0
- package/assets/icons/24px/design-half-circle-ruler.svg +26 -0
- package/assets/icons/24px/design-hilight.svg +36 -0
- package/assets/icons/24px/design-ink-pen.svg +33 -0
- package/assets/icons/24px/design-layer.svg +29 -0
- package/assets/icons/24px/design-magic-wand.svg +36 -0
- package/assets/icons/24px/design-pencil.svg +13 -0
- package/assets/icons/24px/design-ruler.svg +12 -0
- package/assets/icons/24px/design-stamp.svg +24 -0
- package/assets/icons/24px/design-vectors-pen-new-anchor.svg +30 -0
- package/assets/icons/24px/ecology-bush.svg +39 -0
- package/assets/icons/24px/ecology-cactus.svg +38 -0
- package/assets/icons/24px/ecology-clean-battery.svg +29 -0
- package/assets/icons/24px/ecology-clean-car-cable-charge.svg +25 -0
- package/assets/icons/24px/ecology-global-house.svg +19 -0
- package/assets/icons/24px/ecology-global-warming-globe-fire.svg +42 -0
- package/assets/icons/24px/ecology-global-warming-globe.svg +40 -0
- package/assets/icons/24px/ecology-gmo-food-fruit.svg +41 -0
- package/assets/icons/24px/ecology-growth-plant.svg +36 -0
- package/assets/icons/24px/ecology-leaf-bug.svg +39 -0
- package/assets/icons/24px/ecology-nuclear-energy.svg +30 -0
- package/assets/icons/24px/ecology-organic-sun-growth.svg +30 -0
- package/assets/icons/24px/ecology-plant-growth-soil-nature.svg +54 -0
- package/assets/icons/24px/ecology-renewable-energy-solar-panel.svg +25 -0
- package/assets/icons/24px/ecology-renewable-energy-wind-turbine.svg +43 -0
- package/assets/icons/24px/ecology-solar-cell.svg +28 -0
- package/assets/icons/24px/ecology-tree.svg +34 -0
- package/assets/icons/24px/ecology-windmill-1.svg +56 -0
- package/assets/icons/24px/ecology-windmill-2.svg +22 -0
- package/assets/icons/24px/ecology-wood-plant-grow.svg +32 -0
- package/assets/icons/24px/email-chat-think.svg +27 -0
- package/assets/icons/24px/email-emoji-smile-smart.svg +31 -0
- package/assets/icons/24px/email-envelope-close.svg +35 -0
- package/assets/icons/24px/email-envelope-open.svg +35 -0
- package/assets/icons/24px/email-envelope.svg +13 -0
- package/assets/icons/24px/email-forward-mail.svg +29 -0
- package/assets/icons/24px/email-mail-chat.svg +20 -0
- package/assets/icons/24px/email-mail-open-address.svg +34 -0
- package/assets/icons/24px/email-mailbox-close.svg +9 -0
- package/assets/icons/24px/email-mailbox-open.svg +16 -0
- package/assets/icons/24px/email-mailbox.svg +15 -0
- package/assets/icons/24px/email-stamp-mail.svg +27 -0
- package/assets/icons/24px/email-tray.svg +16 -0
- package/assets/icons/24px/entertainment-events-hobbies-board-game-dice.svg +28 -0
- package/assets/icons/24px/entertainment-events-hobbies-bomb.svg +20 -0
- package/assets/icons/24px/entertainment-events-hobbies-card-game-card-club.svg +17 -0
- package/assets/icons/24px/entertainment-events-hobbies-chess-knight.svg +28 -0
- package/assets/icons/24px/entertainment-events-hobbies-chess-pawn.svg +18 -0
- package/assets/icons/24px/entertainment-events-hobbies-chess-rook.svg +15 -0
- package/assets/icons/24px/entertainment-events-hobbies-film-camrea.svg +19 -0
- package/assets/icons/24px/entertainment-events-hobbies-film-player.svg +14 -0
- package/assets/icons/24px/entertainment-events-hobbies-film-roll.svg +30 -0
- package/assets/icons/24px/entertainment-events-hobbies-game-machines-arcade-1.svg +18 -0
- package/assets/icons/24px/entertainment-events-hobbies-game-machines-arcade-2.svg +20 -0
- package/assets/icons/24px/entertainment-events-hobbies-game-pool-snooker-ball.svg +29 -0
- package/assets/icons/24px/entertainment-events-hobbies-glasses-3d.svg +38 -0
- package/assets/icons/24px/entertainment-events-hobbies-horror-ghost.svg +43 -0
- package/assets/icons/24px/entertainment-events-hobbies-popcorn.svg +30 -0
- package/assets/icons/24px/entertainment-events-hobbies-record-player.svg +21 -0
- package/assets/icons/24px/entertainment-events-hobbies-reward-winner-talent.svg +18 -0
- package/assets/icons/24px/entertainment-events-hobbies-ticket.svg +31 -0
- package/assets/icons/24px/entertainment-events-hobbies-video-camera-film-1.svg +40 -0
- package/assets/icons/24px/entertainment-events-hobbies-video-camera-film-2.svg +39 -0
- package/assets/icons/24px/entertainment-events-hobbies-video-camera-film-3.svg +32 -0
- package/assets/icons/24px/entertainment-events-hobbies-video-movie-producer-director-chair.svg +23 -0
- package/assets/icons/24px/food-drink-bread.svg +18 -0
- package/assets/icons/24px/food-drink-coffee-cup.svg +12 -0
- package/assets/icons/24px/food-drink-coffee.svg +41 -0
- package/assets/icons/24px/food-drink-desert-cake-pond.svg +27 -0
- package/assets/icons/24px/food-drink-desert-cake.svg +30 -0
- package/assets/icons/24px/food-drink-desert-cotton-candy.svg +40 -0
- package/assets/icons/24px/food-drink-desert-cupcake.svg +31 -0
- package/assets/icons/24px/food-drink-desert-donut.svg +56 -0
- package/assets/icons/24px/food-drink-desert-icecream.svg +16 -0
- package/assets/icons/24px/food-drink-egg.svg +28 -0
- package/assets/icons/24px/food-drink-fish-bone.svg +22 -0
- package/assets/icons/24px/food-drink-fish.svg +35 -0
- package/assets/icons/24px/food-drink-fried-chicken.svg +35 -0
- package/assets/icons/24px/food-drink-fruit-cherry.svg +30 -0
- package/assets/icons/24px/food-drink-hamburger.svg +26 -0
- package/assets/icons/24px/food-drink-milk.svg +25 -0
- package/assets/icons/24px/food-drink-pizza.svg +40 -0
- package/assets/icons/24px/food-drink-rice-ball.svg +36 -0
- package/assets/icons/24px/food-drink-sushi.svg +27 -0
- package/assets/icons/24px/food-drink-tea.svg +29 -0
- package/assets/icons/24px/hand-awesome.svg +23 -0
- package/assets/icons/24px/hand-cross-finger-heart.svg +38 -0
- package/assets/icons/24px/hand-dislike.svg +22 -0
- package/assets/icons/24px/hand-fight-2-finger.svg +33 -0
- package/assets/icons/24px/hand-fiist.svg +19 -0
- package/assets/icons/24px/hand-four.svg +22 -0
- package/assets/icons/24px/hand-fuck-middle-finger.svg +21 -0
- package/assets/icons/24px/hand-gesture-finger-click.svg +27 -0
- package/assets/icons/24px/hand-like.svg +22 -0
- package/assets/icons/24px/hand-little-finger.svg +18 -0
- package/assets/icons/24px/hand-love-sign.svg +19 -0
- package/assets/icons/24px/hand-love.svg +23 -0
- package/assets/icons/24px/hand-ok.svg +32 -0
- package/assets/icons/24px/hand-point.svg +20 -0
- package/assets/icons/24px/hand-three-finger.svg +22 -0
- package/assets/icons/24px/hand-writing.svg +30 -0
- package/assets/icons/24px/hand-zombie.svg +55 -0
- package/assets/icons/24px/hand-zoom.svg +28 -0
- package/assets/icons/24px/hand.svg +24 -0
- package/assets/icons/24px/health-ambulance-call.svg +28 -0
- package/assets/icons/24px/health-ambulance-car.svg +30 -0
- package/assets/icons/24px/health-anti-virus.svg +15 -0
- package/assets/icons/24px/health-bandage.svg +71 -0
- package/assets/icons/24px/health-blood-drop-type.svg +22 -0
- package/assets/icons/24px/health-brain-1.svg +48 -0
- package/assets/icons/24px/health-brain-2.svg +49 -0
- package/assets/icons/24px/health-dentistry-tooth.svg +32 -0
- package/assets/icons/24px/health-drug-medicine-bag-aid-1.svg +28 -0
- package/assets/icons/24px/health-drug-medicine-bag-aid-2.svg +16 -0
- package/assets/icons/24px/health-drug-medicine-water.svg +24 -0
- package/assets/icons/24px/health-drug-medicine.svg +21 -0
- package/assets/icons/24px/health-drugs-cannabis.svg +50 -0
- package/assets/icons/24px/health-drugs-pill.svg +21 -0
- package/assets/icons/24px/health-health-dead.svg +29 -0
- package/assets/icons/24px/health-hospital-building-1.svg +21 -0
- package/assets/icons/24px/health-hospital-building-2.svg +15 -0
- package/assets/icons/24px/health-injection.svg +37 -0
- package/assets/icons/24px/health-laboratory-test-blood-sugar.svg +65 -0
- package/assets/icons/24px/health-laboratory-test-stool-cup.svg +19 -0
- package/assets/icons/24px/health-laboratory.svg +24 -0
- package/assets/icons/24px/health-medical-notes.svg +16 -0
- package/assets/icons/24px/health-monitor-heart-beat.svg +41 -0
- package/assets/icons/24px/health-stool.svg +56 -0
- package/assets/icons/24px/health-transfusion-bag.svg +23 -0
- package/assets/icons/24px/health-virus.svg +31 -0
- package/assets/icons/24px/interface-essential-alarm-bell-off.svg +27 -0
- package/assets/icons/24px/interface-essential-alarm-bell-sleep.svg +44 -0
- package/assets/icons/24px/interface-essential-alert-caution.svg +28 -0
- package/assets/icons/24px/interface-essential-alert-circle-1.svg +9 -0
- package/assets/icons/24px/interface-essential-alert-circle-2.svg +32 -0
- package/assets/icons/24px/interface-essential-alert-triangle-1.svg +30 -0
- package/assets/icons/24px/interface-essential-alert-triangle-2.svg +9 -0
- package/assets/icons/24px/interface-essential-alert.svg +53 -0
- package/assets/icons/24px/interface-essential-battery.svg +12 -0
- package/assets/icons/24px/interface-essential-bin.svg +16 -0
- package/assets/icons/24px/interface-essential-blutooth.svg +31 -0
- package/assets/icons/24px/interface-essential-bookmark.svg +17 -0
- package/assets/icons/24px/interface-essential-bookmark_1.svg +23 -0
- package/assets/icons/24px/interface-essential-calendar-appointment.svg +20 -0
- package/assets/icons/24px/interface-essential-calendar-date.svg +12 -0
- package/assets/icons/24px/interface-essential-call-center-contact-help.svg +17 -0
- package/assets/icons/24px/interface-essential-clip-1.svg +45 -0
- package/assets/icons/24px/interface-essential-clip-2.svg +21 -0
- package/assets/icons/24px/interface-essential-clock.svg +31 -0
- package/assets/icons/24px/interface-essential-clound-download.svg +28 -0
- package/assets/icons/24px/interface-essential-cog-browser.svg +42 -0
- package/assets/icons/24px/interface-essential-cog-double.svg +60 -0
- package/assets/icons/24px/interface-essential-cog-hand-give.svg +41 -0
- package/assets/icons/24px/interface-essential-cog-search.svg +51 -0
- package/assets/icons/24px/interface-essential-crown.svg +30 -0
- package/assets/icons/24px/interface-essential-cursor-click-point.svg +35 -0
- package/assets/icons/24px/interface-essential-cursor-select.svg +23 -0
- package/assets/icons/24px/interface-essential-cursor.svg +25 -0
- package/assets/icons/24px/interface-essential-dial-pad-1.svg +23 -0
- package/assets/icons/24px/interface-essential-dial-pad-2.svg +22 -0
- package/assets/icons/24px/interface-essential-dial-pad-finger-1.svg +23 -0
- package/assets/icons/24px/interface-essential-dial-pad-finger-2.svg +38 -0
- package/assets/icons/24px/interface-essential-direction-button.svg +47 -0
- package/assets/icons/24px/interface-essential-edit-fill.svg +42 -0
- package/assets/icons/24px/interface-essential-eraser.svg +55 -0
- package/assets/icons/24px/interface-essential-expand-1.svg +22 -0
- package/assets/icons/24px/interface-essential-expand-2.svg +30 -0
- package/assets/icons/24px/interface-essential-expand-3.svg +53 -0
- package/assets/icons/24px/interface-essential-face-id-1.svg +44 -0
- package/assets/icons/24px/interface-essential-face-id.svg +33 -0
- package/assets/icons/24px/interface-essential-file-error.svg +11 -0
- package/assets/icons/24px/interface-essential-filter.svg +30 -0
- package/assets/icons/24px/interface-essential-find-text.svg +27 -0
- package/assets/icons/24px/interface-essential-finger-print-scan.svg +51 -0
- package/assets/icons/24px/interface-essential-flag.svg +15 -0
- package/assets/icons/24px/interface-essential-flash.svg +45 -0
- package/assets/icons/24px/interface-essential-flip-vertical-down.svg +20 -0
- package/assets/icons/24px/interface-essential-flip-vertical-up.svg +20 -0
- package/assets/icons/24px/interface-essential-floppy-disk.svg +18 -0
- package/assets/icons/24px/interface-essential-global-public.svg +17 -0
- package/assets/icons/24px/interface-essential-hammer-1.svg +33 -0
- package/assets/icons/24px/interface-essential-hammer-2.svg +32 -0
- package/assets/icons/24px/interface-essential-heart-favorite.svg +35 -0
- package/assets/icons/24px/interface-essential-hierarchy-1.svg +23 -0
- package/assets/icons/24px/interface-essential-hierarchy-2.svg +23 -0
- package/assets/icons/24px/interface-essential-hierarchy-3.svg +20 -0
- package/assets/icons/24px/interface-essential-hierarchy-4.svg +31 -0
- package/assets/icons/24px/interface-essential-hierarchy-5.svg +27 -0
- package/assets/icons/24px/interface-essential-hierarchy-files.svg +22 -0
- package/assets/icons/24px/interface-essential-home-1.svg +16 -0
- package/assets/icons/24px/interface-essential-home-2.svg +25 -0
- package/assets/icons/24px/interface-essential-hyperlink.svg +23 -0
- package/assets/icons/24px/interface-essential-information-circle-1.svg +32 -0
- package/assets/icons/24px/interface-essential-information-circle-2.svg +5 -0
- package/assets/icons/24px/interface-essential-iris-scan-approved.svg +33 -0
- package/assets/icons/24px/interface-essential-iris-scan.svg +35 -0
- package/assets/icons/24px/interface-essential-key-1.svg +40 -0
- package/assets/icons/24px/interface-essential-key-lock.svg +28 -0
- package/assets/icons/24px/interface-essential-key-login.svg +40 -0
- package/assets/icons/24px/interface-essential-key.svg +25 -0
- package/assets/icons/24px/interface-essential-keyboard-button-direction-1.svg +16 -0
- package/assets/icons/24px/interface-essential-keyboard-button-direction-2.svg +10 -0
- package/assets/icons/24px/interface-essential-light-bulb.svg +27 -0
- package/assets/icons/24px/interface-essential-link-broken-1.svg +39 -0
- package/assets/icons/24px/interface-essential-link-broken-2.svg +37 -0
- package/assets/icons/24px/interface-essential-link.svg +29 -0
- package/assets/icons/24px/interface-essential-list.svg +21 -0
- package/assets/icons/24px/interface-essential-loading-0-percent-1.svg +33 -0
- package/assets/icons/24px/interface-essential-loading-0-percent.svg +33 -0
- package/assets/icons/24px/interface-essential-loading-100-percent-1.svg +16 -0
- package/assets/icons/24px/interface-essential-loading-100-percent.svg +36 -0
- package/assets/icons/24px/interface-essential-loading-20-percent.svg +34 -0
- package/assets/icons/24px/interface-essential-loading-25-percent-1.svg +29 -0
- package/assets/icons/24px/interface-essential-loading-50-percent-1.svg +24 -0
- package/assets/icons/24px/interface-essential-loading-50-percent.svg +34 -0
- package/assets/icons/24px/interface-essential-loading-75-percent-1.svg +19 -0
- package/assets/icons/24px/interface-essential-loading-80-percent.svg +34 -0
- package/assets/icons/24px/interface-essential-loading-circle-1.svg +14 -0
- package/assets/icons/24px/interface-essential-loading-circle-2.svg +19 -0
- package/assets/icons/24px/interface-essential-loading-status.svg +15 -0
- package/assets/icons/24px/interface-essential-lock-1.svg +24 -0
- package/assets/icons/24px/interface-essential-lock-door-out.svg +23 -0
- package/assets/icons/24px/interface-essential-lock-shield.svg +35 -0
- package/assets/icons/24px/interface-essential-lock.svg +16 -0
- package/assets/icons/24px/interface-essential-magnet.svg +22 -0
- package/assets/icons/24px/interface-essential-map.svg +19 -0
- package/assets/icons/24px/interface-essential-message.svg +31 -0
- package/assets/icons/24px/interface-essential-microphone.svg +25 -0
- package/assets/icons/24px/interface-essential-move.svg +10 -0
- package/assets/icons/24px/interface-essential-navigation-left-circle-1.svg +5 -0
- package/assets/icons/24px/interface-essential-navigation-left-circle-2.svg +31 -0
- package/assets/icons/24px/interface-essential-navigation-menu-1.svg +17 -0
- package/assets/icons/24px/interface-essential-navigation-menu-2.svg +18 -0
- package/assets/icons/24px/interface-essential-navigation-menu-3.svg +20 -0
- package/assets/icons/24px/interface-essential-navigation-right-circle-1.svg +5 -0
- package/assets/icons/24px/interface-essential-navigation-right-circle-2.svg +31 -0
- package/assets/icons/24px/interface-essential-note-music.svg +14 -0
- package/assets/icons/24px/interface-essential-notification-alert.svg +47 -0
- package/assets/icons/24px/interface-essential-pacman-loading.svg +38 -0
- package/assets/icons/24px/interface-essential-paginate-filter-camera.svg +12 -0
- package/assets/icons/24px/interface-essential-paginate-filter-heart.svg +12 -0
- package/assets/icons/24px/interface-essential-paginate-filter-music.svg +15 -0
- package/assets/icons/24px/interface-essential-paginate-filter-picture.svg +23 -0
- package/assets/icons/24px/interface-essential-paginate-filter-video.svg +12 -0
- package/assets/icons/24px/interface-essential-password-type.svg +30 -0
- package/assets/icons/24px/interface-essential-pencil-edit-1.svg +13 -0
- package/assets/icons/24px/interface-essential-pencil-edit-2.svg +59 -0
- package/assets/icons/24px/interface-essential-pie-chart-poll-report-1.svg +41 -0
- package/assets/icons/24px/interface-essential-pie-chart-poll-report-2.svg +22 -0
- package/assets/icons/24px/interface-essential-pin.svg +40 -0
- package/assets/icons/24px/interface-essential-poll.svg +18 -0
- package/assets/icons/24px/interface-essential-print.svg +17 -0
- package/assets/icons/24px/interface-essential-profile-female.svg +35 -0
- package/assets/icons/24px/interface-essential-profile-male.svg +39 -0
- package/assets/icons/24px/interface-essential-protect-guard.svg +29 -0
- package/assets/icons/24px/interface-essential-protect-rubber-ring.svg +30 -0
- package/assets/icons/24px/interface-essential-question-help-circle-1.svg +5 -0
- package/assets/icons/24px/interface-essential-question-help-circle-2.svg +32 -0
- package/assets/icons/24px/interface-essential-question-help-square.svg +20 -0
- package/assets/icons/24px/interface-essential-recycle.svg +28 -0
- package/assets/icons/24px/interface-essential-reflect-down-up.svg +40 -0
- package/assets/icons/24px/interface-essential-reflect-down.svg +40 -0
- package/assets/icons/24px/interface-essential-refresh.svg +22 -0
- package/assets/icons/24px/interface-essential-safari-compass.svg +59 -0
- package/assets/icons/24px/interface-essential-satellite.svg +30 -0
- package/assets/icons/24px/interface-essential-scisor.svg +24 -0
- package/assets/icons/24px/interface-essential-scroll-horizontal.svg +31 -0
- package/assets/icons/24px/interface-essential-scroll-vertical.svg +31 -0
- package/assets/icons/24px/interface-essential-search-1.svg +27 -0
- package/assets/icons/24px/interface-essential-search-binocular.svg +37 -0
- package/assets/icons/24px/interface-essential-search-check.svg +24 -0
- package/assets/icons/24px/interface-essential-search-remove.svg +24 -0
- package/assets/icons/24px/interface-essential-send-mail.svg +20 -0
- package/assets/icons/24px/interface-essential-setting-cog.svg +51 -0
- package/assets/icons/24px/interface-essential-setting-slide.svg +15 -0
- package/assets/icons/24px/interface-essential-settings-toggle-horizontal.svg +20 -0
- package/assets/icons/24px/interface-essential-share-1.svg +17 -0
- package/assets/icons/24px/interface-essential-share-2.svg +18 -0
- package/assets/icons/24px/interface-essential-share-3.svg +16 -0
- package/assets/icons/24px/interface-essential-shrink-1.svg +24 -0
- package/assets/icons/24px/interface-essential-shrink-2.svg +30 -0
- package/assets/icons/24px/interface-essential-shrink-3.svg +53 -0
- package/assets/icons/24px/interface-essential-shrink-4.svg +27 -0
- package/assets/icons/24px/interface-essential-signin-expand.svg +43 -0
- package/assets/icons/24px/interface-essential-signin-login.svg +18 -0
- package/assets/icons/24px/interface-essential-signout-logout.svg +18 -0
- package/assets/icons/24px/interface-essential-skull-1.svg +29 -0
- package/assets/icons/24px/interface-essential-skull-2.svg +21 -0
- package/assets/icons/24px/interface-essential-sound.svg +34 -0
- package/assets/icons/24px/interface-essential-speaker-announce.svg +26 -0
- package/assets/icons/24px/interface-essential-stat.svg +20 -0
- package/assets/icons/24px/interface-essential-stop-sign-1.svg +44 -0
- package/assets/icons/24px/interface-essential-stop-sign-2.svg +13 -0
- package/assets/icons/24px/interface-essential-stopwatch.svg +39 -0
- package/assets/icons/24px/interface-essential-switch-off.svg +22 -0
- package/assets/icons/24px/interface-essential-switch-on.svg +27 -0
- package/assets/icons/24px/interface-essential-synchronize-arrows-square-1.svg +16 -0
- package/assets/icons/24px/interface-essential-synchronize-arrows-square-2.svg +12 -0
- package/assets/icons/24px/interface-essential-text-format-1.svg +21 -0
- package/assets/icons/24px/interface-essential-text-format-2.svg +10 -0
- package/assets/icons/24px/interface-essential-text-input-area-1.svg +18 -0
- package/assets/icons/24px/interface-essential-text-input-area-2.svg +24 -0
- package/assets/icons/24px/interface-essential-text-input-area-3.svg +36 -0
- package/assets/icons/24px/interface-essential-touch-id-lock.svg +32 -0
- package/assets/icons/24px/interface-essential-touch-id-smartphone.svg +30 -0
- package/assets/icons/24px/interface-essential-translate.svg +38 -0
- package/assets/icons/24px/interface-essential-trophy.svg +23 -0
- package/assets/icons/24px/interface-essential-view-eye.svg +35 -0
- package/assets/icons/24px/interface-essential-voice-id.svg +15 -0
- package/assets/icons/24px/interface-essential-waiting-hourglass-loading.svg +19 -0
- package/assets/icons/24px/interface-essential-watch-time.svg +11 -0
- package/assets/icons/24px/interface-essential-wifi-feed.svg +10 -0
- package/assets/icons/24px/interface-essential-wifi-signal.svg +47 -0
- package/assets/icons/24px/interface-essential-wireless.svg +47 -0
- package/assets/icons/24px/interface-essential-wrench-1.svg +30 -0
- package/assets/icons/24px/interface-essential-wrench-2.svg +52 -0
- package/assets/icons/24px/interface-essential-zoom-in-page.svg +30 -0
- package/assets/icons/24px/interface-essential-zoom-in.svg +24 -0
- package/assets/icons/24px/interface-essential-zoom-out-page.svg +30 -0
- package/assets/icons/24px/interface-essential-zoom-out.svg +24 -0
- package/assets/icons/24px/internet-network-arrow-sync.svg +30 -0
- package/assets/icons/24px/internet-network-cloud-error.svg +35 -0
- package/assets/icons/24px/internet-network-cloud-off.svg +23 -0
- package/assets/icons/24px/internet-network-computer-download.svg +13 -0
- package/assets/icons/24px/internet-network-computer-upload.svg +13 -0
- package/assets/icons/24px/internet-network-download.svg +18 -0
- package/assets/icons/24px/internet-network-laptop.svg +18 -0
- package/assets/icons/24px/internet-network-upload.svg +18 -0
- package/assets/icons/24px/internet-network-wifi-monitor.svg +27 -0
- package/assets/icons/24px/internet-network-www.svg +35 -0
- package/assets/icons/24px/logo-discord.svg +9 -0
- package/assets/icons/24px/logo-linkedin.svg +21 -0
- package/assets/icons/24px/logo-pinterest.svg +15 -0
- package/assets/icons/24px/logo-snapchat.svg +5 -0
- package/assets/icons/24px/logo-social-media-dropbox.svg +43 -0
- package/assets/icons/24px/logo-social-media-facebook-circle.svg +5 -0
- package/assets/icons/24px/logo-social-media-instagram-circle.svg +10 -0
- package/assets/icons/24px/logo-social-media-instagram.svg +17 -0
- package/assets/icons/24px/logo-social-media-old-instagram.svg +25 -0
- package/assets/icons/24px/logo-social-media-tiktok-circle.svg +8 -0
- package/assets/icons/24px/logo-social-media-tiktok.svg +18 -0
- package/assets/icons/24px/logo-social-media-twitter-circle.svg +8 -0
- package/assets/icons/24px/logo-social-media-youtube-circle.svg +5 -0
- package/assets/icons/24px/logo-social-media-youtube.svg +19 -0
- package/assets/icons/24px/logo-soundcloud-1.svg +23 -0
- package/assets/icons/24px/logo-soundcloud-2.svg +12 -0
- package/assets/icons/24px/logo-spotify.svg +5 -0
- package/assets/icons/24px/logo-twitch-1.svg +8 -0
- package/assets/icons/24px/logo-twitch-2.svg +37 -0
- package/assets/icons/24px/logo-twitter.svg +31 -0
- package/assets/icons/24px/logo-whatapp.svg +28 -0
- package/assets/icons/24px/map-navigation-compass-direction.svg +31 -0
- package/assets/icons/24px/map-navigation-location-focus.svg +23 -0
- package/assets/icons/24px/map-navigation-pin-location-1.svg +31 -0
- package/assets/icons/24px/map-navigation-pin-location-2.svg +35 -0
- package/assets/icons/24px/map-navigation-pin-location-trip.svg +41 -0
- package/assets/icons/24px/mobile-phone.svg +22 -0
- package/assets/icons/24px/money-payments-accounting-bill-money-1.svg +35 -0
- package/assets/icons/24px/money-payments-accounting-bill-money-2.svg +39 -0
- package/assets/icons/24px/money-payments-accounting-calculator.svg +25 -0
- package/assets/icons/24px/money-payments-bank.svg +24 -0
- package/assets/icons/24px/money-payments-calculator-app.svg +17 -0
- package/assets/icons/24px/money-payments-cash-payment-coin.svg +36 -0
- package/assets/icons/24px/money-payments-credit-card-mastercard.svg +26 -0
- package/assets/icons/24px/money-payments-credit-card-visa.svg +22 -0
- package/assets/icons/24px/money-payments-currency-euro-dollar-exchange.svg +44 -0
- package/assets/icons/24px/money-payments-diamond.svg +56 -0
- package/assets/icons/24px/money-payments-saving-treasure.svg +18 -0
- package/assets/icons/24px/money-payments-self-payment.svg +23 -0
- package/assets/icons/24px/money-payments-smartphone-pay-dollar.svg +24 -0
- package/assets/icons/24px/multiple-user.svg +25 -0
- package/assets/icons/24px/music-album-cd-disk-playlist.svg +22 -0
- package/assets/icons/24px/music-clef-sheet.svg +28 -0
- package/assets/icons/24px/music-disk-cd-1.svg +39 -0
- package/assets/icons/24px/music-disk-cd-2.svg +47 -0
- package/assets/icons/24px/music-headphones-human.svg +30 -0
- package/assets/icons/24px/music-microphone-1.svg +17 -0
- package/assets/icons/24px/music-microphone-2.svg +26 -0
- package/assets/icons/24px/music-microphone-off.svg +28 -0
- package/assets/icons/24px/music-notes-music-1.svg +14 -0
- package/assets/icons/24px/music-notes-music-2.svg +47 -0
- package/assets/icons/24px/music-radio-stereo.svg +38 -0
- package/assets/icons/24px/music-speaker.svg +27 -0
- package/assets/icons/24px/music-vinyl-record.svg +8 -0
- package/assets/icons/24px/music-walkman-cassette.svg +30 -0
- package/assets/icons/24px/non-gmo-fertilizer.svg +41 -0
- package/assets/icons/24px/notification-email.svg +16 -0
- package/assets/icons/24px/pet-animals-bear.svg +33 -0
- package/assets/icons/24px/pet-animals-buffalo.svg +41 -0
- package/assets/icons/24px/pet-animals-cat.svg +39 -0
- package/assets/icons/24px/pet-animals-dog.svg +41 -0
- package/assets/icons/24px/pet-animals-frog-face.svg +36 -0
- package/assets/icons/24px/pet-animals-frog.svg +45 -0
- package/assets/icons/24px/pet-animals-gorilla.svg +30 -0
- package/assets/icons/24px/pet-animals-ox.svg +39 -0
- package/assets/icons/24px/pet-animals-pig.svg +33 -0
- package/assets/icons/24px/pet-animals-rabbit-1.svg +37 -0
- package/assets/icons/24px/pet-animals-rabbit-2.svg +33 -0
- package/assets/icons/24px/pet-animals-turtle.svg +36 -0
- package/assets/icons/24px/phone-actions-remove-1.svg +13 -0
- package/assets/icons/24px/phone-actions-remove-2.svg +14 -0
- package/assets/icons/24px/phone-incoming-call.svg +26 -0
- package/assets/icons/24px/phone-off-1.svg +35 -0
- package/assets/icons/24px/phone-off-2.svg +24 -0
- package/assets/icons/24px/phone-scan-qr-code-1.svg +18 -0
- package/assets/icons/24px/phone-scan-qr-code-2.svg +31 -0
- package/assets/icons/24px/phone-signal-full.svg +14 -0
- package/assets/icons/24px/phone-vibrate.svg +44 -0
- package/assets/icons/24px/photography-camera-1.svg +27 -0
- package/assets/icons/24px/photography-equipment-film-print.svg +23 -0
- package/assets/icons/24px/photography-file-picture.svg +18 -0
- package/assets/icons/24px/photography-focus-flower.svg +24 -0
- package/assets/icons/24px/photography-frame-picture.svg +32 -0
- package/assets/icons/24px/photography-light-mode-flash-on.svg +31 -0
- package/assets/icons/24px/photography-photo-image.svg +26 -0
- package/assets/icons/24px/photography-picture-polaroid.svg +25 -0
- package/assets/icons/24px/photography-retouch-wand-star.svg +48 -0
- package/assets/icons/24px/photography-retouch-wand.svg +47 -0
- package/assets/icons/24px/photography-taking-pictures-circle-alternate.svg +40 -0
- package/assets/icons/24px/real-estate-building-1.svg +11 -0
- package/assets/icons/24px/real-estate-building-2.svg +13 -0
- package/assets/icons/24px/real-estate-building-3.svg +28 -0
- package/assets/icons/24px/real-estate-building-4.svg +23 -0
- package/assets/icons/24px/real-estate-building-ad.svg +17 -0
- package/assets/icons/24px/real-estate-building-factory.svg +17 -0
- package/assets/icons/24px/real-estate-building-house.svg +15 -0
- package/assets/icons/24px/real-estate-sign-building.svg +22 -0
- package/assets/icons/24px/romance-heart-lock.svg +34 -0
- package/assets/icons/24px/romance-love-letter-open.svg +31 -0
- package/assets/icons/24px/school-science-bag.svg +23 -0
- package/assets/icons/24px/school-science-dna.svg +21 -0
- package/assets/icons/24px/school-science-graduation-cap.svg +33 -0
- package/assets/icons/24px/school-science-test-flask.svg +28 -0
- package/assets/icons/24px/search-coding.svg +36 -0
- package/assets/icons/24px/search-user.svg +30 -0
- package/assets/icons/24px/send-email.svg +24 -0
- package/assets/icons/24px/shopping-shipping-bag-1.svg +9 -0
- package/assets/icons/24px/shopping-shipping-bag-2.svg +22 -0
- package/assets/icons/24px/shopping-shipping-barcode.svg +21 -0
- package/assets/icons/24px/shopping-shipping-basket.svg +14 -0
- package/assets/icons/24px/shopping-shipping-box.svg +11 -0
- package/assets/icons/24px/shopping-shipping-cart.svg +25 -0
- package/assets/icons/24px/shopping-shipping-crack-1.svg +17 -0
- package/assets/icons/24px/shopping-shipping-crack-2.svg +18 -0
- package/assets/icons/24px/shopping-shipping-delivery-person-motorcycle.svg +31 -0
- package/assets/icons/24px/shopping-shipping-delivery-truck.svg +24 -0
- package/assets/icons/24px/shopping-shipping-discount-coupon.svg +17 -0
- package/assets/icons/24px/shopping-shipping-loading-box.svg +16 -0
- package/assets/icons/24px/shopping-shipping-products-gift.svg +28 -0
- package/assets/icons/24px/shopping-shipping-receipt-slip.svg +51 -0
- package/assets/icons/24px/shopping-shipping-shipment-deliver.svg +28 -0
- package/assets/icons/24px/shopping-shipping-shop.svg +17 -0
- package/assets/icons/24px/shopping-shipping-upload-information.svg +17 -0
- package/assets/icons/24px/shopping-shipping-warehouse-truck-delivery.svg +26 -0
- package/assets/icons/24px/shopping-shipping-weight-kg.svg +19 -0
- package/assets/icons/24px/single-user-shield.svg +33 -0
- package/assets/icons/24px/social-rewards-certified-diploma.svg +33 -0
- package/assets/icons/24px/social-rewards-certified-ribbon.svg +21 -0
- package/assets/icons/24px/social-rewards-flag.svg +11 -0
- package/assets/icons/24px/social-rewards-heart-like-circle.svg +31 -0
- package/assets/icons/24px/social-rewards-like-bubble.svg +37 -0
- package/assets/icons/24px/social-rewards-like-circle.svg +43 -0
- package/assets/icons/24px/social-rewards-rating-star-1.svg +47 -0
- package/assets/icons/24px/social-rewards-rating-star-2.svg +16 -0
- package/assets/icons/24px/social-rewards-reward-gift.svg +20 -0
- package/assets/icons/24px/social-rewards-trends-hot-flame.svg +31 -0
- package/assets/icons/24px/social-rewards-vip-crown-king.svg +30 -0
- package/assets/icons/24px/technology-drone-camera.svg +22 -0
- package/assets/icons/24px/technology-drone-signal.svg +28 -0
- package/assets/icons/24px/technology-robot-ai-signal-1.svg +38 -0
- package/assets/icons/24px/technology-robot-ai-signal-2.svg +35 -0
- package/assets/icons/24px/technology-robot-ai.svg +27 -0
- package/assets/icons/24px/transportation-bicycle.svg +23 -0
- package/assets/icons/24px/transportation-helicopter.svg +20 -0
- package/assets/icons/24px/transportation-motorcycle.svg +28 -0
- package/assets/icons/24px/transportation-plane.svg +29 -0
- package/assets/icons/24px/transportation-train.svg +23 -0
- package/assets/icons/24px/transportation-truck.svg +18 -0
- package/assets/icons/24px/transportation-vintage-train.svg +33 -0
- package/assets/icons/24px/travel-wayfinding-balloon.svg +22 -0
- package/assets/icons/24px/travel-wayfinding-beach-coconut-tree.svg +50 -0
- package/assets/icons/24px/travel-wayfinding-beach-umbrella.svg +38 -0
- package/assets/icons/24px/travel-wayfinding-pool-ladder.svg +19 -0
- package/assets/icons/24px/ui-design-website.svg +21 -0
- package/assets/icons/24px/user-gender-female-male.svg +31 -0
- package/assets/icons/24px/user-gender-female.svg +22 -0
- package/assets/icons/24px/user-gender-gay.svg +33 -0
- package/assets/icons/24px/user-gender-lesbian.svg +34 -0
- package/assets/icons/24px/user-gender-male.svg +27 -0
- package/assets/icons/24px/user-man-love.svg +19 -0
- package/assets/icons/24px/user-single-aim.svg +35 -0
- package/assets/icons/24px/user-sleep.svg +31 -0
- package/assets/icons/24px/user-woman-increasing-arrow.svg +26 -0
- package/assets/icons/24px/video-movies-play.svg +37 -0
- package/assets/icons/24px/video-movies-player.svg +15 -0
- package/assets/icons/24px/video-movies-set-equipment.svg +11 -0
- package/assets/icons/24px/video-movies-square-off.svg +22 -0
- package/assets/icons/24px/video-movies-video-square.svg +24 -0
- package/assets/icons/24px/video-movies-vintage-tv-1.svg +23 -0
- package/assets/icons/24px/video-movies-vintage-tv-2.svg +19 -0
- package/assets/icons/24px/video-movies-vintage-tv-3.svg +21 -0
- package/assets/icons/24px/vintage-phone.svg +37 -0
- package/assets/icons/24px/weather-cloud-sun-fine.svg +28 -0
- package/assets/icons/24px/weather-cresent-moon-stars.svg +31 -0
- package/assets/icons/24px/weather-meteor.svg +50 -0
- package/assets/icons/24px/weather-moon.svg +36 -0
- package/assets/icons/24px/weather-rainbow.svg +20 -0
- package/assets/icons/24px/weather-snowman.svg +31 -0
- package/assets/icons/24px/weather-temperature-thermometer.svg +11 -0
- package/assets/icons/24px/weather-umbrella-snowing.svg +28 -0
- package/assets/icons/24px/weather-umbrella.svg +40 -0
- package/assets/icons/24px/weather-wind-flag.svg +32 -0
- package/assets/scrollbar-background-dark.svg +12 -0
- package/base.css +813 -19
- package/components/core/.gitkeep +0 -0
- package/components/core/Alert/Alert.meta.ts +99 -0
- package/components/core/Alert/Alert.schema.json +21 -30
- package/components/core/Alert/Alert.tsx +154 -0
- package/components/core/AlertDialog/AlertDialog.meta.ts +47 -0
- package/components/core/AlertDialog/AlertDialog.schema.json +33 -0
- package/components/core/AlertDialog/AlertDialog.test.tsx +72 -0
- package/components/core/AlertDialog/AlertDialog.tsx +273 -0
- package/components/core/Avatar/Avatar.meta.ts +79 -0
- package/components/core/Avatar/Avatar.schema.json +55 -0
- package/components/core/Avatar/Avatar.tsx +86 -0
- package/components/core/Badge/Badge.meta.ts +52 -0
- package/components/core/Badge/Badge.schema.json +11 -2
- package/components/core/Badge/Badge.tsx +69 -0
- package/components/core/Breadcrumbs/Breadcrumbs.meta.ts +70 -0
- package/components/core/Breadcrumbs/Breadcrumbs.schema.json +8 -9
- package/components/core/Breadcrumbs/Breadcrumbs.tsx +88 -0
- package/components/core/Button/Button.meta.ts +168 -0
- package/components/core/Button/Button.schema.json +84 -29
- package/components/core/Button/Button.test.tsx +38 -0
- package/components/core/Button/Button.tsx +291 -0
- package/components/core/Card/Card.meta.ts +87 -0
- package/components/core/Card/Card.schema.json +39 -13
- package/components/core/Card/Card.tsx +126 -0
- package/components/core/Checkbox/Checkbox.meta.ts +54 -0
- package/components/core/Checkbox/Checkbox.schema.json +4 -9
- package/components/core/Checkbox/Checkbox.test.tsx +132 -0
- package/components/core/Checkbox/Checkbox.tsx +315 -0
- package/components/core/Checkbox/Radio.meta.ts +51 -0
- package/components/core/Checkbox/Radio.schema.json +38 -0
- package/components/core/Collapsible/Collapsible.meta.ts +65 -0
- package/components/core/Collapsible/Collapsible.schema.json +42 -0
- package/components/core/Collapsible/Collapsible.tsx +140 -0
- package/components/core/Combobox/Combobox.meta.ts +74 -0
- package/components/core/Combobox/Combobox.schema.json +45 -0
- package/components/core/Combobox/Combobox.test.tsx +56 -0
- package/components/core/Combobox/Combobox.tsx +326 -0
- package/components/core/ContextMenu/ContextMenu.meta.ts +34 -0
- package/components/core/ContextMenu/ContextMenu.schema.json +9 -13
- package/components/core/ContextMenu/ContextMenu.test.tsx +114 -0
- package/components/core/ContextMenu/ContextMenu.tsx +163 -0
- package/components/core/CountdownTimer/CountdownTimer.meta.ts +73 -0
- package/components/core/CountdownTimer/CountdownTimer.schema.json +18 -31
- package/components/core/CountdownTimer/CountdownTimer.tsx +299 -0
- package/components/core/DialPanel/DialPanel.tsx +93 -0
- package/components/core/DialPanel/dialkit-rdna.css +322 -0
- package/components/core/Dialog/Dialog.meta.ts +49 -0
- package/components/core/Dialog/Dialog.schema.json +17 -23
- package/components/core/Dialog/Dialog.test.tsx +153 -0
- package/components/core/Dialog/Dialog.tsx +271 -0
- package/components/core/Drawer/Drawer.meta.ts +55 -0
- package/components/core/Drawer/Drawer.schema.json +44 -0
- package/components/core/Drawer/Drawer.test.tsx +67 -0
- package/components/core/Drawer/Drawer.tsx +316 -0
- package/components/core/DropdownMenu/DropdownMenu.meta.ts +51 -0
- package/components/core/DropdownMenu/DropdownMenu.schema.json +8 -27
- package/components/core/DropdownMenu/DropdownMenu.test.tsx +167 -0
- package/components/core/DropdownMenu/DropdownMenu.tsx +331 -0
- package/components/core/Icon/Icon.meta.ts +67 -0
- package/components/core/Icon/Icon.schema.json +47 -0
- package/components/core/Icon/Icon.tsx +10 -0
- package/components/core/Input/Input.meta.ts +106 -0
- package/components/core/Input/Input.schema.json +48 -5
- package/components/core/Input/Input.test.tsx +133 -0
- package/components/core/Input/Input.tsx +365 -0
- package/components/core/Input/TextArea.meta.ts +72 -0
- package/components/core/Input/TextArea.schema.json +40 -0
- package/components/core/InputSet/InputSet.meta.ts +39 -0
- package/components/core/InputSet/InputSet.schema.json +30 -0
- package/components/core/InputSet/InputSet.test.tsx +43 -0
- package/components/core/InputSet/InputSet.tsx +64 -0
- package/components/core/Menubar/Menubar.meta.ts +45 -0
- package/components/core/Menubar/Menubar.schema.json +32 -0
- package/components/core/Menubar/Menubar.tsx +223 -0
- package/components/core/Meter/Meter.meta.ts +79 -0
- package/components/core/Meter/Meter.schema.json +48 -0
- package/components/core/Meter/Meter.tsx +134 -0
- package/components/core/NavigationMenu/NavigationMenu.meta.ts +54 -0
- package/components/core/NavigationMenu/NavigationMenu.schema.json +39 -0
- package/components/core/NavigationMenu/NavigationMenu.tsx +253 -0
- package/components/core/NumberField/NumberField.meta.ts +75 -0
- package/components/core/NumberField/NumberField.schema.json +72 -0
- package/components/core/NumberField/NumberField.test.tsx +42 -0
- package/components/core/NumberField/NumberField.tsx +224 -0
- package/components/core/Pattern/Pattern.meta.ts +77 -0
- package/components/core/Pattern/Pattern.schema.json +105 -0
- package/components/core/Pattern/Pattern.tsx +65 -0
- package/components/core/Popover/Popover.meta.ts +44 -0
- package/components/core/Popover/Popover.schema.json +13 -28
- package/components/core/Popover/Popover.test.tsx +122 -0
- package/components/core/Popover/Popover.tsx +141 -0
- package/components/core/PreviewCard/PreviewCard.meta.ts +38 -0
- package/components/core/PreviewCard/PreviewCard.schema.json +27 -0
- package/components/core/PreviewCard/PreviewCard.test.tsx +30 -0
- package/components/core/PreviewCard/PreviewCard.tsx +120 -0
- package/components/core/ScrollArea/ScrollArea.meta.ts +46 -0
- package/components/core/ScrollArea/ScrollArea.schema.json +32 -0
- package/components/core/ScrollArea/ScrollArea.test.tsx +23 -0
- package/components/core/ScrollArea/ScrollArea.tsx +129 -0
- package/components/core/Select/Select.meta.ts +68 -0
- package/components/core/Select/Select.schema.json +8 -14
- package/components/core/Select/Select.test.tsx +195 -0
- package/components/core/Select/Select.tsx +258 -0
- package/components/core/Separator/Separator.meta.ts +76 -0
- package/components/core/Separator/Separator.schema.json +48 -0
- package/components/core/Separator/Separator.tsx +89 -0
- package/components/core/Sheet/Sheet.meta.ts +55 -0
- package/components/core/Sheet/Sheet.schema.json +25 -34
- package/components/core/Sheet/Sheet.test.tsx +108 -0
- package/components/core/Sheet/Sheet.tsx +270 -0
- package/components/core/Slider/Slider.meta.ts +62 -0
- package/components/core/Slider/Slider.schema.json +5 -10
- package/components/core/Slider/Slider.test.tsx +94 -0
- package/components/core/Slider/Slider.tsx +148 -0
- package/components/core/Spinner/Spinner.meta.ts +61 -0
- package/components/core/Spinner/Spinner.schema.json +44 -0
- package/components/core/Spinner/Spinner.tsx +138 -0
- package/components/core/Switch/Switch.meta.ts +67 -0
- package/components/core/Switch/Switch.schema.json +9 -15
- package/components/core/Switch/Switch.test.tsx +98 -0
- package/components/core/Switch/Switch.tsx +148 -0
- package/components/core/Tabs/Tabs.meta.ts +54 -0
- package/components/core/Tabs/Tabs.schema.json +29 -39
- package/components/core/Tabs/Tabs.test.tsx +181 -0
- package/components/core/Tabs/Tabs.tsx +474 -0
- package/components/core/Toast/Toast.meta.ts +56 -0
- package/components/core/Toast/Toast.schema.json +16 -30
- package/components/core/Toast/Toast.test.tsx +90 -0
- package/components/core/Toast/Toast.tsx +272 -0
- package/components/core/Toggle/Toggle.meta.ts +104 -0
- package/components/core/Toggle/Toggle.schema.json +94 -0
- package/components/core/Toggle/Toggle.test.tsx +64 -0
- package/components/core/Toggle/Toggle.tsx +174 -0
- package/components/core/ToggleGroup/ToggleGroup.meta.ts +105 -0
- package/components/core/ToggleGroup/ToggleGroup.schema.json +81 -0
- package/components/core/ToggleGroup/ToggleGroup.tsx +235 -0
- package/components/core/Toolbar/Toolbar.meta.ts +49 -0
- package/components/core/Toolbar/Toolbar.schema.json +34 -0
- package/components/core/Toolbar/Toolbar.tsx +251 -0
- package/components/core/Tooltip/Tooltip.meta.ts +91 -0
- package/components/core/Tooltip/Tooltip.schema.json +28 -16
- package/components/core/Tooltip/Tooltip.test.tsx +75 -0
- package/components/core/Tooltip/Tooltip.tsx +112 -0
- package/components/core/__tests__/base-ui-wrapper-policy.test.tsx +67 -0
- package/components/core/__tests__/createCompoundContext.test.tsx +37 -0
- package/components/core/__tests__/icons-package.test.tsx +43 -0
- package/components/core/__tests__/smoke.test.tsx +72 -0
- package/components/core/__tests__/style-authority-audit.test.tsx +187 -0
- package/components/core/index.ts +43 -0
- package/components/shared/createCompoundContext.ts +30 -0
- package/contract/system.ts +145 -0
- package/dark.css +1227 -73
- package/eslint/__tests__/contract-surface.test.mjs +76 -0
- package/eslint/__tests__/no-broad-rdna-disables.test.mjs +89 -0
- package/eslint/__tests__/no-clipped-shadow.test.mjs +64 -0
- package/eslint/__tests__/no-hardcoded-colors.test.mjs +316 -0
- package/eslint/__tests__/no-hardcoded-motion-contract.test.mjs +20 -0
- package/eslint/__tests__/no-hardcoded-motion.test.mjs +166 -0
- package/eslint/__tests__/no-hardcoded-spacing.test.mjs +144 -0
- package/eslint/__tests__/no-hardcoded-typography.test.mjs +162 -0
- package/eslint/__tests__/no-legacy-color-format.test.mjs +121 -0
- package/eslint/__tests__/no-mixed-style-authority.test.mjs +261 -0
- package/eslint/__tests__/no-pixel-border.test.mjs +40 -0
- package/eslint/__tests__/no-raw-radius.test.mjs +120 -0
- package/eslint/__tests__/no-raw-shadow.test.mjs +142 -0
- package/eslint/__tests__/no-removed-aliases.test.mjs +63 -0
- package/eslint/__tests__/no-viewport-breakpoints-in-window-layout.test.mjs +97 -0
- package/eslint/__tests__/pixel-corner-contract.test.mjs +20 -0
- package/eslint/__tests__/plugin-configs.test.mjs +82 -0
- package/eslint/__tests__/prefer-rdna-components.test.mjs +139 -0
- package/eslint/__tests__/rdna-disable-comment-utils.test.mjs +143 -0
- package/eslint/__tests__/report-new-rdna-exceptions.test.mjs +28 -0
- package/eslint/__tests__/require-exception-metadata.test.mjs +228 -0
- package/eslint/__tests__/root-eslint-config.test.mjs +13 -0
- package/eslint/__tests__/rule-import-sources.test.mjs +28 -0
- package/eslint/__tests__/shadow-typography-contract.test.mjs +20 -0
- package/eslint/__tests__/token-map-removal.test.mjs +37 -0
- package/eslint/contract.mjs +83 -0
- package/eslint/index.mjs +103 -0
- package/eslint/lib/no-legacy-color-format.mjs +52 -0
- package/eslint/rdna-disable-comment-utils.mjs +271 -0
- package/eslint/rules/no-broad-rdna-disables.mjs +44 -0
- package/eslint/rules/no-clipped-shadow.mjs +213 -0
- package/eslint/rules/no-hardcoded-colors.mjs +594 -0
- package/eslint/rules/no-hardcoded-motion.mjs +133 -0
- package/eslint/rules/no-hardcoded-spacing.mjs +116 -0
- package/eslint/rules/no-hardcoded-typography.mjs +124 -0
- package/eslint/rules/no-mixed-style-authority.mjs +304 -0
- package/eslint/rules/no-pixel-border.mjs +160 -0
- package/eslint/rules/no-raw-radius.mjs +106 -0
- package/eslint/rules/no-raw-shadow.mjs +142 -0
- package/eslint/rules/no-removed-aliases.mjs +61 -0
- package/eslint/rules/no-viewport-breakpoints-in-window-layout.mjs +62 -0
- package/eslint/rules/prefer-rdna-components.mjs +146 -0
- package/eslint/rules/require-exception-metadata.mjs +91 -0
- package/eslint/utils.mjs +257 -0
- package/fonts.css +9 -19
- package/generated/ai-contract.json +478 -0
- package/generated/contract.freshness.json +50 -0
- package/generated/eslint-contract.json +343 -0
- package/generated/figma/contracts/alert-dialog.contract.json +61 -0
- package/generated/figma/contracts/alert.contract.json +147 -0
- package/generated/figma/contracts/avatar.contract.json +108 -0
- package/generated/figma/contracts/badge.contract.json +140 -0
- package/generated/figma/contracts/breadcrumbs.contract.json +100 -0
- package/generated/figma/contracts/button.contract.json +212 -0
- package/generated/figma/contracts/card.contract.json +126 -0
- package/generated/figma/contracts/checkbox.contract.json +130 -0
- package/generated/figma/contracts/collapsible.contract.json +79 -0
- package/generated/figma/contracts/combobox.contract.json +128 -0
- package/generated/figma/contracts/context-menu.contract.json +52 -0
- package/generated/figma/contracts/countdown-timer.contract.json +86 -0
- package/generated/figma/contracts/dialog.contract.json +66 -0
- package/generated/figma/contracts/drawer.contract.json +75 -0
- package/generated/figma/contracts/dropdown-menu.contract.json +63 -0
- package/generated/figma/contracts/icon.contract.json +85 -0
- package/generated/figma/contracts/input-set.contract.json +71 -0
- package/generated/figma/contracts/input.contract.json +157 -0
- package/generated/figma/contracts/menubar.contract.json +60 -0
- package/generated/figma/contracts/meter.contract.json +90 -0
- package/generated/figma/contracts/navigation-menu.contract.json +67 -0
- package/generated/figma/contracts/number-field.contract.json +139 -0
- package/generated/figma/contracts/pattern.contract.json +136 -0
- package/generated/figma/contracts/popover.contract.json +60 -0
- package/generated/figma/contracts/preview-card.contract.json +55 -0
- package/generated/figma/contracts/radio.contract.json +113 -0
- package/generated/figma/contracts/scroll-area.contract.json +59 -0
- package/generated/figma/contracts/select.contract.json +153 -0
- package/generated/figma/contracts/separator.contract.json +122 -0
- package/generated/figma/contracts/sheet.contract.json +73 -0
- package/generated/figma/contracts/slider.contract.json +143 -0
- package/generated/figma/contracts/spinner.contract.json +84 -0
- package/generated/figma/contracts/switch.contract.json +128 -0
- package/generated/figma/contracts/tabs.contract.json +78 -0
- package/generated/figma/contracts/text-area.contract.json +110 -0
- package/generated/figma/contracts/toast.contract.json +70 -0
- package/generated/figma/contracts/toggle-group.contract.json +108 -0
- package/generated/figma/contracts/toggle.contract.json +154 -0
- package/generated/figma/contracts/toolbar.contract.json +61 -0
- package/generated/figma/contracts/tooltip.contract.json +121 -0
- package/generated/figma/primitive/color.tokens.json +122 -0
- package/generated/figma/primitive/motion.tokens.json +49 -0
- package/generated/figma/primitive/shape.tokens.json +175 -0
- package/generated/figma/primitive/space.tokens.json +4 -0
- package/generated/figma/primitive/typography.tokens.json +33 -0
- package/generated/figma/rdna.tokens.json +1046 -0
- package/generated/figma/semantic/semantic.tokens.json +659 -0
- package/generated/figma/tokens.d.ts +6 -0
- package/generated/figma/validation-report.json +17 -0
- package/icons/DesktopIcons.tsx +126 -0
- package/icons/Icon.tsx +199 -0
- package/icons/generated/16/USDC.tsx +5 -0
- package/icons/generated/16/broadcast-dish.tsx +5 -0
- package/icons/generated/16/broken-battery.tsx +5 -0
- package/icons/generated/16/calendar.tsx +5 -0
- package/icons/generated/16/calendar2.tsx +5 -0
- package/icons/generated/16/camera.tsx +5 -0
- package/icons/generated/16/cd-horizontal.tsx +5 -0
- package/icons/generated/16/cd.tsx +5 -0
- package/icons/generated/16/cell-bars.tsx +5 -0
- package/icons/generated/16/checkmark.tsx +5 -0
- package/icons/generated/16/chevron-down.tsx +5 -0
- package/icons/generated/16/chevron-left.tsx +5 -0
- package/icons/generated/16/chevron-right.tsx +5 -0
- package/icons/generated/16/clock.tsx +5 -0
- package/icons/generated/16/close-filled.tsx +5 -0
- package/icons/generated/16/close.tsx +5 -0
- package/icons/generated/16/code-file.tsx +5 -0
- package/icons/generated/16/code-folder.tsx +5 -0
- package/icons/generated/16/code-window-filled.tsx +5 -0
- package/icons/generated/16/code-window.tsx +5 -0
- package/icons/generated/16/coins.tsx +5 -0
- package/icons/generated/16/comments-blank.tsx +5 -0
- package/icons/generated/16/comments-typing.tsx +5 -0
- package/icons/generated/16/computer.tsx +5 -0
- package/icons/generated/16/copied-to-clipboard.tsx +5 -0
- package/icons/generated/16/copy-to-clipboard.tsx +5 -0
- package/icons/generated/16/copy.tsx +5 -0
- package/icons/generated/16/crosshair-3.tsx +5 -0
- package/icons/generated/16/crosshair1.tsx +5 -0
- package/icons/generated/16/crosshair2-retro.tsx +5 -0
- package/icons/generated/16/crosshair2.tsx +5 -0
- package/icons/generated/16/crosshair4.tsx +5 -0
- package/icons/generated/16/cursor-text.tsx +5 -0
- package/icons/generated/16/cursor2.tsx +5 -0
- package/icons/generated/16/cut.tsx +5 -0
- package/icons/generated/16/discord.tsx +5 -0
- package/icons/generated/16/document-image.tsx +5 -0
- package/icons/generated/16/document.tsx +5 -0
- package/icons/generated/16/document2.tsx +5 -0
- package/icons/generated/16/download.tsx +5 -0
- package/icons/generated/16/eject.tsx +5 -0
- package/icons/generated/16/electric.tsx +5 -0
- package/icons/generated/16/envelope-closed.tsx +5 -0
- package/icons/generated/16/envelope-open.tsx +5 -0
- package/icons/generated/16/equalizer.tsx +5 -0
- package/icons/generated/16/eye-hidden.tsx +5 -0
- package/icons/generated/16/eye.tsx +5 -0
- package/icons/generated/16/film-camera.tsx +5 -0
- package/icons/generated/16/film-strip-outline.tsx +5 -0
- package/icons/generated/16/film-strip.tsx +5 -0
- package/icons/generated/16/fire.tsx +5 -0
- package/icons/generated/16/folder-closed.tsx +5 -0
- package/icons/generated/16/folder-open.tsx +5 -0
- package/icons/generated/16/full-screen.tsx +5 -0
- package/icons/generated/16/game-controller.tsx +5 -0
- package/icons/generated/16/globe.tsx +5 -0
- package/icons/generated/16/go-forward.tsx +5 -0
- package/icons/generated/16/grid-3x3.tsx +5 -0
- package/icons/generated/16/grip-horizontal.tsx +5 -0
- package/icons/generated/16/grip-vertical.tsx +5 -0
- package/icons/generated/16/hamburger.tsx +5 -0
- package/icons/generated/16/hand-point.tsx +5 -0
- package/icons/generated/16/hard-drive.tsx +5 -0
- package/icons/generated/16/headphones.tsx +5 -0
- package/icons/generated/16/heart.tsx +5 -0
- package/icons/generated/16/home.tsx +5 -0
- package/icons/generated/16/home2.tsx +5 -0
- package/icons/generated/16/hourglass.tsx +5 -0
- package/icons/generated/16/info-filled.tsx +5 -0
- package/icons/generated/16/info.tsx +5 -0
- package/icons/generated/16/joystick.tsx +5 -0
- package/icons/generated/16/lightbulb.tsx +5 -0
- package/icons/generated/16/lightbulb2.tsx +5 -0
- package/icons/generated/16/line-chart.tsx +5 -0
- package/icons/generated/16/list.tsx +5 -0
- package/icons/generated/16/lock-closed.tsx +5 -0
- package/icons/generated/16/lock-open.tsx +5 -0
- package/icons/generated/16/microphone-mute.tsx +5 -0
- package/icons/generated/16/microphone.tsx +5 -0
- package/icons/generated/16/minus.tsx +5 -0
- package/icons/generated/16/money.tsx +5 -0
- package/icons/generated/16/moon.tsx +5 -0
- package/icons/generated/16/more-horizontal.tsx +5 -0
- package/icons/generated/16/more-vertical.tsx +5 -0
- package/icons/generated/16/multiple-images.tsx +5 -0
- package/icons/generated/16/music-8th-notes.tsx +5 -0
- package/icons/generated/16/outline-box.tsx +5 -0
- package/icons/generated/16/paper-plane.tsx +5 -0
- package/icons/generated/16/pause.tsx +5 -0
- package/icons/generated/16/pencil.tsx +5 -0
- package/icons/generated/16/picture-in-picture.tsx +5 -0
- package/icons/generated/16/pie-chart.tsx +5 -0
- package/icons/generated/16/play.tsx +5 -0
- package/icons/generated/16/plug.tsx +5 -0
- package/icons/generated/16/plus.tsx +5 -0
- package/icons/generated/16/power1.tsx +5 -0
- package/icons/generated/16/power2.tsx +5 -0
- package/icons/generated/16/print.tsx +5 -0
- package/icons/generated/16/question-filled.tsx +5 -0
- package/icons/generated/16/question.tsx +5 -0
- package/icons/generated/16/queue.tsx +5 -0
- package/icons/generated/16/rad-mark.tsx +5 -0
- package/icons/generated/16/radiants-logo.tsx +5 -0
- package/icons/generated/16/record-playback.tsx +5 -0
- package/icons/generated/16/record-player.tsx +5 -0
- package/icons/generated/16/refresh-filled.tsx +5 -0
- package/icons/generated/16/refresh1.tsx +5 -0
- package/icons/generated/16/reload.tsx +5 -0
- package/icons/generated/16/resize-corner.tsx +5 -0
- package/icons/generated/16/save-2.tsx +5 -0
- package/icons/generated/16/save.tsx +5 -0
- package/icons/generated/16/search.tsx +5 -0
- package/icons/generated/16/seek-back.tsx +5 -0
- package/icons/generated/16/seek-forward.tsx +5 -0
- package/icons/generated/16/settings-cog.tsx +5 -0
- package/icons/generated/16/share.tsx +5 -0
- package/icons/generated/16/skip-back.tsx +5 -0
- package/icons/generated/16/skip-forward.tsx +5 -0
- package/icons/generated/16/skull-and-crossbones.tsx +5 -0
- package/icons/generated/16/sort-descending.tsx +5 -0
- package/icons/generated/16/sort-filter-empty.tsx +5 -0
- package/icons/generated/16/sort-filter-filled.tsx +5 -0
- package/icons/generated/16/sparkles.tsx +5 -0
- package/icons/generated/16/stop-playback.tsx +5 -0
- package/icons/generated/16/swap.tsx +5 -0
- package/icons/generated/16/tape.tsx +5 -0
- package/icons/generated/16/telephone.tsx +5 -0
- package/icons/generated/16/trash-full.tsx +5 -0
- package/icons/generated/16/trash-open.tsx +5 -0
- package/icons/generated/16/trash.tsx +5 -0
- package/icons/generated/16/trophy.tsx +5 -0
- package/icons/generated/16/trophy2.tsx +5 -0
- package/icons/generated/16/tv.tsx +5 -0
- package/icons/generated/16/twitter.tsx +5 -0
- package/icons/generated/16/upload.tsx +5 -0
- package/icons/generated/16/usb-icon.tsx +5 -0
- package/icons/generated/16/usb.tsx +5 -0
- package/icons/generated/16/usericon.tsx +5 -0
- package/icons/generated/16/volume-faders.tsx +5 -0
- package/icons/generated/16/volume-high.tsx +5 -0
- package/icons/generated/16/volume-low.tsx +5 -0
- package/icons/generated/16/volume-med.tsx +5 -0
- package/icons/generated/16/volume-mute.tsx +5 -0
- package/icons/generated/16/warning-filled-outline.tsx +5 -0
- package/icons/generated/16/warning-filled.tsx +5 -0
- package/icons/generated/16/warning-hollow.tsx +5 -0
- package/icons/generated/16/wifi.tsx +5 -0
- package/icons/generated/16/window-error.tsx +5 -0
- package/icons/generated/16/windows.tsx +5 -0
- package/icons/generated/16/wrench.tsx +5 -0
- package/icons/generated/16/zip-file.tsx +5 -0
- package/icons/generated/16/zip-file2.tsx +5 -0
- package/icons/generated/24/Business-Products-treasure.tsx +5 -0
- package/icons/generated/24/beauty-barber-light-sign.tsx +5 -0
- package/icons/generated/24/beauty-beard-style.tsx +5 -0
- package/icons/generated/24/beauty-body-care-snail.tsx +5 -0
- package/icons/generated/24/beauty-body-care-sun-screen.tsx +5 -0
- package/icons/generated/24/beauty-cosmatic-brush-set.tsx +5 -0
- package/icons/generated/24/beauty-cosmatic-lip-stick.tsx +5 -0
- package/icons/generated/24/beauty-healthy-food-dish.tsx +5 -0
- package/icons/generated/24/beauty-mirror-1.tsx +5 -0
- package/icons/generated/24/beauty-mirror-2.tsx +5 -0
- package/icons/generated/24/beauty-nail-polish.tsx +5 -0
- package/icons/generated/24/beauty-perfume-1.tsx +5 -0
- package/icons/generated/24/beauty-perfume-2.tsx +5 -0
- package/icons/generated/24/building-real-eastate-deal-documant.tsx +5 -0
- package/icons/generated/24/building-real-eastate-for-sale.tsx +5 -0
- package/icons/generated/24/building-real-eastate-house-1.tsx +5 -0
- package/icons/generated/24/building-real-eastate-house-2.tsx +5 -0
- package/icons/generated/24/building-real-eastate-houses-location.tsx +5 -0
- package/icons/generated/24/building-real-eastate-location.tsx +5 -0
- package/icons/generated/24/building-real-eastate-project-blueprint.tsx +5 -0
- package/icons/generated/24/building-real-eastate-sign-for-rent.tsx +5 -0
- package/icons/generated/24/building-real-eastate-sign-house-1.tsx +5 -0
- package/icons/generated/24/building-real-eastate-sign-house-2.tsx +5 -0
- package/icons/generated/24/building-real-eastate-storage.tsx +5 -0
- package/icons/generated/24/business-money-coin-currency.tsx +5 -0
- package/icons/generated/24/business-prodect-diamond.tsx +5 -0
- package/icons/generated/24/business-product-check.tsx +5 -0
- package/icons/generated/24/business-product-piggy-bank.tsx +5 -0
- package/icons/generated/24/business-product-price-tag.tsx +5 -0
- package/icons/generated/24/business-product-report-present-grahp.tsx +5 -0
- package/icons/generated/24/business-product-scale.tsx +5 -0
- package/icons/generated/24/business-product-startup-1.tsx +5 -0
- package/icons/generated/24/business-product-startup-2.tsx +5 -0
- package/icons/generated/24/business-product-target.tsx +5 -0
- package/icons/generated/24/business-products-bag-money.tsx +5 -0
- package/icons/generated/24/business-products-bag.tsx +5 -0
- package/icons/generated/24/business-products-bag_1.tsx +5 -0
- package/icons/generated/24/business-products-boat-success.tsx +5 -0
- package/icons/generated/24/business-products-cash-search.tsx +5 -0
- package/icons/generated/24/business-products-cash-shield.tsx +5 -0
- package/icons/generated/24/business-products-cash-user-man-message.tsx +5 -0
- package/icons/generated/24/business-products-climb-top.tsx +5 -0
- package/icons/generated/24/business-products-data-file-bars.tsx +5 -0
- package/icons/generated/24/business-products-deal-handshake.tsx +5 -0
- package/icons/generated/24/business-products-factory.tsx +5 -0
- package/icons/generated/24/business-products-magic-rabbit.tsx +5 -0
- package/icons/generated/24/business-products-money.tsx +5 -0
- package/icons/generated/24/business-products-network-user.tsx +5 -0
- package/icons/generated/24/business-products-performance-money-decrease.tsx +5 -0
- package/icons/generated/24/business-products-performance-money-increase.tsx +5 -0
- package/icons/generated/24/business-products-safe.tsx +5 -0
- package/icons/generated/24/business-products-wallet-money.tsx +5 -0
- package/icons/generated/24/change-clean-energy.tsx +5 -0
- package/icons/generated/24/chat-email.tsx +5 -0
- package/icons/generated/24/coding-app-website-ui.tsx +5 -0
- package/icons/generated/24/coding-apps-websites-404-error.tsx +5 -0
- package/icons/generated/24/coding-apps-websites-android.tsx +5 -0
- package/icons/generated/24/coding-apps-websites-browser-bugs-2.tsx +5 -0
- package/icons/generated/24/coding-apps-websites-conference.tsx +5 -0
- package/icons/generated/24/coding-apps-websites-constuction.tsx +5 -0
- package/icons/generated/24/coding-apps-websites-database.tsx +5 -0
- package/icons/generated/24/coding-apps-websites-dinosaur-error.tsx +5 -0
- package/icons/generated/24/coding-apps-websites-favorite-rate.tsx +5 -0
- package/icons/generated/24/coding-apps-websites-finder.tsx +5 -0
- package/icons/generated/24/coding-apps-websites-firewall.tsx +5 -0
- package/icons/generated/24/coding-apps-websites-live-status.tsx +5 -0
- package/icons/generated/24/coding-apps-websites-mobile.tsx +5 -0
- package/icons/generated/24/coding-apps-websites-module.tsx +5 -0
- package/icons/generated/24/coding-apps-websites-music-player.tsx +5 -0
- package/icons/generated/24/coding-apps-websites-phone-tablet.tsx +5 -0
- package/icons/generated/24/coding-apps-websites-plugin.tsx +5 -0
- package/icons/generated/24/coding-apps-websites-programming-browser-bugs-1.tsx +5 -0
- package/icons/generated/24/coding-apps-websites-programming-browser.tsx +5 -0
- package/icons/generated/24/coding-apps-websites-programming-bug.tsx +5 -0
- package/icons/generated/24/coding-apps-websites-programming-hold-code.tsx +5 -0
- package/icons/generated/24/coding-apps-websites-search-bug.tsx +5 -0
- package/icons/generated/24/coding-apps-websites-setting-computer.tsx +5 -0
- package/icons/generated/24/coding-apps-websites-shield-lock.tsx +5 -0
- package/icons/generated/24/coding-apps-websites-solves.tsx +5 -0
- package/icons/generated/24/coding-apps-websites.tsx +5 -0
- package/icons/generated/24/computer-old-electronics-bug.tsx +5 -0
- package/icons/generated/24/computer-old-electronics.tsx +5 -0
- package/icons/generated/24/computers-devices-electronics-battery-charge.tsx +5 -0
- package/icons/generated/24/computers-devices-electronics-board.tsx +5 -0
- package/icons/generated/24/computers-devices-electronics-chipset.tsx +5 -0
- package/icons/generated/24/computers-devices-electronics-click-select-tablet.tsx +5 -0
- package/icons/generated/24/computers-devices-electronics-desktop.tsx +5 -0
- package/icons/generated/24/computers-devices-electronics-earpod-sound.tsx +5 -0
- package/icons/generated/24/computers-devices-electronics-flash-drive-1.tsx +5 -0
- package/icons/generated/24/computers-devices-electronics-flash-drive-2.tsx +5 -0
- package/icons/generated/24/computers-devices-electronics-graphic-tablet-draw.tsx +5 -0
- package/icons/generated/24/computers-devices-electronics-graphic-tablet.tsx +5 -0
- package/icons/generated/24/computers-devices-electronics-harddisk.tsx +5 -0
- package/icons/generated/24/computers-devices-electronics-keyboard-button.tsx +5 -0
- package/icons/generated/24/computers-devices-electronics-keyboard-pad.tsx +5 -0
- package/icons/generated/24/computers-devices-electronics-keyboard-wireless.tsx +5 -0
- package/icons/generated/24/computers-devices-electronics-keyboard.tsx +5 -0
- package/icons/generated/24/computers-devices-electronics-laptop.tsx +5 -0
- package/icons/generated/24/computers-devices-electronics-memory.tsx +5 -0
- package/icons/generated/24/computers-devices-electronics-mobile-qr-scan.tsx +5 -0
- package/icons/generated/24/computers-devices-electronics-monitor.tsx +5 -0
- package/icons/generated/24/computers-devices-electronics-mouse.tsx +5 -0
- package/icons/generated/24/computers-devices-electronics-smart-watch.tsx +5 -0
- package/icons/generated/24/computers-devices-electronics-tablet.tsx +5 -0
- package/icons/generated/24/computers-devices-electronics-tape-cassette.tsx +5 -0
- package/icons/generated/24/computers-devices-electronics-television-vintage.tsx +5 -0
- package/icons/generated/24/computers-devices-electronics-vintage-mac.tsx +5 -0
- package/icons/generated/24/computers-devices-electronics-webcam.tsx +5 -0
- package/icons/generated/24/computers-devices-electronicscd-disk.tsx +5 -0
- package/icons/generated/24/computers-devices-electronicsmicrochip-board.tsx +5 -0
- package/icons/generated/24/construction-building-real-eastate.tsx +5 -0
- package/icons/generated/24/content-files-archive-books-1.tsx +5 -0
- package/icons/generated/24/content-files-archive-books-2.tsx +5 -0
- package/icons/generated/24/content-files-archive-books-3.tsx +5 -0
- package/icons/generated/24/content-files-book-library.tsx +5 -0
- package/icons/generated/24/content-files-book.tsx +5 -0
- package/icons/generated/24/content-files-books-1.tsx +5 -0
- package/icons/generated/24/content-files-books-2.tsx +5 -0
- package/icons/generated/24/content-files-close-book-bookmark.tsx +5 -0
- package/icons/generated/24/content-files-draw-content.tsx +5 -0
- package/icons/generated/24/content-files-favorite-book.tsx +5 -0
- package/icons/generated/24/content-files-folder-open.tsx +5 -0
- package/icons/generated/24/content-files-newspaper.tsx +5 -0
- package/icons/generated/24/content-files-note-book.tsx +5 -0
- package/icons/generated/24/content-files-note.tsx +5 -0
- package/icons/generated/24/content-files-notepad.tsx +5 -0
- package/icons/generated/24/content-files-open-book-bookmark.tsx +5 -0
- package/icons/generated/24/content-files-open-book.tsx +5 -0
- package/icons/generated/24/content-files-pdf.tsx +5 -0
- package/icons/generated/24/content-files-pen.tsx +5 -0
- package/icons/generated/24/content-files-pencil-brush.tsx +5 -0
- package/icons/generated/24/content-files-pencil-ruler.tsx +5 -0
- package/icons/generated/24/content-files-phone-book.tsx +5 -0
- package/icons/generated/24/content-files-quill-ink.tsx +5 -0
- package/icons/generated/24/content-files-sticky-notepad-1.tsx +5 -0
- package/icons/generated/24/content-files-sticky-notepad-2.tsx +5 -0
- package/icons/generated/24/content-files-typing-machine.tsx +5 -0
- package/icons/generated/24/content-files-write-note.tsx +5 -0
- package/icons/generated/24/cursor-hand.tsx +5 -0
- package/icons/generated/24/design-artboard-shapes.tsx +5 -0
- package/icons/generated/24/design-color-brush-paint.tsx +5 -0
- package/icons/generated/24/design-color-bucket-brush.tsx +5 -0
- package/icons/generated/24/design-color-bucket.tsx +5 -0
- package/icons/generated/24/design-color-painting-palette.tsx +5 -0
- package/icons/generated/24/design-color-palette-sample.tsx +5 -0
- package/icons/generated/24/design-color-spray.tsx +5 -0
- package/icons/generated/24/design-color-tube-pastel.tsx +5 -0
- package/icons/generated/24/design-crop-edit-picture.tsx +5 -0
- package/icons/generated/24/design-drawing-board.tsx +5 -0
- package/icons/generated/24/design-dropper-1.tsx +5 -0
- package/icons/generated/24/design-dropper-2.tsx +5 -0
- package/icons/generated/24/design-half-circle-ruler.tsx +5 -0
- package/icons/generated/24/design-hilight.tsx +5 -0
- package/icons/generated/24/design-ink-pen.tsx +5 -0
- package/icons/generated/24/design-layer.tsx +5 -0
- package/icons/generated/24/design-magic-wand.tsx +5 -0
- package/icons/generated/24/design-pencil.tsx +5 -0
- package/icons/generated/24/design-ruler.tsx +5 -0
- package/icons/generated/24/design-stamp.tsx +5 -0
- package/icons/generated/24/design-vectors-pen-new-anchor.tsx +5 -0
- package/icons/generated/24/ecology-bush.tsx +5 -0
- package/icons/generated/24/ecology-cactus.tsx +5 -0
- package/icons/generated/24/ecology-clean-battery.tsx +5 -0
- package/icons/generated/24/ecology-clean-car-cable-charge.tsx +5 -0
- package/icons/generated/24/ecology-global-house.tsx +5 -0
- package/icons/generated/24/ecology-global-warming-globe-fire.tsx +5 -0
- package/icons/generated/24/ecology-global-warming-globe.tsx +5 -0
- package/icons/generated/24/ecology-gmo-food-fruit.tsx +5 -0
- package/icons/generated/24/ecology-growth-plant.tsx +5 -0
- package/icons/generated/24/ecology-leaf-bug.tsx +5 -0
- package/icons/generated/24/ecology-nuclear-energy.tsx +5 -0
- package/icons/generated/24/ecology-organic-sun-growth.tsx +5 -0
- package/icons/generated/24/ecology-plant-growth-soil-nature.tsx +5 -0
- package/icons/generated/24/ecology-renewable-energy-solar-panel.tsx +5 -0
- package/icons/generated/24/ecology-renewable-energy-wind-turbine.tsx +5 -0
- package/icons/generated/24/ecology-solar-cell.tsx +5 -0
- package/icons/generated/24/ecology-tree.tsx +5 -0
- package/icons/generated/24/ecology-windmill-1.tsx +5 -0
- package/icons/generated/24/ecology-windmill-2.tsx +5 -0
- package/icons/generated/24/ecology-wood-plant-grow.tsx +5 -0
- package/icons/generated/24/email-chat-think.tsx +5 -0
- package/icons/generated/24/email-emoji-smile-smart.tsx +5 -0
- package/icons/generated/24/email-envelope-close.tsx +5 -0
- package/icons/generated/24/email-envelope-open.tsx +5 -0
- package/icons/generated/24/email-envelope.tsx +5 -0
- package/icons/generated/24/email-forward-mail.tsx +5 -0
- package/icons/generated/24/email-mail-chat.tsx +5 -0
- package/icons/generated/24/email-mail-open-address.tsx +5 -0
- package/icons/generated/24/email-mailbox-close.tsx +5 -0
- package/icons/generated/24/email-mailbox-open.tsx +5 -0
- package/icons/generated/24/email-mailbox.tsx +5 -0
- package/icons/generated/24/email-stamp-mail.tsx +5 -0
- package/icons/generated/24/email-tray.tsx +5 -0
- package/icons/generated/24/entertainment-events-hobbies-board-game-dice.tsx +5 -0
- package/icons/generated/24/entertainment-events-hobbies-bomb.tsx +5 -0
- package/icons/generated/24/entertainment-events-hobbies-card-game-card-club.tsx +5 -0
- package/icons/generated/24/entertainment-events-hobbies-chess-knight.tsx +5 -0
- package/icons/generated/24/entertainment-events-hobbies-chess-pawn.tsx +5 -0
- package/icons/generated/24/entertainment-events-hobbies-chess-rook.tsx +5 -0
- package/icons/generated/24/entertainment-events-hobbies-film-camrea.tsx +5 -0
- package/icons/generated/24/entertainment-events-hobbies-film-player.tsx +5 -0
- package/icons/generated/24/entertainment-events-hobbies-film-roll.tsx +5 -0
- package/icons/generated/24/entertainment-events-hobbies-game-machines-arcade-1.tsx +5 -0
- package/icons/generated/24/entertainment-events-hobbies-game-machines-arcade-2.tsx +5 -0
- package/icons/generated/24/entertainment-events-hobbies-game-pool-snooker-ball.tsx +5 -0
- package/icons/generated/24/entertainment-events-hobbies-glasses-3d.tsx +5 -0
- package/icons/generated/24/entertainment-events-hobbies-horror-ghost.tsx +5 -0
- package/icons/generated/24/entertainment-events-hobbies-popcorn.tsx +5 -0
- package/icons/generated/24/entertainment-events-hobbies-record-player.tsx +5 -0
- package/icons/generated/24/entertainment-events-hobbies-reward-winner-talent.tsx +5 -0
- package/icons/generated/24/entertainment-events-hobbies-ticket.tsx +5 -0
- package/icons/generated/24/entertainment-events-hobbies-video-camera-film-1.tsx +5 -0
- package/icons/generated/24/entertainment-events-hobbies-video-camera-film-2.tsx +5 -0
- package/icons/generated/24/entertainment-events-hobbies-video-camera-film-3.tsx +5 -0
- package/icons/generated/24/entertainment-events-hobbies-video-movie-producer-director-chair.tsx +5 -0
- package/icons/generated/24/food-drink-bread.tsx +5 -0
- package/icons/generated/24/food-drink-coffee-cup.tsx +5 -0
- package/icons/generated/24/food-drink-coffee.tsx +5 -0
- package/icons/generated/24/food-drink-desert-cake-pond.tsx +5 -0
- package/icons/generated/24/food-drink-desert-cake.tsx +5 -0
- package/icons/generated/24/food-drink-desert-cotton-candy.tsx +5 -0
- package/icons/generated/24/food-drink-desert-cupcake.tsx +5 -0
- package/icons/generated/24/food-drink-desert-donut.tsx +5 -0
- package/icons/generated/24/food-drink-desert-icecream.tsx +5 -0
- package/icons/generated/24/food-drink-egg.tsx +5 -0
- package/icons/generated/24/food-drink-fish-bone.tsx +5 -0
- package/icons/generated/24/food-drink-fish.tsx +5 -0
- package/icons/generated/24/food-drink-fried-chicken.tsx +5 -0
- package/icons/generated/24/food-drink-fruit-cherry.tsx +5 -0
- package/icons/generated/24/food-drink-hamburger.tsx +5 -0
- package/icons/generated/24/food-drink-milk.tsx +5 -0
- package/icons/generated/24/food-drink-pizza.tsx +5 -0
- package/icons/generated/24/food-drink-rice-ball.tsx +5 -0
- package/icons/generated/24/food-drink-sushi.tsx +5 -0
- package/icons/generated/24/food-drink-tea.tsx +5 -0
- package/icons/generated/24/hand-awesome.tsx +5 -0
- package/icons/generated/24/hand-cross-finger-heart.tsx +5 -0
- package/icons/generated/24/hand-dislike.tsx +5 -0
- package/icons/generated/24/hand-fight-2-finger.tsx +5 -0
- package/icons/generated/24/hand-fiist.tsx +5 -0
- package/icons/generated/24/hand-four.tsx +5 -0
- package/icons/generated/24/hand-fuck-middle-finger.tsx +5 -0
- package/icons/generated/24/hand-gesture-finger-click.tsx +5 -0
- package/icons/generated/24/hand-like.tsx +5 -0
- package/icons/generated/24/hand-little-finger.tsx +5 -0
- package/icons/generated/24/hand-love-sign.tsx +5 -0
- package/icons/generated/24/hand-love.tsx +5 -0
- package/icons/generated/24/hand-ok.tsx +5 -0
- package/icons/generated/24/hand-point.tsx +5 -0
- package/icons/generated/24/hand-three-finger.tsx +5 -0
- package/icons/generated/24/hand-writing.tsx +5 -0
- package/icons/generated/24/hand-zombie.tsx +5 -0
- package/icons/generated/24/hand-zoom.tsx +5 -0
- package/icons/generated/24/hand.tsx +5 -0
- package/icons/generated/24/health-ambulance-call.tsx +5 -0
- package/icons/generated/24/health-ambulance-car.tsx +5 -0
- package/icons/generated/24/health-anti-virus.tsx +5 -0
- package/icons/generated/24/health-bandage.tsx +5 -0
- package/icons/generated/24/health-blood-drop-type.tsx +5 -0
- package/icons/generated/24/health-brain-1.tsx +5 -0
- package/icons/generated/24/health-brain-2.tsx +5 -0
- package/icons/generated/24/health-dentistry-tooth.tsx +5 -0
- package/icons/generated/24/health-drug-medicine-bag-aid-1.tsx +5 -0
- package/icons/generated/24/health-drug-medicine-bag-aid-2.tsx +5 -0
- package/icons/generated/24/health-drug-medicine-water.tsx +5 -0
- package/icons/generated/24/health-drug-medicine.tsx +5 -0
- package/icons/generated/24/health-drugs-cannabis.tsx +5 -0
- package/icons/generated/24/health-drugs-pill.tsx +5 -0
- package/icons/generated/24/health-health-dead.tsx +5 -0
- package/icons/generated/24/health-hospital-building-1.tsx +5 -0
- package/icons/generated/24/health-hospital-building-2.tsx +5 -0
- package/icons/generated/24/health-injection.tsx +5 -0
- package/icons/generated/24/health-laboratory-test-blood-sugar.tsx +5 -0
- package/icons/generated/24/health-laboratory-test-stool-cup.tsx +5 -0
- package/icons/generated/24/health-laboratory.tsx +5 -0
- package/icons/generated/24/health-medical-notes.tsx +5 -0
- package/icons/generated/24/health-monitor-heart-beat.tsx +5 -0
- package/icons/generated/24/health-stool.tsx +5 -0
- package/icons/generated/24/health-transfusion-bag.tsx +5 -0
- package/icons/generated/24/health-virus.tsx +5 -0
- package/icons/generated/24/interface-essential-alarm-bell-off.tsx +5 -0
- package/icons/generated/24/interface-essential-alarm-bell-sleep.tsx +5 -0
- package/icons/generated/24/interface-essential-alert-caution.tsx +5 -0
- package/icons/generated/24/interface-essential-alert-circle-1.tsx +5 -0
- package/icons/generated/24/interface-essential-alert-circle-2.tsx +5 -0
- package/icons/generated/24/interface-essential-alert-triangle-1.tsx +5 -0
- package/icons/generated/24/interface-essential-alert-triangle-2.tsx +5 -0
- package/icons/generated/24/interface-essential-alert.tsx +5 -0
- package/icons/generated/24/interface-essential-battery.tsx +5 -0
- package/icons/generated/24/interface-essential-bin.tsx +5 -0
- package/icons/generated/24/interface-essential-blutooth.tsx +5 -0
- package/icons/generated/24/interface-essential-bookmark.tsx +5 -0
- package/icons/generated/24/interface-essential-bookmark_1.tsx +5 -0
- package/icons/generated/24/interface-essential-calendar-appointment.tsx +5 -0
- package/icons/generated/24/interface-essential-calendar-date.tsx +5 -0
- package/icons/generated/24/interface-essential-call-center-contact-help.tsx +5 -0
- package/icons/generated/24/interface-essential-clip-1.tsx +5 -0
- package/icons/generated/24/interface-essential-clip-2.tsx +5 -0
- package/icons/generated/24/interface-essential-clock.tsx +5 -0
- package/icons/generated/24/interface-essential-clound-download.tsx +5 -0
- package/icons/generated/24/interface-essential-cog-browser.tsx +5 -0
- package/icons/generated/24/interface-essential-cog-double.tsx +5 -0
- package/icons/generated/24/interface-essential-cog-hand-give.tsx +5 -0
- package/icons/generated/24/interface-essential-cog-search.tsx +5 -0
- package/icons/generated/24/interface-essential-crown.tsx +5 -0
- package/icons/generated/24/interface-essential-cursor-click-point.tsx +5 -0
- package/icons/generated/24/interface-essential-cursor-select.tsx +5 -0
- package/icons/generated/24/interface-essential-cursor.tsx +5 -0
- package/icons/generated/24/interface-essential-dial-pad-1.tsx +5 -0
- package/icons/generated/24/interface-essential-dial-pad-2.tsx +5 -0
- package/icons/generated/24/interface-essential-dial-pad-finger-1.tsx +5 -0
- package/icons/generated/24/interface-essential-dial-pad-finger-2.tsx +5 -0
- package/icons/generated/24/interface-essential-direction-button.tsx +5 -0
- package/icons/generated/24/interface-essential-edit-fill.tsx +5 -0
- package/icons/generated/24/interface-essential-eraser.tsx +5 -0
- package/icons/generated/24/interface-essential-expand-1.tsx +5 -0
- package/icons/generated/24/interface-essential-expand-2.tsx +5 -0
- package/icons/generated/24/interface-essential-expand-3.tsx +5 -0
- package/icons/generated/24/interface-essential-face-id-1.tsx +5 -0
- package/icons/generated/24/interface-essential-face-id.tsx +5 -0
- package/icons/generated/24/interface-essential-file-error.tsx +5 -0
- package/icons/generated/24/interface-essential-filter.tsx +5 -0
- package/icons/generated/24/interface-essential-find-text.tsx +5 -0
- package/icons/generated/24/interface-essential-finger-print-scan.tsx +5 -0
- package/icons/generated/24/interface-essential-flag.tsx +5 -0
- package/icons/generated/24/interface-essential-flash.tsx +5 -0
- package/icons/generated/24/interface-essential-flip-vertical-down.tsx +5 -0
- package/icons/generated/24/interface-essential-flip-vertical-up.tsx +5 -0
- package/icons/generated/24/interface-essential-floppy-disk.tsx +5 -0
- package/icons/generated/24/interface-essential-global-public.tsx +5 -0
- package/icons/generated/24/interface-essential-hammer-1.tsx +5 -0
- package/icons/generated/24/interface-essential-hammer-2.tsx +5 -0
- package/icons/generated/24/interface-essential-heart-favorite.tsx +5 -0
- package/icons/generated/24/interface-essential-hierarchy-1.tsx +5 -0
- package/icons/generated/24/interface-essential-hierarchy-2.tsx +5 -0
- package/icons/generated/24/interface-essential-hierarchy-3.tsx +5 -0
- package/icons/generated/24/interface-essential-hierarchy-4.tsx +5 -0
- package/icons/generated/24/interface-essential-hierarchy-5.tsx +5 -0
- package/icons/generated/24/interface-essential-hierarchy-files.tsx +5 -0
- package/icons/generated/24/interface-essential-home-1.tsx +5 -0
- package/icons/generated/24/interface-essential-home-2.tsx +5 -0
- package/icons/generated/24/interface-essential-hyperlink.tsx +5 -0
- package/icons/generated/24/interface-essential-information-circle-1.tsx +5 -0
- package/icons/generated/24/interface-essential-information-circle-2.tsx +5 -0
- package/icons/generated/24/interface-essential-iris-scan-approved.tsx +5 -0
- package/icons/generated/24/interface-essential-iris-scan.tsx +5 -0
- package/icons/generated/24/interface-essential-key-1.tsx +5 -0
- package/icons/generated/24/interface-essential-key-lock.tsx +5 -0
- package/icons/generated/24/interface-essential-key-login.tsx +5 -0
- package/icons/generated/24/interface-essential-key.tsx +5 -0
- package/icons/generated/24/interface-essential-keyboard-button-direction-1.tsx +5 -0
- package/icons/generated/24/interface-essential-keyboard-button-direction-2.tsx +5 -0
- package/icons/generated/24/interface-essential-light-bulb.tsx +5 -0
- package/icons/generated/24/interface-essential-link-broken-1.tsx +5 -0
- package/icons/generated/24/interface-essential-link-broken-2.tsx +5 -0
- package/icons/generated/24/interface-essential-link.tsx +5 -0
- package/icons/generated/24/interface-essential-list.tsx +5 -0
- package/icons/generated/24/interface-essential-loading-0-percent-1.tsx +5 -0
- package/icons/generated/24/interface-essential-loading-0-percent.tsx +5 -0
- package/icons/generated/24/interface-essential-loading-100-percent-1.tsx +5 -0
- package/icons/generated/24/interface-essential-loading-100-percent.tsx +5 -0
- package/icons/generated/24/interface-essential-loading-20-percent.tsx +5 -0
- package/icons/generated/24/interface-essential-loading-25-percent-1.tsx +5 -0
- package/icons/generated/24/interface-essential-loading-50-percent-1.tsx +5 -0
- package/icons/generated/24/interface-essential-loading-50-percent.tsx +5 -0
- package/icons/generated/24/interface-essential-loading-75-percent-1.tsx +5 -0
- package/icons/generated/24/interface-essential-loading-80-percent.tsx +5 -0
- package/icons/generated/24/interface-essential-loading-circle-1.tsx +5 -0
- package/icons/generated/24/interface-essential-loading-circle-2.tsx +5 -0
- package/icons/generated/24/interface-essential-loading-status.tsx +5 -0
- package/icons/generated/24/interface-essential-lock-1.tsx +5 -0
- package/icons/generated/24/interface-essential-lock-door-out.tsx +5 -0
- package/icons/generated/24/interface-essential-lock-shield.tsx +5 -0
- package/icons/generated/24/interface-essential-lock.tsx +5 -0
- package/icons/generated/24/interface-essential-magnet.tsx +5 -0
- package/icons/generated/24/interface-essential-map.tsx +5 -0
- package/icons/generated/24/interface-essential-message.tsx +5 -0
- package/icons/generated/24/interface-essential-microphone.tsx +5 -0
- package/icons/generated/24/interface-essential-move.tsx +5 -0
- package/icons/generated/24/interface-essential-navigation-left-circle-1.tsx +5 -0
- package/icons/generated/24/interface-essential-navigation-left-circle-2.tsx +5 -0
- package/icons/generated/24/interface-essential-navigation-menu-1.tsx +5 -0
- package/icons/generated/24/interface-essential-navigation-menu-2.tsx +5 -0
- package/icons/generated/24/interface-essential-navigation-menu-3.tsx +5 -0
- package/icons/generated/24/interface-essential-navigation-right-circle-1.tsx +5 -0
- package/icons/generated/24/interface-essential-navigation-right-circle-2.tsx +5 -0
- package/icons/generated/24/interface-essential-note-music.tsx +5 -0
- package/icons/generated/24/interface-essential-notification-alert.tsx +5 -0
- package/icons/generated/24/interface-essential-pacman-loading.tsx +5 -0
- package/icons/generated/24/interface-essential-paginate-filter-camera.tsx +5 -0
- package/icons/generated/24/interface-essential-paginate-filter-heart.tsx +5 -0
- package/icons/generated/24/interface-essential-paginate-filter-music.tsx +5 -0
- package/icons/generated/24/interface-essential-paginate-filter-picture.tsx +5 -0
- package/icons/generated/24/interface-essential-paginate-filter-video.tsx +5 -0
- package/icons/generated/24/interface-essential-password-type.tsx +5 -0
- package/icons/generated/24/interface-essential-pencil-edit-1.tsx +5 -0
- package/icons/generated/24/interface-essential-pencil-edit-2.tsx +5 -0
- package/icons/generated/24/interface-essential-pie-chart-poll-report-1.tsx +5 -0
- package/icons/generated/24/interface-essential-pie-chart-poll-report-2.tsx +5 -0
- package/icons/generated/24/interface-essential-pin.tsx +5 -0
- package/icons/generated/24/interface-essential-poll.tsx +5 -0
- package/icons/generated/24/interface-essential-print.tsx +5 -0
- package/icons/generated/24/interface-essential-profile-female.tsx +5 -0
- package/icons/generated/24/interface-essential-profile-male.tsx +5 -0
- package/icons/generated/24/interface-essential-protect-guard.tsx +5 -0
- package/icons/generated/24/interface-essential-protect-rubber-ring.tsx +5 -0
- package/icons/generated/24/interface-essential-question-help-circle-1.tsx +5 -0
- package/icons/generated/24/interface-essential-question-help-circle-2.tsx +5 -0
- package/icons/generated/24/interface-essential-question-help-square.tsx +5 -0
- package/icons/generated/24/interface-essential-recycle.tsx +5 -0
- package/icons/generated/24/interface-essential-reflect-down-up.tsx +5 -0
- package/icons/generated/24/interface-essential-reflect-down.tsx +5 -0
- package/icons/generated/24/interface-essential-refresh.tsx +5 -0
- package/icons/generated/24/interface-essential-safari-compass.tsx +5 -0
- package/icons/generated/24/interface-essential-satellite.tsx +5 -0
- package/icons/generated/24/interface-essential-scisor.tsx +5 -0
- package/icons/generated/24/interface-essential-scroll-horizontal.tsx +5 -0
- package/icons/generated/24/interface-essential-scroll-vertical.tsx +5 -0
- package/icons/generated/24/interface-essential-search-1.tsx +5 -0
- package/icons/generated/24/interface-essential-search-binocular.tsx +5 -0
- package/icons/generated/24/interface-essential-search-check.tsx +5 -0
- package/icons/generated/24/interface-essential-search-remove.tsx +5 -0
- package/icons/generated/24/interface-essential-send-mail.tsx +5 -0
- package/icons/generated/24/interface-essential-setting-cog.tsx +5 -0
- package/icons/generated/24/interface-essential-setting-slide.tsx +5 -0
- package/icons/generated/24/interface-essential-settings-toggle-horizontal.tsx +5 -0
- package/icons/generated/24/interface-essential-share-1.tsx +5 -0
- package/icons/generated/24/interface-essential-share-2.tsx +5 -0
- package/icons/generated/24/interface-essential-share-3.tsx +5 -0
- package/icons/generated/24/interface-essential-shrink-1.tsx +5 -0
- package/icons/generated/24/interface-essential-shrink-2.tsx +5 -0
- package/icons/generated/24/interface-essential-shrink-3.tsx +5 -0
- package/icons/generated/24/interface-essential-shrink-4.tsx +5 -0
- package/icons/generated/24/interface-essential-signin-expand.tsx +5 -0
- package/icons/generated/24/interface-essential-signin-login.tsx +5 -0
- package/icons/generated/24/interface-essential-signout-logout.tsx +5 -0
- package/icons/generated/24/interface-essential-skull-1.tsx +5 -0
- package/icons/generated/24/interface-essential-skull-2.tsx +5 -0
- package/icons/generated/24/interface-essential-sound.tsx +5 -0
- package/icons/generated/24/interface-essential-speaker-announce.tsx +5 -0
- package/icons/generated/24/interface-essential-stat.tsx +5 -0
- package/icons/generated/24/interface-essential-stop-sign-1.tsx +5 -0
- package/icons/generated/24/interface-essential-stop-sign-2.tsx +5 -0
- package/icons/generated/24/interface-essential-stopwatch.tsx +5 -0
- package/icons/generated/24/interface-essential-switch-off.tsx +5 -0
- package/icons/generated/24/interface-essential-switch-on.tsx +5 -0
- package/icons/generated/24/interface-essential-synchronize-arrows-square-1.tsx +5 -0
- package/icons/generated/24/interface-essential-synchronize-arrows-square-2.tsx +5 -0
- package/icons/generated/24/interface-essential-text-format-1.tsx +5 -0
- package/icons/generated/24/interface-essential-text-format-2.tsx +5 -0
- package/icons/generated/24/interface-essential-text-input-area-1.tsx +5 -0
- package/icons/generated/24/interface-essential-text-input-area-2.tsx +5 -0
- package/icons/generated/24/interface-essential-text-input-area-3.tsx +5 -0
- package/icons/generated/24/interface-essential-touch-id-lock.tsx +5 -0
- package/icons/generated/24/interface-essential-touch-id-smartphone.tsx +5 -0
- package/icons/generated/24/interface-essential-translate.tsx +5 -0
- package/icons/generated/24/interface-essential-trophy.tsx +5 -0
- package/icons/generated/24/interface-essential-view-eye.tsx +5 -0
- package/icons/generated/24/interface-essential-voice-id.tsx +5 -0
- package/icons/generated/24/interface-essential-waiting-hourglass-loading.tsx +5 -0
- package/icons/generated/24/interface-essential-watch-time.tsx +5 -0
- package/icons/generated/24/interface-essential-wifi-feed.tsx +5 -0
- package/icons/generated/24/interface-essential-wifi-signal.tsx +5 -0
- package/icons/generated/24/interface-essential-wireless.tsx +5 -0
- package/icons/generated/24/interface-essential-wrench-1.tsx +5 -0
- package/icons/generated/24/interface-essential-wrench-2.tsx +5 -0
- package/icons/generated/24/interface-essential-zoom-in-page.tsx +5 -0
- package/icons/generated/24/interface-essential-zoom-in.tsx +5 -0
- package/icons/generated/24/interface-essential-zoom-out-page.tsx +5 -0
- package/icons/generated/24/interface-essential-zoom-out.tsx +5 -0
- package/icons/generated/24/internet-network-arrow-sync.tsx +5 -0
- package/icons/generated/24/internet-network-cloud-error.tsx +5 -0
- package/icons/generated/24/internet-network-cloud-off.tsx +5 -0
- package/icons/generated/24/internet-network-computer-download.tsx +5 -0
- package/icons/generated/24/internet-network-computer-upload.tsx +5 -0
- package/icons/generated/24/internet-network-download.tsx +5 -0
- package/icons/generated/24/internet-network-laptop.tsx +5 -0
- package/icons/generated/24/internet-network-upload.tsx +5 -0
- package/icons/generated/24/internet-network-wifi-monitor.tsx +5 -0
- package/icons/generated/24/internet-network-www.tsx +5 -0
- package/icons/generated/24/logo-discord.tsx +5 -0
- package/icons/generated/24/logo-linkedin.tsx +5 -0
- package/icons/generated/24/logo-pinterest.tsx +5 -0
- package/icons/generated/24/logo-snapchat.tsx +5 -0
- package/icons/generated/24/logo-social-media-dropbox.tsx +5 -0
- package/icons/generated/24/logo-social-media-facebook-circle.tsx +5 -0
- package/icons/generated/24/logo-social-media-instagram-circle.tsx +5 -0
- package/icons/generated/24/logo-social-media-instagram.tsx +5 -0
- package/icons/generated/24/logo-social-media-old-instagram.tsx +5 -0
- package/icons/generated/24/logo-social-media-tiktok-circle.tsx +5 -0
- package/icons/generated/24/logo-social-media-tiktok.tsx +5 -0
- package/icons/generated/24/logo-social-media-twitter-circle.tsx +5 -0
- package/icons/generated/24/logo-social-media-youtube-circle.tsx +5 -0
- package/icons/generated/24/logo-social-media-youtube.tsx +5 -0
- package/icons/generated/24/logo-soundcloud-1.tsx +5 -0
- package/icons/generated/24/logo-soundcloud-2.tsx +5 -0
- package/icons/generated/24/logo-spotify.tsx +5 -0
- package/icons/generated/24/logo-twitch-1.tsx +5 -0
- package/icons/generated/24/logo-twitch-2.tsx +5 -0
- package/icons/generated/24/logo-twitter.tsx +5 -0
- package/icons/generated/24/logo-whatapp.tsx +5 -0
- package/icons/generated/24/map-navigation-compass-direction.tsx +5 -0
- package/icons/generated/24/map-navigation-location-focus.tsx +5 -0
- package/icons/generated/24/map-navigation-pin-location-1.tsx +5 -0
- package/icons/generated/24/map-navigation-pin-location-2.tsx +5 -0
- package/icons/generated/24/map-navigation-pin-location-trip.tsx +5 -0
- package/icons/generated/24/mobile-phone.tsx +5 -0
- package/icons/generated/24/money-payments-accounting-bill-money-1.tsx +5 -0
- package/icons/generated/24/money-payments-accounting-bill-money-2.tsx +5 -0
- package/icons/generated/24/money-payments-accounting-calculator.tsx +5 -0
- package/icons/generated/24/money-payments-bank.tsx +5 -0
- package/icons/generated/24/money-payments-calculator-app.tsx +5 -0
- package/icons/generated/24/money-payments-cash-payment-coin.tsx +5 -0
- package/icons/generated/24/money-payments-credit-card-mastercard.tsx +5 -0
- package/icons/generated/24/money-payments-credit-card-visa.tsx +5 -0
- package/icons/generated/24/money-payments-currency-euro-dollar-exchange.tsx +5 -0
- package/icons/generated/24/money-payments-diamond.tsx +5 -0
- package/icons/generated/24/money-payments-saving-treasure.tsx +5 -0
- package/icons/generated/24/money-payments-self-payment.tsx +5 -0
- package/icons/generated/24/money-payments-smartphone-pay-dollar.tsx +5 -0
- package/icons/generated/24/multiple-user.tsx +5 -0
- package/icons/generated/24/music-album-cd-disk-playlist.tsx +5 -0
- package/icons/generated/24/music-clef-sheet.tsx +5 -0
- package/icons/generated/24/music-disk-cd-1.tsx +5 -0
- package/icons/generated/24/music-disk-cd-2.tsx +5 -0
- package/icons/generated/24/music-headphones-human.tsx +5 -0
- package/icons/generated/24/music-microphone-1.tsx +5 -0
- package/icons/generated/24/music-microphone-2.tsx +5 -0
- package/icons/generated/24/music-microphone-off.tsx +5 -0
- package/icons/generated/24/music-notes-music-1.tsx +5 -0
- package/icons/generated/24/music-notes-music-2.tsx +5 -0
- package/icons/generated/24/music-radio-stereo.tsx +5 -0
- package/icons/generated/24/music-speaker.tsx +5 -0
- package/icons/generated/24/music-vinyl-record.tsx +5 -0
- package/icons/generated/24/music-walkman-cassette.tsx +5 -0
- package/icons/generated/24/non-gmo-fertilizer.tsx +5 -0
- package/icons/generated/24/notification-email.tsx +5 -0
- package/icons/generated/24/pet-animals-bear.tsx +5 -0
- package/icons/generated/24/pet-animals-buffalo.tsx +5 -0
- package/icons/generated/24/pet-animals-cat.tsx +5 -0
- package/icons/generated/24/pet-animals-dog.tsx +5 -0
- package/icons/generated/24/pet-animals-frog-face.tsx +5 -0
- package/icons/generated/24/pet-animals-frog.tsx +5 -0
- package/icons/generated/24/pet-animals-gorilla.tsx +5 -0
- package/icons/generated/24/pet-animals-ox.tsx +5 -0
- package/icons/generated/24/pet-animals-pig.tsx +5 -0
- package/icons/generated/24/pet-animals-rabbit-1.tsx +5 -0
- package/icons/generated/24/pet-animals-rabbit-2.tsx +5 -0
- package/icons/generated/24/pet-animals-turtle.tsx +5 -0
- package/icons/generated/24/phone-actions-remove-1.tsx +5 -0
- package/icons/generated/24/phone-actions-remove-2.tsx +5 -0
- package/icons/generated/24/phone-incoming-call.tsx +5 -0
- package/icons/generated/24/phone-off-1.tsx +5 -0
- package/icons/generated/24/phone-off-2.tsx +5 -0
- package/icons/generated/24/phone-scan-qr-code-1.tsx +5 -0
- package/icons/generated/24/phone-scan-qr-code-2.tsx +5 -0
- package/icons/generated/24/phone-signal-full.tsx +5 -0
- package/icons/generated/24/phone-vibrate.tsx +5 -0
- package/icons/generated/24/photography-camera-1.tsx +5 -0
- package/icons/generated/24/photography-equipment-film-print.tsx +5 -0
- package/icons/generated/24/photography-file-picture.tsx +5 -0
- package/icons/generated/24/photography-focus-flower.tsx +5 -0
- package/icons/generated/24/photography-frame-picture.tsx +5 -0
- package/icons/generated/24/photography-light-mode-flash-on.tsx +5 -0
- package/icons/generated/24/photography-photo-image.tsx +5 -0
- package/icons/generated/24/photography-picture-polaroid.tsx +5 -0
- package/icons/generated/24/photography-retouch-wand-star.tsx +5 -0
- package/icons/generated/24/photography-retouch-wand.tsx +5 -0
- package/icons/generated/24/photography-taking-pictures-circle-alternate.tsx +5 -0
- package/icons/generated/24/real-estate-building-1.tsx +5 -0
- package/icons/generated/24/real-estate-building-2.tsx +5 -0
- package/icons/generated/24/real-estate-building-3.tsx +5 -0
- package/icons/generated/24/real-estate-building-4.tsx +5 -0
- package/icons/generated/24/real-estate-building-ad.tsx +5 -0
- package/icons/generated/24/real-estate-building-factory.tsx +5 -0
- package/icons/generated/24/real-estate-building-house.tsx +5 -0
- package/icons/generated/24/real-estate-sign-building.tsx +5 -0
- package/icons/generated/24/romance-heart-lock.tsx +5 -0
- package/icons/generated/24/romance-love-letter-open.tsx +5 -0
- package/icons/generated/24/school-science-bag.tsx +5 -0
- package/icons/generated/24/school-science-dna.tsx +5 -0
- package/icons/generated/24/school-science-graduation-cap.tsx +5 -0
- package/icons/generated/24/school-science-test-flask.tsx +5 -0
- package/icons/generated/24/search-coding.tsx +5 -0
- package/icons/generated/24/search-user.tsx +5 -0
- package/icons/generated/24/send-email.tsx +5 -0
- package/icons/generated/24/shopping-shipping-bag-1.tsx +5 -0
- package/icons/generated/24/shopping-shipping-bag-2.tsx +5 -0
- package/icons/generated/24/shopping-shipping-barcode.tsx +5 -0
- package/icons/generated/24/shopping-shipping-basket.tsx +5 -0
- package/icons/generated/24/shopping-shipping-box.tsx +5 -0
- package/icons/generated/24/shopping-shipping-cart.tsx +5 -0
- package/icons/generated/24/shopping-shipping-crack-1.tsx +5 -0
- package/icons/generated/24/shopping-shipping-crack-2.tsx +5 -0
- package/icons/generated/24/shopping-shipping-delivery-person-motorcycle.tsx +5 -0
- package/icons/generated/24/shopping-shipping-delivery-truck.tsx +5 -0
- package/icons/generated/24/shopping-shipping-discount-coupon.tsx +5 -0
- package/icons/generated/24/shopping-shipping-loading-box.tsx +5 -0
- package/icons/generated/24/shopping-shipping-products-gift.tsx +5 -0
- package/icons/generated/24/shopping-shipping-receipt-slip.tsx +5 -0
- package/icons/generated/24/shopping-shipping-shipment-deliver.tsx +5 -0
- package/icons/generated/24/shopping-shipping-shop.tsx +5 -0
- package/icons/generated/24/shopping-shipping-upload-information.tsx +5 -0
- package/icons/generated/24/shopping-shipping-warehouse-truck-delivery.tsx +5 -0
- package/icons/generated/24/shopping-shipping-weight-kg.tsx +5 -0
- package/icons/generated/24/single-user-shield.tsx +5 -0
- package/icons/generated/24/social-rewards-certified-diploma.tsx +5 -0
- package/icons/generated/24/social-rewards-certified-ribbon.tsx +5 -0
- package/icons/generated/24/social-rewards-flag.tsx +5 -0
- package/icons/generated/24/social-rewards-heart-like-circle.tsx +5 -0
- package/icons/generated/24/social-rewards-like-bubble.tsx +5 -0
- package/icons/generated/24/social-rewards-like-circle.tsx +5 -0
- package/icons/generated/24/social-rewards-rating-star-1.tsx +5 -0
- package/icons/generated/24/social-rewards-rating-star-2.tsx +5 -0
- package/icons/generated/24/social-rewards-reward-gift.tsx +5 -0
- package/icons/generated/24/social-rewards-trends-hot-flame.tsx +5 -0
- package/icons/generated/24/social-rewards-vip-crown-king.tsx +5 -0
- package/icons/generated/24/technology-drone-camera.tsx +5 -0
- package/icons/generated/24/technology-drone-signal.tsx +5 -0
- package/icons/generated/24/technology-robot-ai-signal-1.tsx +5 -0
- package/icons/generated/24/technology-robot-ai-signal-2.tsx +5 -0
- package/icons/generated/24/technology-robot-ai.tsx +5 -0
- package/icons/generated/24/transportation-bicycle.tsx +5 -0
- package/icons/generated/24/transportation-helicopter.tsx +5 -0
- package/icons/generated/24/transportation-motorcycle.tsx +5 -0
- package/icons/generated/24/transportation-plane.tsx +5 -0
- package/icons/generated/24/transportation-train.tsx +5 -0
- package/icons/generated/24/transportation-truck.tsx +5 -0
- package/icons/generated/24/transportation-vintage-train.tsx +5 -0
- package/icons/generated/24/travel-wayfinding-balloon.tsx +5 -0
- package/icons/generated/24/travel-wayfinding-beach-coconut-tree.tsx +5 -0
- package/icons/generated/24/travel-wayfinding-beach-umbrella.tsx +5 -0
- package/icons/generated/24/travel-wayfinding-pool-ladder.tsx +5 -0
- package/icons/generated/24/ui-design-website.tsx +5 -0
- package/icons/generated/24/user-gender-female-male.tsx +5 -0
- package/icons/generated/24/user-gender-female.tsx +5 -0
- package/icons/generated/24/user-gender-gay.tsx +5 -0
- package/icons/generated/24/user-gender-lesbian.tsx +5 -0
- package/icons/generated/24/user-gender-male.tsx +5 -0
- package/icons/generated/24/user-man-love.tsx +5 -0
- package/icons/generated/24/user-single-aim.tsx +5 -0
- package/icons/generated/24/user-sleep.tsx +5 -0
- package/icons/generated/24/user-woman-increasing-arrow.tsx +5 -0
- package/icons/generated/24/video-movies-play.tsx +5 -0
- package/icons/generated/24/video-movies-player.tsx +5 -0
- package/icons/generated/24/video-movies-set-equipment.tsx +5 -0
- package/icons/generated/24/video-movies-square-off.tsx +5 -0
- package/icons/generated/24/video-movies-video-square.tsx +5 -0
- package/icons/generated/24/video-movies-vintage-tv-1.tsx +5 -0
- package/icons/generated/24/video-movies-vintage-tv-2.tsx +5 -0
- package/icons/generated/24/video-movies-vintage-tv-3.tsx +5 -0
- package/icons/generated/24/vintage-phone.tsx +5 -0
- package/icons/generated/24/weather-cloud-sun-fine.tsx +5 -0
- package/icons/generated/24/weather-cresent-moon-stars.tsx +5 -0
- package/icons/generated/24/weather-meteor.tsx +5 -0
- package/icons/generated/24/weather-moon.tsx +5 -0
- package/icons/generated/24/weather-rainbow.tsx +5 -0
- package/icons/generated/24/weather-snowman.tsx +5 -0
- package/icons/generated/24/weather-temperature-thermometer.tsx +5 -0
- package/icons/generated/24/weather-umbrella-snowing.tsx +5 -0
- package/icons/generated/24/weather-umbrella.tsx +5 -0
- package/icons/generated/24/weather-wind-flag.tsx +5 -0
- package/icons/generated-24.tsx +2669 -0
- package/icons/generated-aliases.ts +59 -0
- package/icons/generated-importers.ts +828 -0
- package/icons/generated.tsx +629 -0
- package/icons/index.ts +58 -0
- package/icons/resolve-icon.ts +43 -0
- package/icons/runtime.ts +15 -0
- package/icons/size-map.ts +148 -0
- package/icons/types.ts +28 -0
- package/index.css +15 -3
- package/meta/index.ts +246 -0
- package/package.json +67 -33
- package/pattern-shadows.css +137 -0
- package/patterns/index.ts +28 -0
- package/patterns/registry.ts +66 -0
- package/patterns/types.ts +22 -0
- package/patterns.css +157 -0
- package/pixel-corners.css +46 -0
- package/pixel-corners.generated.css +215 -0
- package/registry/PropControls.tsx +346 -0
- package/registry/__tests__/PropControls.test.tsx +112 -0
- package/registry/__tests__/forced-state-source.test.ts +40 -0
- package/registry/__tests__/preview-state-authoring.test.ts +70 -0
- package/registry/__tests__/preview-states.test.ts +40 -0
- package/registry/__tests__/registry-metadata.test.ts +189 -0
- package/registry/__tests__/registry.test.ts +102 -0
- package/registry/__tests__/runtime-attachments-props.test.ts +27 -0
- package/registry/__tests__/runtime-auto-components.test.ts +28 -0
- package/registry/__tests__/runtime-coverage.test.ts +27 -0
- package/registry/build-registry-metadata.ts +68 -0
- package/registry/build-registry.ts +13 -0
- package/registry/contract-fields.ts +35 -0
- package/registry/index.ts +35 -0
- package/registry/preview-states.ts +37 -0
- package/registry/runtime-attachments.tsx +721 -0
- package/registry/types.ts +145 -0
- package/registry/useShowcaseProps.ts +28 -0
- package/schemas/index.ts +89 -0
- package/tokens.css +154 -71
- package/typography.css +35 -31
- package/components/core/Accordion/Accordion.dna.json +0 -16
- package/components/core/Accordion/Accordion.schema.json +0 -48
- package/components/core/Alert/Alert.dna.json +0 -56
- package/components/core/Badge/Badge.dna.json +0 -48
- package/components/core/Breadcrumbs/Breadcrumbs.dna.json +0 -29
- package/components/core/Button/Button.dna.json +0 -58
- package/components/core/Card/Card.dna.json +0 -21
- package/components/core/Checkbox/Checkbox.dna.json +0 -38
- package/components/core/ContextMenu/ContextMenu.dna.json +0 -25
- package/components/core/CountdownTimer/CountdownTimer.dna.json +0 -79
- package/components/core/Dialog/Dialog.dna.json +0 -28
- package/components/core/Divider/Divider.dna.json +0 -16
- package/components/core/Divider/Divider.schema.json +0 -41
- package/components/core/DropdownMenu/DropdownMenu.dna.json +0 -28
- package/components/core/HelpPanel/HelpPanel.dna.json +0 -24
- package/components/core/HelpPanel/HelpPanel.schema.json +0 -47
- package/components/core/Input/Input.dna.json +0 -33
- package/components/core/MockStatesPopover/MockStatesPopover.dna.json +0 -33
- package/components/core/MockStatesPopover/MockStatesPopover.schema.json +0 -80
- package/components/core/Popover/Popover.dna.json +0 -10
- package/components/core/Progress/Progress.dna.json +0 -29
- package/components/core/Progress/Progress.schema.json +0 -57
- package/components/core/Select/Select.dna.json +0 -42
- package/components/core/Sheet/Sheet.dna.json +0 -28
- package/components/core/Slider/Slider.dna.json +0 -49
- package/components/core/Switch/Switch.dna.json +0 -47
- package/components/core/Tabs/Tabs.dna.json +0 -39
- package/components/core/Toast/Toast.dna.json +0 -31
- package/components/core/Tooltip/Tooltip.dna.json +0 -46
- package/components/core/Web3ActionBar/Web3ActionBar.dna.json +0 -23
- package/components/core/Web3ActionBar/Web3ActionBar.schema.json +0 -50
- package/dist/chunk-SR2T7OEJ.mjs +0 -46
- package/dist/chunk-SR2T7OEJ.mjs.map +0 -1
- package/dist/components/core/index.d.mts +0 -911
- package/dist/components/core/index.mjs +0 -2475
- package/dist/components/core/index.mjs.map +0 -1
- package/dist/hooks/index.d.mts +0 -22
- package/dist/hooks/index.mjs +0 -3
- package/dist/hooks/index.mjs.map +0 -1
- package/dist/remotion/index.d.mts +0 -252
- package/dist/remotion/index.mjs +0 -170
- package/dist/remotion/index.mjs.map +0 -1
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* rdna/no-hardcoded-motion
|
|
3
|
+
* Bans arbitrary duration/easing values in className and style props.
|
|
4
|
+
* Use RDNA motion tokens (duration-instant, duration-fast, duration-base,
|
|
5
|
+
* duration-moderate, duration-slow, ease-standard) instead.
|
|
6
|
+
*/
|
|
7
|
+
import { motion } from '../contract.mjs';
|
|
8
|
+
import {
|
|
9
|
+
getClassNameStrings,
|
|
10
|
+
getObjectPropertyKey,
|
|
11
|
+
getStaticStringValue,
|
|
12
|
+
getStyleObjectExpression,
|
|
13
|
+
isDynamicTemplateLiteral,
|
|
14
|
+
isInsideClassNameAttribute,
|
|
15
|
+
ARBITRARY_DURATION_CLASS,
|
|
16
|
+
ARBITRARY_EASING_CLASS,
|
|
17
|
+
} from '../utils.mjs';
|
|
18
|
+
|
|
19
|
+
const motionStyleProps = new Set([
|
|
20
|
+
'transition',
|
|
21
|
+
'transitionDuration',
|
|
22
|
+
'transitionTimingFunction',
|
|
23
|
+
'animation',
|
|
24
|
+
'animationDuration',
|
|
25
|
+
'animationTimingFunction',
|
|
26
|
+
]);
|
|
27
|
+
|
|
28
|
+
// Detects hardcoded duration values: 200ms, 0.3s, 150ms, etc.
|
|
29
|
+
const HARDCODED_DURATION_RE = /\d+\.?\d*m?s\b/;
|
|
30
|
+
// Detects hardcoded easing values: ease, ease-in, ease-out, ease-in-out, linear, cubic-bezier(...)
|
|
31
|
+
const HARDCODED_EASING_RE = /\b(?:ease-in-out|ease-in|ease-out|ease|linear)\b|cubic-bezier\s*\(/;
|
|
32
|
+
const classEasingSuggestion = motion.allowedEasings.join(', ');
|
|
33
|
+
const cssEasingSuggestion = motion.easingTokens.join(', ');
|
|
34
|
+
const durationSuggestion = motion.durationTokens.join(', ');
|
|
35
|
+
const styleSuggestion = [durationSuggestion, cssEasingSuggestion].filter(Boolean).join('; ');
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Check if a style string contains hardcoded motion values after stripping
|
|
39
|
+
* approved var() token references. This prevents false negatives where a
|
|
40
|
+
* mixed shorthand like "opacity 200ms var(--ease-standard)" contains both
|
|
41
|
+
* tokenized and hardcoded values.
|
|
42
|
+
*/
|
|
43
|
+
function containsHardcodedMotion(str) {
|
|
44
|
+
const stripped = str.replace(/var\([^)]+\)/g, '');
|
|
45
|
+
return HARDCODED_DURATION_RE.test(stripped) || HARDCODED_EASING_RE.test(stripped);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
const rule = {
|
|
49
|
+
meta: {
|
|
50
|
+
type: 'problem',
|
|
51
|
+
docs: {
|
|
52
|
+
description: 'Ban arbitrary duration/easing values; require RDNA motion tokens',
|
|
53
|
+
},
|
|
54
|
+
messages: {
|
|
55
|
+
arbitraryDuration:
|
|
56
|
+
`Arbitrary duration "{{raw}}" in className. Use an RDNA duration token (${durationSuggestion}).`,
|
|
57
|
+
arbitraryEasing:
|
|
58
|
+
`Arbitrary easing "{{raw}}" in className. Use an RDNA easing token (${classEasingSuggestion}).`,
|
|
59
|
+
hardcodedMotionStyle:
|
|
60
|
+
`Hardcoded motion value in style prop ({{prop}}). Use RDNA motion tokens/vars: ${styleSuggestion}.`,
|
|
61
|
+
},
|
|
62
|
+
schema: [],
|
|
63
|
+
},
|
|
64
|
+
|
|
65
|
+
create(context) {
|
|
66
|
+
return {
|
|
67
|
+
JSXAttribute(node) {
|
|
68
|
+
if (node.name.name === 'className') checkClassName(context, node.value);
|
|
69
|
+
if (node.name.name === 'style') checkStyleObject(context, node.value);
|
|
70
|
+
},
|
|
71
|
+
CallExpression(node) {
|
|
72
|
+
if (!isInsideClassNameAttribute(node)) checkClassName(context, node);
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
},
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
function checkClassName(context, valueNode) {
|
|
79
|
+
if (!valueNode) return;
|
|
80
|
+
const strings = getClassNameStrings(valueNode);
|
|
81
|
+
for (const { value, node } of strings) {
|
|
82
|
+
ARBITRARY_DURATION_CLASS.lastIndex = 0;
|
|
83
|
+
let match;
|
|
84
|
+
while ((match = ARBITRARY_DURATION_CLASS.exec(value)) !== null) {
|
|
85
|
+
context.report({
|
|
86
|
+
node,
|
|
87
|
+
messageId: 'arbitraryDuration',
|
|
88
|
+
data: { raw: match[0] },
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
ARBITRARY_EASING_CLASS.lastIndex = 0;
|
|
93
|
+
while ((match = ARBITRARY_EASING_CLASS.exec(value)) !== null) {
|
|
94
|
+
context.report({
|
|
95
|
+
node,
|
|
96
|
+
messageId: 'arbitraryEasing',
|
|
97
|
+
data: { raw: match[0] },
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
function checkStyleObject(context, valueNode) {
|
|
104
|
+
const expr = getStyleObjectExpression(valueNode);
|
|
105
|
+
if (!expr) return;
|
|
106
|
+
|
|
107
|
+
for (const prop of expr.properties) {
|
|
108
|
+
const key = getObjectPropertyKey(prop);
|
|
109
|
+
if (!motionStyleProps.has(key)) continue;
|
|
110
|
+
|
|
111
|
+
const val = prop.value;
|
|
112
|
+
const staticString = getStaticStringValue(val);
|
|
113
|
+
if (staticString !== null) {
|
|
114
|
+
if (!containsHardcodedMotion(staticString)) continue;
|
|
115
|
+
context.report({
|
|
116
|
+
node: val,
|
|
117
|
+
messageId: 'hardcodedMotionStyle',
|
|
118
|
+
data: { prop: key },
|
|
119
|
+
});
|
|
120
|
+
continue;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
if (isDynamicTemplateLiteral(val)) {
|
|
124
|
+
context.report({
|
|
125
|
+
node: val,
|
|
126
|
+
messageId: 'hardcodedMotionStyle',
|
|
127
|
+
data: { prop: key },
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
export default rule;
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* rdna/no-hardcoded-spacing
|
|
3
|
+
* Bans arbitrary bracket spacing values in Tailwind classes and inline styles.
|
|
4
|
+
* Standard Tailwind scale utilities (mt-3, px-4, gap-2) are ALLOWED.
|
|
5
|
+
* Only arbitrary values like p-[12px], gap-[13px], mx-[5%] are banned.
|
|
6
|
+
* v1 intentionally excludes width/height and positioning utilities.
|
|
7
|
+
*/
|
|
8
|
+
import {
|
|
9
|
+
getClassNameStrings,
|
|
10
|
+
getObjectPropertyKey,
|
|
11
|
+
getStaticStringValue,
|
|
12
|
+
getStyleObjectExpression,
|
|
13
|
+
isAllowedCssVar,
|
|
14
|
+
isDynamicTemplateLiteral,
|
|
15
|
+
isInsideClassNameAttribute,
|
|
16
|
+
ARBITRARY_SPACING_CLASS,
|
|
17
|
+
} from '../utils.mjs';
|
|
18
|
+
|
|
19
|
+
// Style properties that represent spacing
|
|
20
|
+
const spacingStyleProps = new Set([
|
|
21
|
+
'padding', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft',
|
|
22
|
+
'paddingInline', 'paddingBlock', 'paddingInlineStart', 'paddingInlineEnd',
|
|
23
|
+
'margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft',
|
|
24
|
+
'marginInline', 'marginBlock', 'marginInlineStart', 'marginInlineEnd',
|
|
25
|
+
'gap', 'rowGap', 'columnGap',
|
|
26
|
+
]);
|
|
27
|
+
|
|
28
|
+
const rule = {
|
|
29
|
+
meta: {
|
|
30
|
+
type: 'problem',
|
|
31
|
+
docs: {
|
|
32
|
+
description: 'Ban arbitrary spacing bracket values; allow standard Tailwind scale utilities',
|
|
33
|
+
},
|
|
34
|
+
messages: {
|
|
35
|
+
arbitrarySpacing:
|
|
36
|
+
'Arbitrary spacing value "{{raw}}". Use a standard Tailwind spacing utility (e.g. p-4, gap-2) instead of bracket values.',
|
|
37
|
+
hardcodedSpacingStyle:
|
|
38
|
+
'Hardcoded spacing in style prop ({{prop}}). Use CSS variable or Tailwind class instead.',
|
|
39
|
+
},
|
|
40
|
+
schema: [],
|
|
41
|
+
},
|
|
42
|
+
|
|
43
|
+
create(context) {
|
|
44
|
+
return {
|
|
45
|
+
JSXAttribute(node) {
|
|
46
|
+
if (node.name.name === 'className') {
|
|
47
|
+
checkClassName(context, node.value);
|
|
48
|
+
}
|
|
49
|
+
if (node.name.name === 'style') {
|
|
50
|
+
checkStyleObject(context, node.value);
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
CallExpression(node) {
|
|
54
|
+
if (!isInsideClassNameAttribute(node)) checkClassName(context, node);
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
function checkClassName(context, valueNode) {
|
|
61
|
+
if (!valueNode) return;
|
|
62
|
+
const strings = getClassNameStrings(valueNode);
|
|
63
|
+
for (const { value, node } of strings) {
|
|
64
|
+
ARBITRARY_SPACING_CLASS.lastIndex = 0;
|
|
65
|
+
let match;
|
|
66
|
+
while ((match = ARBITRARY_SPACING_CLASS.exec(value)) !== null) {
|
|
67
|
+
context.report({
|
|
68
|
+
node,
|
|
69
|
+
messageId: 'arbitrarySpacing',
|
|
70
|
+
data: { raw: match[0] },
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
function checkStyleObject(context, valueNode) {
|
|
77
|
+
const expr = getStyleObjectExpression(valueNode);
|
|
78
|
+
if (!expr) return;
|
|
79
|
+
|
|
80
|
+
for (const prop of expr.properties) {
|
|
81
|
+
const key = getObjectPropertyKey(prop);
|
|
82
|
+
if (!spacingStyleProps.has(key)) continue;
|
|
83
|
+
|
|
84
|
+
const val = prop.value;
|
|
85
|
+
// Ban numeric literals (e.g. padding: 12) and hardcoded strings (e.g. gap: "13px")
|
|
86
|
+
if (val.type === 'Literal' && typeof val.value === 'number') {
|
|
87
|
+
context.report({
|
|
88
|
+
node: val,
|
|
89
|
+
messageId: 'hardcodedSpacingStyle',
|
|
90
|
+
data: { prop: key },
|
|
91
|
+
});
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
const staticString = getStaticStringValue(val);
|
|
96
|
+
if (staticString !== null) {
|
|
97
|
+
if (isAllowedCssVar(staticString)) continue;
|
|
98
|
+
context.report({
|
|
99
|
+
node: val,
|
|
100
|
+
messageId: 'hardcodedSpacingStyle',
|
|
101
|
+
data: { prop: key },
|
|
102
|
+
});
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
if (isDynamicTemplateLiteral(val)) {
|
|
107
|
+
context.report({
|
|
108
|
+
node: val,
|
|
109
|
+
messageId: 'hardcodedSpacingStyle',
|
|
110
|
+
data: { prop: key },
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
export default rule;
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* rdna/no-hardcoded-typography
|
|
3
|
+
* Bans arbitrary font sizes and font weights.
|
|
4
|
+
* Allows only RDNA token-mapped text-* and font-* classes.
|
|
5
|
+
*/
|
|
6
|
+
import { typography } from '../contract.mjs';
|
|
7
|
+
import {
|
|
8
|
+
getClassNameStrings,
|
|
9
|
+
getObjectPropertyKey,
|
|
10
|
+
getStaticStringValue,
|
|
11
|
+
getStyleObjectExpression,
|
|
12
|
+
isAllowedCssVar,
|
|
13
|
+
isDynamicTemplateLiteral,
|
|
14
|
+
isInsideClassNameAttribute,
|
|
15
|
+
ARBITRARY_FONT_WEIGHT_CLASS,
|
|
16
|
+
ARBITRARY_TEXT_SIZE_CLASS,
|
|
17
|
+
} from '../utils.mjs';
|
|
18
|
+
|
|
19
|
+
const sizeSuggestion = typography.validSizes.join(', ');
|
|
20
|
+
const weightSuggestion = typography.validWeights.join(', ');
|
|
21
|
+
|
|
22
|
+
const rule = {
|
|
23
|
+
meta: {
|
|
24
|
+
type: 'problem',
|
|
25
|
+
docs: {
|
|
26
|
+
description: 'Ban arbitrary font sizes/weights; require RDNA typography tokens',
|
|
27
|
+
},
|
|
28
|
+
messages: {
|
|
29
|
+
arbitraryTextSize:
|
|
30
|
+
`Arbitrary font size "{{raw}}". Use an RDNA text size: ${sizeSuggestion}.`,
|
|
31
|
+
arbitraryFontWeight:
|
|
32
|
+
`Arbitrary font weight "{{raw}}". Use a standard weight: ${weightSuggestion}.`,
|
|
33
|
+
hardcodedTypographyStyle:
|
|
34
|
+
'Hardcoded typography value in style prop. Use CSS variable: var(--font-size-*) or var(--font-weight-*).',
|
|
35
|
+
},
|
|
36
|
+
schema: [],
|
|
37
|
+
},
|
|
38
|
+
|
|
39
|
+
create(context) {
|
|
40
|
+
return {
|
|
41
|
+
JSXAttribute(node) {
|
|
42
|
+
if (node.name.name === 'className') checkClassName(context, node.value);
|
|
43
|
+
if (node.name.name === 'style') checkStyleObject(context, node.value);
|
|
44
|
+
},
|
|
45
|
+
CallExpression(node) {
|
|
46
|
+
if (!isInsideClassNameAttribute(node)) checkClassName(context, node);
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
function checkClassName(context, valueNode) {
|
|
53
|
+
if (!valueNode) return;
|
|
54
|
+
|
|
55
|
+
const strings = getClassNameStrings(valueNode);
|
|
56
|
+
for (const { value, node } of strings) {
|
|
57
|
+
// Check arbitrary text sizes: text-[44px], hover:text-[1.1rem]
|
|
58
|
+
const sizeRegex = ARBITRARY_TEXT_SIZE_CLASS;
|
|
59
|
+
sizeRegex.lastIndex = 0;
|
|
60
|
+
let match;
|
|
61
|
+
while ((match = sizeRegex.exec(value)) !== null) {
|
|
62
|
+
context.report({
|
|
63
|
+
node,
|
|
64
|
+
messageId: 'arbitraryTextSize',
|
|
65
|
+
data: { raw: match[0] },
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// Check arbitrary font weights: font-[450], dark:font-[700]
|
|
70
|
+
const weightRegex = ARBITRARY_FONT_WEIGHT_CLASS;
|
|
71
|
+
weightRegex.lastIndex = 0;
|
|
72
|
+
while ((match = weightRegex.exec(value)) !== null) {
|
|
73
|
+
context.report({
|
|
74
|
+
node,
|
|
75
|
+
messageId: 'arbitraryFontWeight',
|
|
76
|
+
data: { raw: match[0] },
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
function checkStyleObject(context, valueNode) {
|
|
83
|
+
const expr = getStyleObjectExpression(valueNode);
|
|
84
|
+
if (!expr) return;
|
|
85
|
+
|
|
86
|
+
for (const prop of expr.properties) {
|
|
87
|
+
const key = getObjectPropertyKey(prop);
|
|
88
|
+
const val = prop.value;
|
|
89
|
+
|
|
90
|
+
if (key === 'fontSize') {
|
|
91
|
+
if (val.type === 'Literal' && typeof val.value === 'number') {
|
|
92
|
+
context.report({ node: val, messageId: 'hardcodedTypographyStyle' });
|
|
93
|
+
continue;
|
|
94
|
+
}
|
|
95
|
+
const staticString = getStaticStringValue(val);
|
|
96
|
+
if (staticString !== null) {
|
|
97
|
+
if (isAllowedCssVar(staticString, 'font-size-')) continue;
|
|
98
|
+
context.report({ node: val, messageId: 'hardcodedTypographyStyle' });
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
if (isDynamicTemplateLiteral(val)) {
|
|
102
|
+
context.report({ node: val, messageId: 'hardcodedTypographyStyle' });
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
if (key === 'fontWeight') {
|
|
107
|
+
if (val.type === 'Literal' && typeof val.value === 'number') {
|
|
108
|
+
context.report({ node: val, messageId: 'hardcodedTypographyStyle' });
|
|
109
|
+
continue;
|
|
110
|
+
}
|
|
111
|
+
const staticString = getStaticStringValue(val);
|
|
112
|
+
if (staticString !== null) {
|
|
113
|
+
if (isAllowedCssVar(staticString, 'font-weight-')) continue;
|
|
114
|
+
context.report({ node: val, messageId: 'hardcodedTypographyStyle' });
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
117
|
+
if (isDynamicTemplateLiteral(val)) {
|
|
118
|
+
context.report({ node: val, messageId: 'hardcodedTypographyStyle' });
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
export default rule;
|
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* rdna/no-mixed-style-authority
|
|
3
|
+
* Flags components that mix local semantic color utilities (bg-surface-*, text-content-*,
|
|
4
|
+
* border-edge-*, etc.) with data-variant/data-slot hooks that the theme CSS also targets.
|
|
5
|
+
*
|
|
6
|
+
* When theme CSS targets [data-variant="X"], the component should not also hardcode
|
|
7
|
+
* semantic color utilities — that creates two competing sources of truth for color.
|
|
8
|
+
*
|
|
9
|
+
* Uses generated contract data by default. Rule options may still override the
|
|
10
|
+
* theme-owned variants list for targeted tests or local experimentation.
|
|
11
|
+
*/
|
|
12
|
+
import { components, themeVariants } from '../contract.mjs';
|
|
13
|
+
import { getClassNameStrings, getStaticStringValue } from '../utils.mjs';
|
|
14
|
+
|
|
15
|
+
// Ported from scripts/audit-style-authority.mjs
|
|
16
|
+
const SEMANTIC_COLOR_UTILITY_RE = /\b(?:!|[a-z-]+:)*?(?:bg|text|border)-(?:surface|content|action|edge|status)-[a-z0-9-]+\b/;
|
|
17
|
+
|
|
18
|
+
export function deriveThemeOwnedVariants(
|
|
19
|
+
contractComponents = components,
|
|
20
|
+
contractThemeVariants = themeVariants,
|
|
21
|
+
overrideVariants,
|
|
22
|
+
) {
|
|
23
|
+
const defaultThemeOwnedVariants = new Set([
|
|
24
|
+
...(contractThemeVariants ?? []),
|
|
25
|
+
...Object.values(contractComponents ?? {}).flatMap((component) =>
|
|
26
|
+
component.styleOwnership?.flatMap((owner) => owner.themeOwned) ?? [],
|
|
27
|
+
),
|
|
28
|
+
]);
|
|
29
|
+
|
|
30
|
+
return new Set(overrideVariants ?? [...defaultThemeOwnedVariants]);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const rule = {
|
|
34
|
+
meta: {
|
|
35
|
+
type: 'suggestion',
|
|
36
|
+
docs: {
|
|
37
|
+
description: 'Ban mixing local semantic color utilities with theme-targeted data-variant hooks',
|
|
38
|
+
},
|
|
39
|
+
messages: {
|
|
40
|
+
mixedAuthority:
|
|
41
|
+
'Mixed style authority: semantic color utilities are used alongside data-variant="{{variant}}" which is already styled by theme CSS. Move color to the theme layer or remove the variant hook.',
|
|
42
|
+
},
|
|
43
|
+
schema: [
|
|
44
|
+
{
|
|
45
|
+
type: 'object',
|
|
46
|
+
properties: {
|
|
47
|
+
themeVariants: {
|
|
48
|
+
type: 'array',
|
|
49
|
+
items: { type: 'string' },
|
|
50
|
+
description: 'Variant values targeted by theme CSS selectors',
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
additionalProperties: false,
|
|
54
|
+
},
|
|
55
|
+
],
|
|
56
|
+
},
|
|
57
|
+
|
|
58
|
+
create(context) {
|
|
59
|
+
const options = context.options[0] || {};
|
|
60
|
+
const themeOwnedVariants = deriveThemeOwnedVariants(
|
|
61
|
+
components,
|
|
62
|
+
themeVariants,
|
|
63
|
+
options.themeVariants,
|
|
64
|
+
);
|
|
65
|
+
if (themeOwnedVariants.size === 0) return {};
|
|
66
|
+
|
|
67
|
+
// Track identifiers that resolve to cva itself or to simple cva wrappers.
|
|
68
|
+
const cvaFactoryCandidates = new Map();
|
|
69
|
+
const cvaIdentifiersWithColors = new Set();
|
|
70
|
+
const variantBuilderCandidates = [];
|
|
71
|
+
|
|
72
|
+
// Track import aliases like `import { cva as makeVariants } from '...'`
|
|
73
|
+
const cvaImportAliases = new Set();
|
|
74
|
+
|
|
75
|
+
// Track per-file: variant usage nodes and semantic color presence
|
|
76
|
+
const variantNodes = new Map(); // variant -> Set of JSXOpeningElement nodes
|
|
77
|
+
const elementsWithSemanticColors = new Set(); // JSXOpeningElement nodes
|
|
78
|
+
const classNameValueNodes = new Map(); // JSXOpeningElement -> JSXAttribute value node
|
|
79
|
+
|
|
80
|
+
return {
|
|
81
|
+
ImportDeclaration(node) {
|
|
82
|
+
const source = node.source && node.source.value;
|
|
83
|
+
if (source !== 'class-variance-authority' && source !== 'cva') return;
|
|
84
|
+
|
|
85
|
+
for (const spec of node.specifiers) {
|
|
86
|
+
if (
|
|
87
|
+
spec.type === 'ImportSpecifier' &&
|
|
88
|
+
spec.imported.name === 'cva' &&
|
|
89
|
+
spec.local.name !== 'cva'
|
|
90
|
+
) {
|
|
91
|
+
cvaImportAliases.add(spec.local.name);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
|
|
96
|
+
VariableDeclarator(node) {
|
|
97
|
+
if (node.id.type !== 'Identifier' || !node.init) return;
|
|
98
|
+
|
|
99
|
+
cvaFactoryCandidates.set(node.id.name, node.init);
|
|
100
|
+
|
|
101
|
+
if (node.init.type === 'CallExpression') {
|
|
102
|
+
variantBuilderCandidates.push({
|
|
103
|
+
init: node.init,
|
|
104
|
+
name: node.id.name,
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
|
|
109
|
+
FunctionDeclaration(node) {
|
|
110
|
+
if (!node.id?.name) return;
|
|
111
|
+
cvaFactoryCandidates.set(node.id.name, node);
|
|
112
|
+
},
|
|
113
|
+
|
|
114
|
+
JSXAttribute(node) {
|
|
115
|
+
const openingEl = node.parent;
|
|
116
|
+
if (!openingEl || openingEl.type !== 'JSXOpeningElement') return;
|
|
117
|
+
|
|
118
|
+
// Track data-variant attributes
|
|
119
|
+
if (node.name.type === 'JSXIdentifier' && node.name.name === 'data-variant') {
|
|
120
|
+
const variant = getStaticStringValue(node.value);
|
|
121
|
+
if (variant && themeOwnedVariants.has(variant)) {
|
|
122
|
+
if (!variantNodes.has(variant)) variantNodes.set(variant, new Set());
|
|
123
|
+
variantNodes.get(variant).add(openingEl);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
// Track className with semantic color utilities (direct or via cva identifier)
|
|
128
|
+
if (node.name.name === 'className' && node.value) {
|
|
129
|
+
classNameValueNodes.set(openingEl, node.value);
|
|
130
|
+
|
|
131
|
+
// Direct: className="bg-page ..."
|
|
132
|
+
const strings = getClassNameStrings(node.value);
|
|
133
|
+
for (const { value } of strings) {
|
|
134
|
+
if (SEMANTIC_COLOR_UTILITY_RE.test(value)) {
|
|
135
|
+
elementsWithSemanticColors.add(openingEl);
|
|
136
|
+
break;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
// Indirect: className={cvaResult()} or className={cvaResult({ ... })}
|
|
141
|
+
if (!elementsWithSemanticColors.has(openingEl)) {
|
|
142
|
+
if (referencesCvaWithColors(node.value, cvaIdentifiersWithColors)) {
|
|
143
|
+
elementsWithSemanticColors.add(openingEl);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
|
|
149
|
+
'Program:exit'() {
|
|
150
|
+
const cvaFactories = resolveCvaFactoryIdentifiers(cvaFactoryCandidates, cvaImportAliases);
|
|
151
|
+
|
|
152
|
+
for (const candidate of variantBuilderCandidates) {
|
|
153
|
+
if (!isKnownCvaFactoryCall(candidate.init, cvaFactories)) continue;
|
|
154
|
+
|
|
155
|
+
for (const arg of candidate.init.arguments) {
|
|
156
|
+
const strings = getClassNameStrings(arg);
|
|
157
|
+
for (const { value } of strings) {
|
|
158
|
+
if (SEMANTIC_COLOR_UTILITY_RE.test(value)) {
|
|
159
|
+
cvaIdentifiersWithColors.add(candidate.name);
|
|
160
|
+
break;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
if (cvaIdentifiersWithColors.has(candidate.name)) break;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
for (const [openingEl, valueNode] of classNameValueNodes.entries()) {
|
|
169
|
+
if (elementsWithSemanticColors.has(openingEl)) continue;
|
|
170
|
+
if (referencesCvaWithColors(valueNode, cvaIdentifiersWithColors)) {
|
|
171
|
+
elementsWithSemanticColors.add(openingEl);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
const reported = new Set();
|
|
176
|
+
|
|
177
|
+
for (const [variant, elements] of variantNodes.entries()) {
|
|
178
|
+
for (const el of elements) {
|
|
179
|
+
if (!elementsWithSemanticColors.has(el)) continue;
|
|
180
|
+
const key = `${variant}:${el.loc.start.line}`;
|
|
181
|
+
if (reported.has(key)) continue;
|
|
182
|
+
reported.add(key);
|
|
183
|
+
context.report({
|
|
184
|
+
node: el,
|
|
185
|
+
messageId: 'mixedAuthority',
|
|
186
|
+
data: { variant },
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
},
|
|
191
|
+
};
|
|
192
|
+
},
|
|
193
|
+
};
|
|
194
|
+
|
|
195
|
+
function resolveCvaFactoryIdentifiers(candidates, importAliases) {
|
|
196
|
+
const knownFactories = new Set(['cva']);
|
|
197
|
+
if (importAliases) {
|
|
198
|
+
for (const alias of importAliases) {
|
|
199
|
+
knownFactories.add(alias);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
let changed = true;
|
|
203
|
+
|
|
204
|
+
while (changed) {
|
|
205
|
+
changed = false;
|
|
206
|
+
for (const [name, candidate] of candidates.entries()) {
|
|
207
|
+
if (knownFactories.has(name)) continue;
|
|
208
|
+
if (isCvaFactoryCandidate(candidate, knownFactories)) {
|
|
209
|
+
knownFactories.add(name);
|
|
210
|
+
changed = true;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
return knownFactories;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
function isCvaFactoryCandidate(candidate, knownFactories) {
|
|
219
|
+
if (!candidate) return false;
|
|
220
|
+
|
|
221
|
+
if (candidate.type === 'Identifier') {
|
|
222
|
+
return knownFactories.has(candidate.name);
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
if (
|
|
226
|
+
candidate.type === 'ArrowFunctionExpression' ||
|
|
227
|
+
candidate.type === 'FunctionExpression' ||
|
|
228
|
+
candidate.type === 'FunctionDeclaration'
|
|
229
|
+
) {
|
|
230
|
+
const returnedExpr = getReturnedExpression(candidate);
|
|
231
|
+
return returnedExpr ? isKnownCvaFactoryCall(returnedExpr, knownFactories) : false;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
return false;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
function getReturnedExpression(fnNode) {
|
|
238
|
+
if (fnNode.body.type !== 'BlockStatement') {
|
|
239
|
+
return fnNode.body;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
for (const statement of fnNode.body.body) {
|
|
243
|
+
if (statement.type === 'ReturnStatement') {
|
|
244
|
+
return statement.argument;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
return null;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
function isKnownCvaFactoryCall(node, knownFactories) {
|
|
252
|
+
if (node?.type !== 'CallExpression') return false;
|
|
253
|
+
return node.callee.type === 'Identifier' && knownFactories.has(node.callee.name);
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
/**
|
|
257
|
+
* Check if a className value node references a cva-bound identifier that
|
|
258
|
+
* contains semantic colors. Handles patterns like:
|
|
259
|
+
* className={triggerVariants()}
|
|
260
|
+
* className={faceVariants({ variant: "secondary" })}
|
|
261
|
+
*/
|
|
262
|
+
function referencesCvaWithColors(valueNode, cvaIdentifiers) {
|
|
263
|
+
if (!valueNode) return false;
|
|
264
|
+
if (valueNode.type === 'JSXExpressionContainer') {
|
|
265
|
+
return referencesCvaWithColors(valueNode.expression, cvaIdentifiers);
|
|
266
|
+
}
|
|
267
|
+
if (valueNode.type === 'CallExpression') {
|
|
268
|
+
const callee = valueNode.callee;
|
|
269
|
+
if (callee.type === 'Identifier' && cvaIdentifiers.has(callee.name)) {
|
|
270
|
+
return true;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
for (const arg of valueNode.arguments) {
|
|
274
|
+
if (referencesCvaWithColors(arg, cvaIdentifiers)) {
|
|
275
|
+
return true;
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
if (valueNode.type === 'LogicalExpression') {
|
|
280
|
+
return (
|
|
281
|
+
referencesCvaWithColors(valueNode.left, cvaIdentifiers) ||
|
|
282
|
+
referencesCvaWithColors(valueNode.right, cvaIdentifiers)
|
|
283
|
+
);
|
|
284
|
+
}
|
|
285
|
+
if (valueNode.type === 'ConditionalExpression') {
|
|
286
|
+
return (
|
|
287
|
+
referencesCvaWithColors(valueNode.consequent, cvaIdentifiers) ||
|
|
288
|
+
referencesCvaWithColors(valueNode.alternate, cvaIdentifiers)
|
|
289
|
+
);
|
|
290
|
+
}
|
|
291
|
+
if (valueNode.type === 'ArrayExpression') {
|
|
292
|
+
return valueNode.elements.some(element =>
|
|
293
|
+
element ? referencesCvaWithColors(element, cvaIdentifiers) : false
|
|
294
|
+
);
|
|
295
|
+
}
|
|
296
|
+
if (valueNode.type === 'SequenceExpression') {
|
|
297
|
+
return valueNode.expressions.some(expression =>
|
|
298
|
+
referencesCvaWithColors(expression, cvaIdentifiers)
|
|
299
|
+
);
|
|
300
|
+
}
|
|
301
|
+
return false;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
export default rule;
|