@particle-academy/react-fancy 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +131 -0
- package/dist/index.cjs +2738 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +393 -0
- package/dist/index.d.ts +393 -0
- package/dist/index.js +2713 -0
- package/dist/index.js.map +1 -0
- package/dist/styles.css +37 -0
- package/dist/styles.css.map +1 -0
- package/dist/styles.d.cts +2 -0
- package/dist/styles.d.ts +2 -0
- package/package.json +64 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/cn.ts","../src/data/emoji-data.ts","../src/data/emoji-utils.ts","../src/components/Action/Action.tsx","../src/components/inputs/inputs.utils.ts","../src/components/inputs/Field/Field.tsx","../src/components/inputs/Input/Input.tsx","../src/components/inputs/Textarea/Textarea.tsx","../src/components/inputs/Select/Select.tsx","../src/hooks/use-controllable-state.ts","../src/components/inputs/Checkbox/Checkbox.tsx","../src/components/inputs/CheckboxGroup/CheckboxGroup.tsx","../src/components/inputs/RadioGroup/RadioGroup.tsx","../src/components/inputs/Switch/Switch.tsx","../src/components/inputs/Slider/Slider.tsx","../src/components/inputs/DatePicker/DatePicker.tsx","../src/components/Carousel/Carousel.context.ts","../src/components/Carousel/CarouselPanels.tsx","../src/components/Carousel/CarouselSlide.tsx","../src/components/Carousel/CarouselControls.tsx","../src/components/Carousel/CarouselSteps.tsx","../src/components/Carousel/Carousel.tsx","../src/components/ColorPicker/ColorPicker.tsx","../src/components/Emoji/Emoji.tsx","../src/components/EmojiSelect/EmojiSelect.tsx","../src/components/Table/Table.context.ts","../src/components/Table/TableHead.tsx","../src/components/Table/TableBody.tsx","../src/components/Table/TableRow.tsx","../src/components/Table/TableCell.tsx","../src/components/Table/TableColumn.tsx","../src/components/Table/TablePagination.tsx","../src/components/Table/TableSearch.tsx","../src/components/Table/TableTray.tsx","../src/components/Table/Table.tsx"],"names":["twMerge","clsx","forwardRef","jsx","jsxs","Fragment","useId","useRef","useEffect","useState","useCallback","createContext","useContext","Children","useMemo"],"mappings":"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","file":"index.cjs","sourcesContent":["import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]): string {\n return twMerge(clsx(inputs));\n}\n","/**\n * Emoji data ported from FancyFlux\\EmojiData (PHP).\n * Contains 8 categories with all emojis preserved.\n */\n\nexport type EmojiEntry = { char: string; name: string };\n\nexport type EmojiCategory = { icon: string; label: string; emojis: EmojiEntry[] };\n\nconst CATEGORY_DATA = [\n {\n category: \"smileys\",\n icon: \"\\u{1F600}\",\n label: \"Smileys\",\n emojis: [\n { char: \"\\u{1F600}\", name: \"grinning face\" },\n { char: \"\\u{1F603}\", name: \"grinning face with big eyes\" },\n { char: \"\\u{1F604}\", name: \"grinning face with smiling eyes\" },\n { char: \"\\u{1F601}\", name: \"beaming face with smiling eyes\" },\n { char: \"\\u{1F606}\", name: \"grinning squinting face\" },\n { char: \"\\u{1F605}\", name: \"grinning face with sweat\" },\n { char: \"\\u{1F923}\", name: \"rolling on the floor laughing\" },\n { char: \"\\u{1F602}\", name: \"face with tears of joy\" },\n { char: \"\\u{1F642}\", name: \"slightly smiling face\" },\n { char: \"\\u{1F643}\", name: \"upside-down face\" },\n { char: \"\\u{1F609}\", name: \"winking face\" },\n { char: \"\\u{1F60A}\", name: \"smiling face with smiling eyes\" },\n { char: \"\\u{1F607}\", name: \"smiling face with halo\" },\n { char: \"\\u{1F970}\", name: \"smiling face with hearts\" },\n { char: \"\\u{1F60D}\", name: \"smiling face with heart-eyes\" },\n { char: \"\\u{1F929}\", name: \"star-struck\" },\n { char: \"\\u{1F618}\", name: \"face blowing a kiss\" },\n { char: \"\\u{1F617}\", name: \"kissing face\" },\n { char: \"\\u{1F61A}\", name: \"kissing face with closed eyes\" },\n { char: \"\\u{1F619}\", name: \"kissing face with smiling eyes\" },\n { char: \"\\u{1F972}\", name: \"smiling face with tear\" },\n { char: \"\\u{1F60B}\", name: \"face savoring food\" },\n { char: \"\\u{1F61B}\", name: \"face with tongue\" },\n { char: \"\\u{1F61C}\", name: \"winking face with tongue\" },\n { char: \"\\u{1F92A}\", name: \"zany face\" },\n { char: \"\\u{1F61D}\", name: \"squinting face with tongue\" },\n { char: \"\\u{1F911}\", name: \"money-mouth face\" },\n { char: \"\\u{1F917}\", name: \"hugging face\" },\n { char: \"\\u{1F92D}\", name: \"face with hand over mouth\" },\n { char: \"\\u{1F92B}\", name: \"shushing face\" },\n { char: \"\\u{1F914}\", name: \"thinking face\" },\n { char: \"\\u{1F910}\", name: \"zipper-mouth face\" },\n { char: \"\\u{1F928}\", name: \"face with raised eyebrow\" },\n { char: \"\\u{1F610}\", name: \"neutral face\" },\n { char: \"\\u{1F611}\", name: \"expressionless face\" },\n { char: \"\\u{1F636}\", name: \"face without mouth\" },\n { char: \"\\u{1F60F}\", name: \"smirking face\" },\n { char: \"\\u{1F612}\", name: \"unamused face\" },\n { char: \"\\u{1F644}\", name: \"face with rolling eyes\" },\n { char: \"\\u{1F62C}\", name: \"grimacing face\" },\n { char: \"\\u{1F925}\", name: \"lying face\" },\n { char: \"\\u{1F60C}\", name: \"relieved face\" },\n { char: \"\\u{1F614}\", name: \"pensive face\" },\n { char: \"\\u{1F62A}\", name: \"sleepy face\" },\n { char: \"\\u{1F924}\", name: \"drooling face\" },\n { char: \"\\u{1F634}\", name: \"sleeping face\" },\n { char: \"\\u{1F637}\", name: \"face with medical mask\" },\n { char: \"\\u{1F912}\", name: \"face with thermometer\" },\n { char: \"\\u{1F915}\", name: \"face with head-bandage\" },\n { char: \"\\u{1F922}\", name: \"nauseated face\" },\n { char: \"\\u{1F92E}\", name: \"face vomiting\" },\n { char: \"\\u{1F927}\", name: \"sneezing face\" },\n { char: \"\\u{1F975}\", name: \"hot face\" },\n { char: \"\\u{1F976}\", name: \"cold face\" },\n { char: \"\\u{1F974}\", name: \"woozy face\" },\n { char: \"\\u{1F635}\", name: \"dizzy face\" },\n { char: \"\\u{1F92F}\", name: \"exploding head\" },\n { char: \"\\u{1F920}\", name: \"cowboy hat face\" },\n { char: \"\\u{1F973}\", name: \"partying face\" },\n { char: \"\\u{1F978}\", name: \"disguised face\" },\n { char: \"\\u{1F60E}\", name: \"smiling face with sunglasses\" },\n { char: \"\\u{1F913}\", name: \"nerd face\" },\n { char: \"\\u{1F9D0}\", name: \"face with monocle\" },\n { char: \"\\u{1F615}\", name: \"confused face\" },\n { char: \"\\u{1F61F}\", name: \"worried face\" },\n { char: \"\\u{1F641}\", name: \"slightly frowning face\" },\n { char: \"\\u{1F62E}\", name: \"face with open mouth\" },\n { char: \"\\u{1F62F}\", name: \"hushed face\" },\n { char: \"\\u{1F632}\", name: \"astonished face\" },\n { char: \"\\u{1F633}\", name: \"flushed face\" },\n { char: \"\\u{1F97A}\", name: \"pleading face\" },\n { char: \"\\u{1F626}\", name: \"frowning face with open mouth\" },\n { char: \"\\u{1F627}\", name: \"anguished face\" },\n { char: \"\\u{1F628}\", name: \"fearful face\" },\n { char: \"\\u{1F630}\", name: \"anxious face with sweat\" },\n { char: \"\\u{1F625}\", name: \"sad but relieved face\" },\n { char: \"\\u{1F622}\", name: \"crying face\" },\n { char: \"\\u{1F62D}\", name: \"loudly crying face\" },\n { char: \"\\u{1F631}\", name: \"face screaming in fear\" },\n { char: \"\\u{1F616}\", name: \"confounded face\" },\n { char: \"\\u{1F623}\", name: \"persevering face\" },\n { char: \"\\u{1F61E}\", name: \"disappointed face\" },\n { char: \"\\u{1F613}\", name: \"downcast face with sweat\" },\n { char: \"\\u{1F629}\", name: \"weary face\" },\n { char: \"\\u{1F62B}\", name: \"tired face\" },\n { char: \"\\u{1F971}\", name: \"yawning face\" },\n { char: \"\\u{1F624}\", name: \"face with steam from nose\" },\n { char: \"\\u{1F621}\", name: \"pouting face\" },\n { char: \"\\u{1F620}\", name: \"angry face\" },\n { char: \"\\u{1F92C}\", name: \"face with symbols on mouth\" },\n { char: \"\\u{1F608}\", name: \"smiling face with horns\" },\n { char: \"\\u{1F47F}\", name: \"angry face with horns\" },\n { char: \"\\u{1F480}\", name: \"skull\" },\n { char: \"\\u{1F4A9}\", name: \"pile of poo\" },\n { char: \"\\u{1F921}\", name: \"clown face\" },\n { char: \"\\u{1F479}\", name: \"ogre\" },\n { char: \"\\u{1F47A}\", name: \"goblin\" },\n { char: \"\\u{1F47B}\", name: \"ghost\" },\n { char: \"\\u{1F47D}\", name: \"alien\" },\n { char: \"\\u{1F47E}\", name: \"alien monster\" },\n { char: \"\\u{1F916}\", name: \"robot\" },\n ],\n },\n {\n category: \"people\",\n icon: \"\\u{1F44B}\",\n label: \"People\",\n emojis: [\n { char: \"\\u{1F44B}\", name: \"waving hand\" },\n { char: \"\\u{1F91A}\", name: \"raised back of hand\" },\n { char: \"\\u{1F590}\", name: \"hand with fingers splayed\" },\n { char: \"\\u{270B}\", name: \"raised hand\" },\n { char: \"\\u{1F596}\", name: \"vulcan salute\" },\n { char: \"\\u{1F44C}\", name: \"ok hand\" },\n { char: \"\\u{1F90C}\", name: \"pinched fingers\" },\n { char: \"\\u{1F90F}\", name: \"pinching hand\" },\n { char: \"\\u{270C}\\u{FE0F}\", name: \"victory hand\" },\n { char: \"\\u{1F91E}\", name: \"crossed fingers\" },\n { char: \"\\u{1F91F}\", name: \"love-you gesture\" },\n { char: \"\\u{1F918}\", name: \"sign of the horns\" },\n { char: \"\\u{1F919}\", name: \"call me hand\" },\n { char: \"\\u{1F448}\", name: \"backhand index pointing left\" },\n { char: \"\\u{1F449}\", name: \"backhand index pointing right\" },\n { char: \"\\u{1F446}\", name: \"backhand index pointing up\" },\n { char: \"\\u{1F447}\", name: \"backhand index pointing down\" },\n { char: \"\\u{261D}\\u{FE0F}\", name: \"index pointing up\" },\n { char: \"\\u{1F44D}\", name: \"thumbs up\" },\n { char: \"\\u{1F44E}\", name: \"thumbs down\" },\n { char: \"\\u{270A}\", name: \"raised fist\" },\n { char: \"\\u{1F44A}\", name: \"oncoming fist\" },\n { char: \"\\u{1F91B}\", name: \"left-facing fist\" },\n { char: \"\\u{1F91C}\", name: \"right-facing fist\" },\n { char: \"\\u{1F44F}\", name: \"clapping hands\" },\n { char: \"\\u{1F64C}\", name: \"raising hands\" },\n { char: \"\\u{1F450}\", name: \"open hands\" },\n { char: \"\\u{1F932}\", name: \"palms up together\" },\n { char: \"\\u{1F91D}\", name: \"handshake\" },\n { char: \"\\u{1F64F}\", name: \"folded hands\" },\n { char: \"\\u{270D}\\u{FE0F}\", name: \"writing hand\" },\n { char: \"\\u{1F485}\", name: \"nail polish\" },\n { char: \"\\u{1F933}\", name: \"selfie\" },\n { char: \"\\u{1F4AA}\", name: \"flexed biceps\" },\n { char: \"\\u{1F476}\", name: \"baby\" },\n { char: \"\\u{1F467}\", name: \"girl\" },\n { char: \"\\u{1F9D2}\", name: \"child\" },\n { char: \"\\u{1F466}\", name: \"boy\" },\n { char: \"\\u{1F469}\", name: \"woman\" },\n { char: \"\\u{1F9D1}\", name: \"person\" },\n { char: \"\\u{1F468}\", name: \"man\" },\n { char: \"\\u{1F475}\", name: \"old woman\" },\n { char: \"\\u{1F9D3}\", name: \"older person\" },\n { char: \"\\u{1F474}\", name: \"old man\" },\n { char: \"\\u{1F46E}\", name: \"police officer\" },\n { char: \"\\u{1F477}\", name: \"construction worker\" },\n { char: \"\\u{1F482}\", name: \"guard\" },\n { char: \"\\u{1F575}\\u{FE0F}\", name: \"detective\" },\n { char: \"\\u{1F469}\\u{200D}\\u{2695}\\u{FE0F}\", name: \"woman health worker\" },\n { char: \"\\u{1F468}\\u{200D}\\u{2695}\\u{FE0F}\", name: \"man health worker\" },\n { char: \"\\u{1F469}\\u{200D}\\u{1F393}\", name: \"woman student\" },\n { char: \"\\u{1F468}\\u{200D}\\u{1F393}\", name: \"man student\" },\n { char: \"\\u{1F469}\\u{200D}\\u{1F4BB}\", name: \"woman technologist\" },\n { char: \"\\u{1F468}\\u{200D}\\u{1F4BB}\", name: \"man technologist\" },\n { char: \"\\u{1F9D9}\", name: \"mage\" },\n { char: \"\\u{1F9DA}\", name: \"fairy\" },\n { char: \"\\u{1F9DB}\", name: \"vampire\" },\n { char: \"\\u{1F9DC}\", name: \"merperson\" },\n { char: \"\\u{1F9DD}\", name: \"elf\" },\n { char: \"\\u{1F9DE}\", name: \"genie\" },\n { char: \"\\u{1F9DF}\", name: \"zombie\" },\n { char: \"\\u{1F486}\", name: \"person getting massage\" },\n { char: \"\\u{1F487}\", name: \"person getting haircut\" },\n { char: \"\\u{1F6B6}\", name: \"person walking\" },\n { char: \"\\u{1F9CD}\", name: \"person standing\" },\n { char: \"\\u{1F9CE}\", name: \"person kneeling\" },\n { char: \"\\u{1F3C3}\", name: \"person running\" },\n { char: \"\\u{1F483}\", name: \"woman dancing\" },\n { char: \"\\u{1F57A}\", name: \"man dancing\" },\n { char: \"\\u{1F46B}\", name: \"woman and man holding hands\" },\n { char: \"\\u{1F46D}\", name: \"women holding hands\" },\n { char: \"\\u{1F46C}\", name: \"men holding hands\" },\n { char: \"\\u{1F48F}\", name: \"kiss\" },\n { char: \"\\u{1F491}\", name: \"couple with heart\" },\n { char: \"\\u{1F46A}\", name: \"family\" },\n ],\n },\n {\n category: \"animals\",\n icon: \"\\u{1F431}\",\n label: \"Animals\",\n emojis: [\n { char: \"\\u{1F436}\", name: \"dog face\" },\n { char: \"\\u{1F431}\", name: \"cat face\" },\n { char: \"\\u{1F42D}\", name: \"mouse face\" },\n { char: \"\\u{1F439}\", name: \"hamster\" },\n { char: \"\\u{1F430}\", name: \"rabbit face\" },\n { char: \"\\u{1F98A}\", name: \"fox\" },\n { char: \"\\u{1F43B}\", name: \"bear\" },\n { char: \"\\u{1F43C}\", name: \"panda\" },\n { char: \"\\u{1F428}\", name: \"koala\" },\n { char: \"\\u{1F42F}\", name: \"tiger face\" },\n { char: \"\\u{1F981}\", name: \"lion\" },\n { char: \"\\u{1F42E}\", name: \"cow face\" },\n { char: \"\\u{1F437}\", name: \"pig face\" },\n { char: \"\\u{1F438}\", name: \"frog\" },\n { char: \"\\u{1F435}\", name: \"monkey face\" },\n { char: \"\\u{1F648}\", name: \"see-no-evil monkey\" },\n { char: \"\\u{1F649}\", name: \"hear-no-evil monkey\" },\n { char: \"\\u{1F64A}\", name: \"speak-no-evil monkey\" },\n { char: \"\\u{1F412}\", name: \"monkey\" },\n { char: \"\\u{1F414}\", name: \"chicken\" },\n { char: \"\\u{1F427}\", name: \"penguin\" },\n { char: \"\\u{1F426}\", name: \"bird\" },\n { char: \"\\u{1F424}\", name: \"baby chick\" },\n { char: \"\\u{1F986}\", name: \"duck\" },\n { char: \"\\u{1F985}\", name: \"eagle\" },\n { char: \"\\u{1F989}\", name: \"owl\" },\n { char: \"\\u{1F987}\", name: \"bat\" },\n { char: \"\\u{1F43A}\", name: \"wolf\" },\n { char: \"\\u{1F417}\", name: \"boar\" },\n { char: \"\\u{1F434}\", name: \"horse face\" },\n { char: \"\\u{1F984}\", name: \"unicorn\" },\n { char: \"\\u{1F41D}\", name: \"honeybee\" },\n { char: \"\\u{1F41B}\", name: \"bug\" },\n { char: \"\\u{1F98B}\", name: \"butterfly\" },\n { char: \"\\u{1F40C}\", name: \"snail\" },\n { char: \"\\u{1F41E}\", name: \"lady beetle\" },\n { char: \"\\u{1F41C}\", name: \"ant\" },\n { char: \"\\u{1F99F}\", name: \"mosquito\" },\n { char: \"\\u{1F422}\", name: \"turtle\" },\n { char: \"\\u{1F40D}\", name: \"snake\" },\n { char: \"\\u{1F98E}\", name: \"lizard\" },\n { char: \"\\u{1F419}\", name: \"octopus\" },\n { char: \"\\u{1F991}\", name: \"squid\" },\n { char: \"\\u{1F990}\", name: \"shrimp\" },\n { char: \"\\u{1F980}\", name: \"crab\" },\n { char: \"\\u{1F421}\", name: \"blowfish\" },\n { char: \"\\u{1F420}\", name: \"tropical fish\" },\n { char: \"\\u{1F41F}\", name: \"fish\" },\n { char: \"\\u{1F42C}\", name: \"dolphin\" },\n { char: \"\\u{1F433}\", name: \"spouting whale\" },\n { char: \"\\u{1F40B}\", name: \"whale\" },\n { char: \"\\u{1F988}\", name: \"shark\" },\n { char: \"\\u{1F40A}\", name: \"crocodile\" },\n { char: \"\\u{1F405}\", name: \"tiger\" },\n { char: \"\\u{1F406}\", name: \"leopard\" },\n { char: \"\\u{1F993}\", name: \"zebra\" },\n { char: \"\\u{1F98D}\", name: \"gorilla\" },\n { char: \"\\u{1F9A7}\", name: \"orangutan\" },\n { char: \"\\u{1F418}\", name: \"elephant\" },\n { char: \"\\u{1F99B}\", name: \"hippopotamus\" },\n { char: \"\\u{1F98F}\", name: \"rhinoceros\" },\n { char: \"\\u{1F42A}\", name: \"camel\" },\n { char: \"\\u{1F42B}\", name: \"two-hump camel\" },\n { char: \"\\u{1F992}\", name: \"giraffe\" },\n { char: \"\\u{1F998}\", name: \"kangaroo\" },\n { char: \"\\u{1F403}\", name: \"water buffalo\" },\n { char: \"\\u{1F402}\", name: \"ox\" },\n { char: \"\\u{1F404}\", name: \"cow\" },\n { char: \"\\u{1F40E}\", name: \"horse\" },\n { char: \"\\u{1F416}\", name: \"pig\" },\n { char: \"\\u{1F40F}\", name: \"ram\" },\n { char: \"\\u{1F411}\", name: \"ewe\" },\n { char: \"\\u{1F999}\", name: \"llama\" },\n { char: \"\\u{1F410}\", name: \"goat\" },\n { char: \"\\u{1F98C}\", name: \"deer\" },\n { char: \"\\u{1F415}\", name: \"dog\" },\n { char: \"\\u{1F429}\", name: \"poodle\" },\n { char: \"\\u{1F9AE}\", name: \"guide dog\" },\n { char: \"\\u{1F408}\", name: \"cat\" },\n { char: \"\\u{1F413}\", name: \"rooster\" },\n { char: \"\\u{1F983}\", name: \"turkey\" },\n { char: \"\\u{1F99A}\", name: \"peacock\" },\n { char: \"\\u{1F99C}\", name: \"parrot\" },\n { char: \"\\u{1F9A2}\", name: \"swan\" },\n { char: \"\\u{1F9A9}\", name: \"flamingo\" },\n { char: \"\\u{1F407}\", name: \"rabbit\" },\n { char: \"\\u{1F99D}\", name: \"raccoon\" },\n { char: \"\\u{1F9A8}\", name: \"skunk\" },\n { char: \"\\u{1F9A1}\", name: \"badger\" },\n { char: \"\\u{1F9AB}\", name: \"beaver\" },\n { char: \"\\u{1F9A6}\", name: \"otter\" },\n { char: \"\\u{1F9A5}\", name: \"sloth\" },\n ],\n },\n {\n category: \"food\",\n icon: \"\\u{1F354}\",\n label: \"Food\",\n emojis: [\n { char: \"\\u{1F34F}\", name: \"green apple\" },\n { char: \"\\u{1F34E}\", name: \"red apple\" },\n { char: \"\\u{1F350}\", name: \"pear\" },\n { char: \"\\u{1F34A}\", name: \"tangerine\" },\n { char: \"\\u{1F34B}\", name: \"lemon\" },\n { char: \"\\u{1F34C}\", name: \"banana\" },\n { char: \"\\u{1F349}\", name: \"watermelon\" },\n { char: \"\\u{1F347}\", name: \"grapes\" },\n { char: \"\\u{1F353}\", name: \"strawberry\" },\n { char: \"\\u{1FAD0}\", name: \"blueberries\" },\n { char: \"\\u{1F348}\", name: \"melon\" },\n { char: \"\\u{1F352}\", name: \"cherries\" },\n { char: \"\\u{1F351}\", name: \"peach\" },\n { char: \"\\u{1F96D}\", name: \"mango\" },\n { char: \"\\u{1F34D}\", name: \"pineapple\" },\n { char: \"\\u{1F965}\", name: \"coconut\" },\n { char: \"\\u{1F95D}\", name: \"kiwi fruit\" },\n { char: \"\\u{1F345}\", name: \"tomato\" },\n { char: \"\\u{1F346}\", name: \"eggplant\" },\n { char: \"\\u{1F951}\", name: \"avocado\" },\n { char: \"\\u{1F966}\", name: \"broccoli\" },\n { char: \"\\u{1F96C}\", name: \"leafy green\" },\n { char: \"\\u{1F952}\", name: \"cucumber\" },\n { char: \"\\u{1F336}\\u{FE0F}\", name: \"hot pepper\" },\n { char: \"\\u{1FAD1}\", name: \"bell pepper\" },\n { char: \"\\u{1F33D}\", name: \"ear of corn\" },\n { char: \"\\u{1F955}\", name: \"carrot\" },\n { char: \"\\u{1F9C4}\", name: \"garlic\" },\n { char: \"\\u{1F9C5}\", name: \"onion\" },\n { char: \"\\u{1F954}\", name: \"potato\" },\n { char: \"\\u{1F360}\", name: \"roasted sweet potato\" },\n { char: \"\\u{1F950}\", name: \"croissant\" },\n { char: \"\\u{1F96F}\", name: \"bagel\" },\n { char: \"\\u{1F35E}\", name: \"bread\" },\n { char: \"\\u{1F956}\", name: \"baguette bread\" },\n { char: \"\\u{1F968}\", name: \"pretzel\" },\n { char: \"\\u{1F9C0}\", name: \"cheese wedge\" },\n { char: \"\\u{1F95A}\", name: \"egg\" },\n { char: \"\\u{1F373}\", name: \"cooking\" },\n { char: \"\\u{1F9C8}\", name: \"butter\" },\n { char: \"\\u{1F95E}\", name: \"pancakes\" },\n { char: \"\\u{1F9C7}\", name: \"waffle\" },\n { char: \"\\u{1F953}\", name: \"bacon\" },\n { char: \"\\u{1F969}\", name: \"cut of meat\" },\n { char: \"\\u{1F357}\", name: \"poultry leg\" },\n { char: \"\\u{1F356}\", name: \"meat on bone\" },\n { char: \"\\u{1F32D}\", name: \"hot dog\" },\n { char: \"\\u{1F354}\", name: \"hamburger\" },\n { char: \"\\u{1F35F}\", name: \"french fries\" },\n { char: \"\\u{1F355}\", name: \"pizza\" },\n { char: \"\\u{1F96A}\", name: \"sandwich\" },\n { char: \"\\u{1F959}\", name: \"stuffed flatbread\" },\n { char: \"\\u{1F9C6}\", name: \"falafel\" },\n { char: \"\\u{1F32E}\", name: \"taco\" },\n { char: \"\\u{1F32F}\", name: \"burrito\" },\n { char: \"\\u{1F957}\", name: \"green salad\" },\n { char: \"\\u{1F958}\", name: \"shallow pan of food\" },\n { char: \"\\u{1F35D}\", name: \"spaghetti\" },\n { char: \"\\u{1F35C}\", name: \"steaming bowl\" },\n { char: \"\\u{1F372}\", name: \"pot of food\" },\n { char: \"\\u{1F35B}\", name: \"curry rice\" },\n { char: \"\\u{1F363}\", name: \"sushi\" },\n { char: \"\\u{1F371}\", name: \"bento box\" },\n { char: \"\\u{1F95F}\", name: \"dumpling\" },\n { char: \"\\u{1F364}\", name: \"fried shrimp\" },\n { char: \"\\u{1F359}\", name: \"rice ball\" },\n { char: \"\\u{1F35A}\", name: \"cooked rice\" },\n { char: \"\\u{1F358}\", name: \"rice cracker\" },\n { char: \"\\u{1F365}\", name: \"fish cake with swirl\" },\n { char: \"\\u{1F96E}\", name: \"moon cake\" },\n { char: \"\\u{1F362}\", name: \"oden\" },\n { char: \"\\u{1F361}\", name: \"dango\" },\n { char: \"\\u{1F367}\", name: \"shaved ice\" },\n { char: \"\\u{1F368}\", name: \"ice cream\" },\n { char: \"\\u{1F366}\", name: \"soft ice cream\" },\n { char: \"\\u{1F967}\", name: \"pie\" },\n { char: \"\\u{1F9C1}\", name: \"cupcake\" },\n { char: \"\\u{1F370}\", name: \"shortcake\" },\n { char: \"\\u{1F382}\", name: \"birthday cake\" },\n { char: \"\\u{1F36E}\", name: \"custard\" },\n { char: \"\\u{1F36D}\", name: \"lollipop\" },\n { char: \"\\u{1F36C}\", name: \"candy\" },\n { char: \"\\u{1F36B}\", name: \"chocolate bar\" },\n { char: \"\\u{1F37F}\", name: \"popcorn\" },\n { char: \"\\u{1F369}\", name: \"doughnut\" },\n { char: \"\\u{1F36A}\", name: \"cookie\" },\n { char: \"\\u{1F330}\", name: \"chestnut\" },\n { char: \"\\u{1F95C}\", name: \"peanuts\" },\n { char: \"\\u{1F36F}\", name: \"honey pot\" },\n { char: \"\\u{2615}\", name: \"hot beverage\" },\n { char: \"\\u{1F375}\", name: \"teacup without handle\" },\n { char: \"\\u{1F9C3}\", name: \"beverage box\" },\n { char: \"\\u{1F964}\", name: \"cup with straw\" },\n { char: \"\\u{1F9CB}\", name: \"bubble tea\" },\n { char: \"\\u{1F376}\", name: \"sake\" },\n { char: \"\\u{1F37A}\", name: \"beer mug\" },\n { char: \"\\u{1F37B}\", name: \"clinking beer mugs\" },\n { char: \"\\u{1F942}\", name: \"clinking glasses\" },\n { char: \"\\u{1F377}\", name: \"wine glass\" },\n { char: \"\\u{1F943}\", name: \"tumbler glass\" },\n { char: \"\\u{1F378}\", name: \"cocktail glass\" },\n { char: \"\\u{1F379}\", name: \"tropical drink\" },\n { char: \"\\u{1F9CA}\", name: \"ice\" },\n ],\n },\n {\n category: \"activities\",\n icon: \"\\u{26BD}\",\n label: \"Activities\",\n emojis: [\n { char: \"\\u{26BD}\", name: \"soccer ball\" },\n { char: \"\\u{1F3C0}\", name: \"basketball\" },\n { char: \"\\u{1F3C8}\", name: \"american football\" },\n { char: \"\\u{26BE}\", name: \"baseball\" },\n { char: \"\\u{1F94E}\", name: \"softball\" },\n { char: \"\\u{1F3BE}\", name: \"tennis\" },\n { char: \"\\u{1F3D0}\", name: \"volleyball\" },\n { char: \"\\u{1F3C9}\", name: \"rugby football\" },\n { char: \"\\u{1F94F}\", name: \"flying disc\" },\n { char: \"\\u{1F3B1}\", name: \"pool 8 ball\" },\n { char: \"\\u{1FA80}\", name: \"yo-yo\" },\n { char: \"\\u{1F3D3}\", name: \"ping pong\" },\n { char: \"\\u{1F3F8}\", name: \"badminton\" },\n { char: \"\\u{1F3D2}\", name: \"ice hockey\" },\n { char: \"\\u{1F3D1}\", name: \"field hockey\" },\n { char: \"\\u{1F94D}\", name: \"lacrosse\" },\n { char: \"\\u{1F3CF}\", name: \"cricket game\" },\n { char: \"\\u{1FA83}\", name: \"boomerang\" },\n { char: \"\\u{1F945}\", name: \"goal net\" },\n { char: \"\\u{26F3}\", name: \"flag in hole\" },\n { char: \"\\u{1FA81}\", name: \"kite\" },\n { char: \"\\u{1F3F9}\", name: \"bow and arrow\" },\n { char: \"\\u{1F3A3}\", name: \"fishing pole\" },\n { char: \"\\u{1F93F}\", name: \"diving mask\" },\n { char: \"\\u{1F94A}\", name: \"boxing glove\" },\n { char: \"\\u{1F94B}\", name: \"martial arts uniform\" },\n { char: \"\\u{1F3BD}\", name: \"running shirt\" },\n { char: \"\\u{1F6F9}\", name: \"skateboard\" },\n { char: \"\\u{1F6FC}\", name: \"roller skate\" },\n { char: \"\\u{1F6F7}\", name: \"sled\" },\n { char: \"\\u{26F8}\\u{FE0F}\", name: \"ice skate\" },\n { char: \"\\u{1F94C}\", name: \"curling stone\" },\n { char: \"\\u{1F3BF}\", name: \"skis\" },\n { char: \"\\u{26F7}\\u{FE0F}\", name: \"skier\" },\n { char: \"\\u{1F3C2}\", name: \"snowboarder\" },\n { char: \"\\u{1F3CB}\\u{FE0F}\", name: \"person lifting weights\" },\n { char: \"\\u{1F93C}\", name: \"people wrestling\" },\n { char: \"\\u{1F938}\", name: \"person cartwheeling\" },\n { char: \"\\u{1F93A}\", name: \"person fencing\" },\n { char: \"\\u{26F9}\\u{FE0F}\", name: \"person bouncing ball\" },\n { char: \"\\u{1F93E}\", name: \"person playing handball\" },\n { char: \"\\u{1F3CC}\\u{FE0F}\", name: \"person golfing\" },\n { char: \"\\u{1F3C7}\", name: \"horse racing\" },\n { char: \"\\u{1F9D8}\", name: \"person in lotus position\" },\n { char: \"\\u{1F3C4}\", name: \"person surfing\" },\n { char: \"\\u{1F3CA}\", name: \"person swimming\" },\n { char: \"\\u{1F93D}\", name: \"person playing water polo\" },\n { char: \"\\u{1F6A3}\", name: \"person rowing boat\" },\n { char: \"\\u{1F9D7}\", name: \"person climbing\" },\n { char: \"\\u{1F6B4}\", name: \"person biking\" },\n { char: \"\\u{1F6B5}\", name: \"person mountain biking\" },\n { char: \"\\u{1F3AA}\", name: \"circus tent\" },\n { char: \"\\u{1F3AD}\", name: \"performing arts\" },\n { char: \"\\u{1F3A8}\", name: \"artist palette\" },\n { char: \"\\u{1F3AC}\", name: \"clapper board\" },\n { char: \"\\u{1F3A4}\", name: \"microphone\" },\n { char: \"\\u{1F3A7}\", name: \"headphone\" },\n { char: \"\\u{1F3BC}\", name: \"musical score\" },\n { char: \"\\u{1F3B9}\", name: \"musical keyboard\" },\n { char: \"\\u{1F941}\", name: \"drum\" },\n { char: \"\\u{1F3B7}\", name: \"saxophone\" },\n { char: \"\\u{1F3BA}\", name: \"trumpet\" },\n { char: \"\\u{1F3B8}\", name: \"guitar\" },\n { char: \"\\u{1FA95}\", name: \"banjo\" },\n { char: \"\\u{1F3BB}\", name: \"violin\" },\n { char: \"\\u{1F3B2}\", name: \"game die\" },\n { char: \"\\u{265F}\\u{FE0F}\", name: \"chess pawn\" },\n { char: \"\\u{1F3AF}\", name: \"direct hit\" },\n { char: \"\\u{1F3B3}\", name: \"bowling\" },\n { char: \"\\u{1F3AE}\", name: \"video game\" },\n { char: \"\\u{1F3B0}\", name: \"slot machine\" },\n { char: \"\\u{1F9E9}\", name: \"puzzle piece\" },\n { char: \"\\u{1F3C6}\", name: \"trophy\" },\n { char: \"\\u{1F3C5}\", name: \"sports medal\" },\n { char: \"\\u{1F947}\", name: \"first place medal\" },\n { char: \"\\u{1F948}\", name: \"second place medal\" },\n { char: \"\\u{1F949}\", name: \"third place medal\" },\n ],\n },\n {\n category: \"travel\",\n icon: \"\\u{1F697}\",\n label: \"Travel\",\n emojis: [\n { char: \"\\u{1F697}\", name: \"automobile\" },\n { char: \"\\u{1F695}\", name: \"taxi\" },\n { char: \"\\u{1F699}\", name: \"sport utility vehicle\" },\n { char: \"\\u{1F68C}\", name: \"bus\" },\n { char: \"\\u{1F68E}\", name: \"trolleybus\" },\n { char: \"\\u{1F3CE}\\u{FE0F}\", name: \"racing car\" },\n { char: \"\\u{1F693}\", name: \"police car\" },\n { char: \"\\u{1F691}\", name: \"ambulance\" },\n { char: \"\\u{1F692}\", name: \"fire engine\" },\n { char: \"\\u{1F690}\", name: \"minibus\" },\n { char: \"\\u{1F6FB}\", name: \"pickup truck\" },\n { char: \"\\u{1F69A}\", name: \"delivery truck\" },\n { char: \"\\u{1F69B}\", name: \"articulated lorry\" },\n { char: \"\\u{1F69C}\", name: \"tractor\" },\n { char: \"\\u{1F3CD}\\u{FE0F}\", name: \"motorcycle\" },\n { char: \"\\u{1F6F5}\", name: \"motor scooter\" },\n { char: \"\\u{1F6B2}\", name: \"bicycle\" },\n { char: \"\\u{1F6F4}\", name: \"kick scooter\" },\n { char: \"\\u{1F6A8}\", name: \"police car light\" },\n { char: \"\\u{1F694}\", name: \"oncoming police car\" },\n { char: \"\\u{1F68D}\", name: \"oncoming bus\" },\n { char: \"\\u{1F698}\", name: \"oncoming automobile\" },\n { char: \"\\u{1F696}\", name: \"oncoming taxi\" },\n { char: \"\\u{1F683}\", name: \"railway car\" },\n { char: \"\\u{1F68B}\", name: \"tram car\" },\n { char: \"\\u{1F69E}\", name: \"mountain railway\" },\n { char: \"\\u{1F69D}\", name: \"monorail\" },\n { char: \"\\u{1F684}\", name: \"high-speed train\" },\n { char: \"\\u{1F685}\", name: \"bullet train\" },\n { char: \"\\u{1F688}\", name: \"light rail\" },\n { char: \"\\u{1F682}\", name: \"locomotive\" },\n { char: \"\\u{1F686}\", name: \"train\" },\n { char: \"\\u{1F687}\", name: \"metro\" },\n { char: \"\\u{1F68A}\", name: \"tram\" },\n { char: \"\\u{1F689}\", name: \"station\" },\n { char: \"\\u{2708}\\u{FE0F}\", name: \"airplane\" },\n { char: \"\\u{1F6EB}\", name: \"airplane departure\" },\n { char: \"\\u{1F6EC}\", name: \"airplane arrival\" },\n { char: \"\\u{1F6E9}\\u{FE0F}\", name: \"small airplane\" },\n { char: \"\\u{1F680}\", name: \"rocket\" },\n { char: \"\\u{1F6F8}\", name: \"flying saucer\" },\n { char: \"\\u{1F681}\", name: \"helicopter\" },\n { char: \"\\u{1F6F6}\", name: \"canoe\" },\n { char: \"\\u{26F5}\", name: \"sailboat\" },\n { char: \"\\u{1F6A4}\", name: \"speedboat\" },\n { char: \"\\u{1F6E5}\\u{FE0F}\", name: \"motor boat\" },\n { char: \"\\u{1F6F3}\\u{FE0F}\", name: \"passenger ship\" },\n { char: \"\\u{26F4}\\u{FE0F}\", name: \"ferry\" },\n { char: \"\\u{1F6A2}\", name: \"ship\" },\n { char: \"\\u{2693}\", name: \"anchor\" },\n { char: \"\\u{26FD}\", name: \"fuel pump\" },\n { char: \"\\u{1F6A7}\", name: \"construction\" },\n { char: \"\\u{1F6A6}\", name: \"vertical traffic light\" },\n { char: \"\\u{1F6A5}\", name: \"horizontal traffic light\" },\n { char: \"\\u{1F68F}\", name: \"bus stop\" },\n { char: \"\\u{1F5FA}\\u{FE0F}\", name: \"world map\" },\n { char: \"\\u{1F5FF}\", name: \"moai\" },\n { char: \"\\u{1F5FD}\", name: \"Statue of Liberty\" },\n { char: \"\\u{1F5FC}\", name: \"Tokyo tower\" },\n { char: \"\\u{1F3F0}\", name: \"castle\" },\n { char: \"\\u{1F3EF}\", name: \"Japanese castle\" },\n { char: \"\\u{1F3DF}\\u{FE0F}\", name: \"stadium\" },\n { char: \"\\u{1F3A1}\", name: \"ferris wheel\" },\n { char: \"\\u{1F3A2}\", name: \"roller coaster\" },\n { char: \"\\u{1F3A0}\", name: \"carousel horse\" },\n { char: \"\\u{26F2}\", name: \"fountain\" },\n { char: \"\\u{26F1}\\u{FE0F}\", name: \"umbrella on ground\" },\n { char: \"\\u{1F3D6}\\u{FE0F}\", name: \"beach with umbrella\" },\n { char: \"\\u{1F3DD}\\u{FE0F}\", name: \"desert island\" },\n { char: \"\\u{1F3DC}\\u{FE0F}\", name: \"desert\" },\n { char: \"\\u{1F30B}\", name: \"volcano\" },\n { char: \"\\u{26F0}\\u{FE0F}\", name: \"mountain\" },\n { char: \"\\u{1F3D4}\\u{FE0F}\", name: \"snow-capped mountain\" },\n { char: \"\\u{1F5FB}\", name: \"mount fuji\" },\n { char: \"\\u{1F3D5}\\u{FE0F}\", name: \"camping\" },\n { char: \"\\u{26FA}\", name: \"tent\" },\n { char: \"\\u{1F3E0}\", name: \"house\" },\n { char: \"\\u{1F3E1}\", name: \"house with garden\" },\n { char: \"\\u{1F3E2}\", name: \"office building\" },\n { char: \"\\u{1F3E3}\", name: \"Japanese post office\" },\n { char: \"\\u{1F3E4}\", name: \"post office\" },\n { char: \"\\u{1F3E5}\", name: \"hospital\" },\n { char: \"\\u{1F3E6}\", name: \"bank\" },\n { char: \"\\u{1F3E8}\", name: \"hotel\" },\n { char: \"\\u{1F3E9}\", name: \"love hotel\" },\n { char: \"\\u{1F3EA}\", name: \"convenience store\" },\n { char: \"\\u{1F3EB}\", name: \"school\" },\n { char: \"\\u{1F3EC}\", name: \"department store\" },\n { char: \"\\u{1F3ED}\", name: \"factory\" },\n { char: \"\\u{1F3D7}\\u{FE0F}\", name: \"building construction\" },\n { char: \"\\u{1F9F1}\", name: \"brick\" },\n { char: \"\\u{1F305}\", name: \"sunrise\" },\n { char: \"\\u{1F304}\", name: \"sunrise over mountains\" },\n { char: \"\\u{1F320}\", name: \"shooting star\" },\n { char: \"\\u{1F387}\", name: \"sparkler\" },\n { char: \"\\u{1F386}\", name: \"fireworks\" },\n { char: \"\\u{1F307}\", name: \"sunset\" },\n { char: \"\\u{1F306}\", name: \"cityscape at dusk\" },\n { char: \"\\u{1F3D9}\\u{FE0F}\", name: \"cityscape\" },\n { char: \"\\u{1F303}\", name: \"night with stars\" },\n { char: \"\\u{1F30C}\", name: \"milky way\" },\n { char: \"\\u{1F309}\", name: \"bridge at night\" },\n { char: \"\\u{1F301}\", name: \"foggy\" },\n ],\n },\n {\n category: \"symbols\",\n icon: \"\\u{2764}\\u{FE0F}\",\n label: \"Symbols\",\n emojis: [\n { char: \"\\u{2764}\\u{FE0F}\", name: \"red heart\" },\n { char: \"\\u{1F9E1}\", name: \"orange heart\" },\n { char: \"\\u{1F49B}\", name: \"yellow heart\" },\n { char: \"\\u{1F49A}\", name: \"green heart\" },\n { char: \"\\u{1F499}\", name: \"blue heart\" },\n { char: \"\\u{1F49C}\", name: \"purple heart\" },\n { char: \"\\u{1F5A4}\", name: \"black heart\" },\n { char: \"\\u{1F90D}\", name: \"white heart\" },\n { char: \"\\u{1F90E}\", name: \"brown heart\" },\n { char: \"\\u{1F494}\", name: \"broken heart\" },\n { char: \"\\u{2763}\\u{FE0F}\", name: \"heart exclamation\" },\n { char: \"\\u{1F495}\", name: \"two hearts\" },\n { char: \"\\u{1F49E}\", name: \"revolving hearts\" },\n { char: \"\\u{1F493}\", name: \"beating heart\" },\n { char: \"\\u{1F497}\", name: \"growing heart\" },\n { char: \"\\u{1F496}\", name: \"sparkling heart\" },\n { char: \"\\u{1F498}\", name: \"heart with arrow\" },\n { char: \"\\u{1F49D}\", name: \"heart with ribbon\" },\n { char: \"\\u{1F49F}\", name: \"heart decoration\" },\n { char: \"\\u{1F4B0}\", name: \"money bag\" },\n { char: \"\\u{1F4B1}\", name: \"currency exchange\" },\n { char: \"\\u{1F4B2}\", name: \"heavy dollar sign\" },\n { char: \"\\u{1F4B3}\", name: \"credit card\" },\n { char: \"\\u{1F4B4}\", name: \"yen banknote\" },\n { char: \"\\u{1F4B5}\", name: \"dollar banknote\" },\n { char: \"\\u{1F4B6}\", name: \"euro banknote\" },\n { char: \"\\u{1F4B7}\", name: \"pound banknote\" },\n { char: \"\\u{1F4B8}\", name: \"money with wings\" },\n { char: \"\\u{1F4B9}\", name: \"chart increasing with yen\" },\n { char: \"\\u{262E}\\u{FE0F}\", name: \"peace symbol\" },\n { char: \"\\u{271D}\\u{FE0F}\", name: \"latin cross\" },\n { char: \"\\u{262A}\\u{FE0F}\", name: \"star and crescent\" },\n { char: \"\\u{1F549}\\u{FE0F}\", name: \"om\" },\n { char: \"\\u{2638}\\u{FE0F}\", name: \"wheel of dharma\" },\n { char: \"\\u{2721}\\u{FE0F}\", name: \"star of david\" },\n { char: \"\\u{1F52F}\", name: \"dotted six-pointed star\" },\n { char: \"\\u{1F54E}\", name: \"menorah\" },\n { char: \"\\u{262F}\\u{FE0F}\", name: \"yin yang\" },\n { char: \"\\u{2626}\\u{FE0F}\", name: \"orthodox cross\" },\n { char: \"\\u{1F6D0}\", name: \"place of worship\" },\n { char: \"\\u{26EA}\", name: \"church\" },\n { char: \"\\u{1F54B}\", name: \"kaaba\" },\n { char: \"\\u{1F54C}\", name: \"mosque\" },\n { char: \"\\u{1F54D}\", name: \"synagogue\" },\n { char: \"\\u{1F6D5}\", name: \"hindu temple\" },\n { char: \"\\u{1F4FF}\", name: \"prayer beads\" },\n { char: \"\\u{26CE}\", name: \"ophiuchus\" },\n { char: \"\\u{2648}\", name: \"aries\" },\n { char: \"\\u{2649}\", name: \"taurus\" },\n { char: \"\\u{264A}\", name: \"gemini\" },\n { char: \"\\u{264B}\", name: \"cancer\" },\n { char: \"\\u{264C}\", name: \"leo\" },\n { char: \"\\u{264D}\", name: \"virgo\" },\n { char: \"\\u{264E}\", name: \"libra\" },\n { char: \"\\u{264F}\", name: \"scorpio\" },\n { char: \"\\u{2650}\", name: \"sagittarius\" },\n { char: \"\\u{2651}\", name: \"capricorn\" },\n { char: \"\\u{2652}\", name: \"aquarius\" },\n { char: \"\\u{2653}\", name: \"pisces\" },\n { char: \"\\u{1F51F}\", name: \"keycap ten\" },\n { char: \"\\u{1F520}\", name: \"input latin uppercase\" },\n { char: \"\\u{1F521}\", name: \"input latin lowercase\" },\n { char: \"\\u{1F522}\", name: \"input numbers\" },\n { char: \"\\u{1F523}\", name: \"input symbols\" },\n { char: \"\\u{1F524}\", name: \"input latin letters\" },\n { char: \"\\u{1F194}\", name: \"id button\" },\n { char: \"\\u{1F19A}\", name: \"vs button\" },\n { char: \"\\u{1F170}\\u{FE0F}\", name: \"A button\" },\n { char: \"\\u{1F171}\\u{FE0F}\", name: \"B button\" },\n { char: \"\\u{1F18E}\", name: \"AB button\" },\n { char: \"\\u{1F191}\", name: \"CL button\" },\n { char: \"\\u{1F17E}\\u{FE0F}\", name: \"O button\" },\n { char: \"\\u{1F198}\", name: \"SOS button\" },\n { char: \"\\u{269B}\\u{FE0F}\", name: \"atom symbol\" },\n { char: \"\\u{2622}\\u{FE0F}\", name: \"radioactive\" },\n { char: \"\\u{2623}\\u{FE0F}\", name: \"biohazard\" },\n { char: \"\\u{26A0}\\u{FE0F}\", name: \"warning\" },\n { char: \"\\u{1F51E}\", name: \"no one under eighteen\" },\n { char: \"\\u{1F4F5}\", name: \"no mobile phones\" },\n { char: \"\\u{1F6AB}\", name: \"prohibited\" },\n { char: \"\\u{26D4}\", name: \"no entry\" },\n { char: \"\\u{1F6D1}\", name: \"stop sign\" },\n { char: \"\\u{1F6B7}\", name: \"no pedestrians\" },\n { char: \"\\u{1F6AF}\", name: \"no littering\" },\n { char: \"\\u{1F6B3}\", name: \"no bicycles\" },\n { char: \"\\u{1F6B1}\", name: \"non-potable water\" },\n { char: \"\\u{1F4AF}\", name: \"hundred points\" },\n { char: \"\\u{1F4A2}\", name: \"anger symbol\" },\n { char: \"\\u{1F4A5}\", name: \"collision\" },\n { char: \"\\u{1F4A6}\", name: \"sweat droplets\" },\n { char: \"\\u{1F4A8}\", name: \"dashing away\" },\n { char: \"\\u{1F4A0}\", name: \"diamond with a dot\" },\n { char: \"\\u{1F4AE}\", name: \"white flower\" },\n { char: \"\\u{2668}\\u{FE0F}\", name: \"hot springs\" },\n { char: \"\\u{1F525}\", name: \"fire\" },\n { char: \"\\u{2728}\", name: \"sparkles\" },\n { char: \"\\u{2B50}\", name: \"star\" },\n { char: \"\\u{1F31F}\", name: \"glowing star\" },\n { char: \"\\u{2734}\\u{FE0F}\", name: \"eight-pointed star\" },\n { char: \"\\u{1F514}\", name: \"bell\" },\n { char: \"\\u{1F515}\", name: \"bell with slash\" },\n { char: \"\\u{1F3B5}\", name: \"musical note\" },\n { char: \"\\u{1F3B6}\", name: \"musical notes\" },\n { char: \"\\u{1F4F4}\", name: \"mobile phone off\" },\n { char: \"\\u{1F4F3}\", name: \"vibration mode\" },\n { char: \"\\u{2705}\", name: \"check mark button\" },\n { char: \"\\u{2611}\\u{FE0F}\", name: \"check box with check\" },\n { char: \"\\u{2714}\\u{FE0F}\", name: \"check mark\" },\n { char: \"\\u{274C}\", name: \"cross mark\" },\n { char: \"\\u{274E}\", name: \"cross mark button\" },\n { char: \"\\u{2B55}\", name: \"hollow red circle\" },\n { char: \"\\u{1F503}\", name: \"clockwise vertical arrows\" },\n { char: \"\\u{1F504}\", name: \"counterclockwise arrows button\" },\n { char: \"\\u{1F519}\", name: \"back arrow\" },\n { char: \"\\u{1F51A}\", name: \"end arrow\" },\n { char: \"\\u{1F51B}\", name: \"on arrow\" },\n { char: \"\\u{1F51C}\", name: \"soon arrow\" },\n { char: \"\\u{1F51D}\", name: \"top arrow\" },\n { char: \"\\u{2B06}\\u{FE0F}\", name: \"up arrow\" },\n { char: \"\\u{2B07}\\u{FE0F}\", name: \"down arrow\" },\n { char: \"\\u{2B05}\\u{FE0F}\", name: \"left arrow\" },\n { char: \"\\u{27A1}\\u{FE0F}\", name: \"right arrow\" },\n { char: \"\\u{2197}\\u{FE0F}\", name: \"up-right arrow\" },\n { char: \"\\u{2198}\\u{FE0F}\", name: \"down-right arrow\" },\n { char: \"\\u{2199}\\u{FE0F}\", name: \"down-left arrow\" },\n { char: \"\\u{2196}\\u{FE0F}\", name: \"up-left arrow\" },\n { char: \"\\u{2195}\\u{FE0F}\", name: \"up-down arrow\" },\n { char: \"\\u{2194}\\u{FE0F}\", name: \"left-right arrow\" },\n { char: \"\\u{1F534}\", name: \"red circle\" },\n { char: \"\\u{1F7E0}\", name: \"orange circle\" },\n { char: \"\\u{1F7E1}\", name: \"yellow circle\" },\n { char: \"\\u{1F7E2}\", name: \"green circle\" },\n { char: \"\\u{1F535}\", name: \"blue circle\" },\n { char: \"\\u{1F7E3}\", name: \"purple circle\" },\n { char: \"\\u{1F7E4}\", name: \"brown circle\" },\n { char: \"\\u{26AB}\", name: \"black circle\" },\n { char: \"\\u{26AA}\", name: \"white circle\" },\n { char: \"\\u{1F518}\", name: \"radio button\" },\n { char: \"\\u{1F7E5}\", name: \"red square\" },\n { char: \"\\u{1F7E7}\", name: \"orange square\" },\n { char: \"\\u{1F7E8}\", name: \"yellow square\" },\n { char: \"\\u{1F7E9}\", name: \"green square\" },\n { char: \"\\u{1F7E6}\", name: \"blue square\" },\n { char: \"\\u{1F7EA}\", name: \"purple square\" },\n { char: \"\\u{1F7EB}\", name: \"brown square\" },\n { char: \"\\u{2B1B}\", name: \"black large square\" },\n { char: \"\\u{2B1C}\", name: \"white large square\" },\n { char: \"\\u{25FC}\\u{FE0F}\", name: \"black medium square\" },\n { char: \"\\u{25FB}\\u{FE0F}\", name: \"white medium square\" },\n { char: \"\\u{25FE}\", name: \"black medium-small square\" },\n { char: \"\\u{25FD}\", name: \"white medium-small square\" },\n { char: \"\\u{25AA}\\u{FE0F}\", name: \"black small square\" },\n { char: \"\\u{25AB}\\u{FE0F}\", name: \"white small square\" },\n { char: \"\\u{1F536}\", name: \"large orange diamond\" },\n { char: \"\\u{1F537}\", name: \"large blue diamond\" },\n { char: \"\\u{1F538}\", name: \"small orange diamond\" },\n { char: \"\\u{1F539}\", name: \"small blue diamond\" },\n { char: \"\\u{1F53A}\", name: \"red triangle pointed up\" },\n { char: \"\\u{1F53B}\", name: \"red triangle pointed down\" },\n { char: \"\\u{1F532}\", name: \"black square button\" },\n { char: \"\\u{1F533}\", name: \"white square button\" },\n { char: \"\\u{1F236}\", name: \"Japanese not free of charge button\" },\n { char: \"\\u{1F21A}\", name: \"Japanese free of charge button\" },\n { char: \"\\u{1F238}\", name: \"Japanese application button\" },\n { char: \"\\u{1F23A}\", name: \"Japanese open for business button\" },\n { char: \"\\u{1F237}\\u{FE0F}\", name: \"Japanese monthly amount button\" },\n { char: \"\\u{1F251}\", name: \"Japanese acceptable button\" },\n { char: \"\\u{1F250}\", name: \"Japanese bargain button\" },\n { char: \"\\u{3299}\\u{FE0F}\", name: \"Japanese secret button\" },\n { char: \"\\u{3297}\\u{FE0F}\", name: \"Japanese congratulations button\" },\n { char: \"\\u{1F234}\", name: \"Japanese passing grade button\" },\n { char: \"\\u{1F235}\", name: \"Japanese no vacancy button\" },\n { char: \"\\u{1F239}\", name: \"Japanese discount button\" },\n { char: \"\\u{1F232}\", name: \"Japanese prohibited button\" },\n { char: \"\\u{1F4DB}\", name: \"name badge\" },\n { char: \"\\u{1F530}\", name: \"Japanese symbol for beginner\" },\n { char: \"\\u{1F531}\", name: \"trident emblem\" },\n { char: \"\\u{269C}\\u{FE0F}\", name: \"fleur-de-lis\" },\n { char: \"\\u{1F9FF}\", name: \"nazar amulet\" },\n { char: \"\\u{267E}\\u{FE0F}\", name: \"infinity\" },\n { char: \"\\u{00A9}\\u{FE0F}\", name: \"copyright\" },\n { char: \"\\u{00AE}\\u{FE0F}\", name: \"registered\" },\n { char: \"\\u{2122}\\u{FE0F}\", name: \"trade mark\" },\n ],\n },\n {\n category: \"flags\",\n icon: \"\\u{1F3F3}\\u{FE0F}\",\n label: \"Flags\",\n emojis: [\n { char: \"\\u{1F3F3}\\u{FE0F}\", name: \"white flag\" },\n { char: \"\\u{1F3F4}\", name: \"black flag\" },\n { char: \"\\u{1F3C1}\", name: \"chequered flag\" },\n { char: \"\\u{1F6A9}\", name: \"triangular flag\" },\n { char: \"\\u{1F3F3}\\u{FE0F}\\u{200D}\\u{1F308}\", name: \"rainbow flag\" },\n { char: \"\\u{1F3F3}\\u{FE0F}\\u{200D}\\u{26A7}\\u{FE0F}\", name: \"transgender flag\" },\n { char: \"\\u{1F1FA}\\u{1F1F8}\", name: \"United States\" },\n { char: \"\\u{1F1EC}\\u{1F1E7}\", name: \"United Kingdom\" },\n { char: \"\\u{1F1E8}\\u{1F1E6}\", name: \"Canada\" },\n { char: \"\\u{1F1E6}\\u{1F1FA}\", name: \"Australia\" },\n { char: \"\\u{1F1E9}\\u{1F1EA}\", name: \"Germany\" },\n { char: \"\\u{1F1EB}\\u{1F1F7}\", name: \"France\" },\n { char: \"\\u{1F1EE}\\u{1F1F9}\", name: \"Italy\" },\n { char: \"\\u{1F1EA}\\u{1F1F8}\", name: \"Spain\" },\n { char: \"\\u{1F1EF}\\u{1F1F5}\", name: \"Japan\" },\n { char: \"\\u{1F1F0}\\u{1F1F7}\", name: \"South Korea\" },\n { char: \"\\u{1F1E8}\\u{1F1F3}\", name: \"China\" },\n { char: \"\\u{1F1EE}\\u{1F1F3}\", name: \"India\" },\n { char: \"\\u{1F1E7}\\u{1F1F7}\", name: \"Brazil\" },\n { char: \"\\u{1F1F2}\\u{1F1FD}\", name: \"Mexico\" },\n { char: \"\\u{1F1F7}\\u{1F1FA}\", name: \"Russia\" },\n { char: \"\\u{1F1FF}\\u{1F1E6}\", name: \"South Africa\" },\n { char: \"\\u{1F1F3}\\u{1F1F1}\", name: \"Netherlands\" },\n { char: \"\\u{1F1E7}\\u{1F1EA}\", name: \"Belgium\" },\n { char: \"\\u{1F1E8}\\u{1F1ED}\", name: \"Switzerland\" },\n { char: \"\\u{1F1E6}\\u{1F1F9}\", name: \"Austria\" },\n { char: \"\\u{1F1F8}\\u{1F1EA}\", name: \"Sweden\" },\n { char: \"\\u{1F1F3}\\u{1F1F4}\", name: \"Norway\" },\n { char: \"\\u{1F1E9}\\u{1F1F0}\", name: \"Denmark\" },\n { char: \"\\u{1F1EB}\\u{1F1EE}\", name: \"Finland\" },\n { char: \"\\u{1F1F5}\\u{1F1F1}\", name: \"Poland\" },\n { char: \"\\u{1F1FA}\\u{1F1E6}\", name: \"Ukraine\" },\n { char: \"\\u{1F1F9}\\u{1F1F7}\", name: \"Turkey\" },\n { char: \"\\u{1F1EC}\\u{1F1F7}\", name: \"Greece\" },\n { char: \"\\u{1F1F5}\\u{1F1F9}\", name: \"Portugal\" },\n { char: \"\\u{1F1EE}\\u{1F1EA}\", name: \"Ireland\" },\n { char: \"\\u{1F1F3}\\u{1F1FF}\", name: \"New Zealand\" },\n { char: \"\\u{1F1F8}\\u{1F1EC}\", name: \"Singapore\" },\n { char: \"\\u{1F1ED}\\u{1F1F0}\", name: \"Hong Kong\" },\n { char: \"\\u{1F1F9}\\u{1F1FC}\", name: \"Taiwan\" },\n { char: \"\\u{1F1F9}\\u{1F1ED}\", name: \"Thailand\" },\n { char: \"\\u{1F1FB}\\u{1F1F3}\", name: \"Vietnam\" },\n { char: \"\\u{1F1EE}\\u{1F1E9}\", name: \"Indonesia\" },\n { char: \"\\u{1F1F5}\\u{1F1ED}\", name: \"Philippines\" },\n { char: \"\\u{1F1F2}\\u{1F1FE}\", name: \"Malaysia\" },\n { char: \"\\u{1F1E6}\\u{1F1F7}\", name: \"Argentina\" },\n { char: \"\\u{1F1E8}\\u{1F1F4}\", name: \"Colombia\" },\n { char: \"\\u{1F1E8}\\u{1F1F1}\", name: \"Chile\" },\n { char: \"\\u{1F1F5}\\u{1F1EA}\", name: \"Peru\" },\n { char: \"\\u{1F1EA}\\u{1F1EC}\", name: \"Egypt\" },\n { char: \"\\u{1F1F8}\\u{1F1E6}\", name: \"Saudi Arabia\" },\n { char: \"\\u{1F1E6}\\u{1F1EA}\", name: \"United Arab Emirates\" },\n { char: \"\\u{1F1EE}\\u{1F1F1}\", name: \"Israel\" },\n ],\n },\n] as const satisfies ReadonlyArray<{\n category: string;\n icon: string;\n label: string;\n emojis: ReadonlyArray<{ char: string; name: string }>;\n}>;\n\n/**\n * Simplified emoji data for the picker component.\n * Each category contains just the emoji character strings.\n */\nexport const EMOJI_DATA: Array<{\n category: string;\n icon: string;\n label: string;\n emojis: string[];\n}> = CATEGORY_DATA.map((cat) => ({\n category: cat.category,\n icon: cat.icon,\n label: cat.label,\n emojis: cat.emojis.map((e) => e.char),\n}));\n\n/**\n * Flat list of all emojis with name and category, useful for search.\n */\nexport const EMOJI_ENTRIES: Array<{\n char: string;\n name: string;\n category: string;\n}> = CATEGORY_DATA.flatMap((cat) =>\n cat.emojis.map((e) => ({\n char: e.char,\n name: e.name,\n category: cat.category,\n })),\n);\n","import { EMOJI_ENTRIES } from \"./emoji-data\";\n\n/** Resolve an emoji name to its character. */\nexport function resolve(name: string): string | undefined {\n const lower = name.toLowerCase();\n const entry = EMOJI_ENTRIES.find((e) => e.name === lower);\n return entry?.char;\n}\n\n/** Search emojis by name substring. Returns matching emoji characters. */\nexport function search(query: string): string[] {\n const lower = query.toLowerCase();\n return EMOJI_ENTRIES.filter((e) => e.name.includes(lower)).map((e) => e.char);\n}\n\n/** Find an emoji entry by its character. */\nexport function find(\n char: string,\n): { char: string; name: string; category: string } | undefined {\n return EMOJI_ENTRIES.find((e) => e.char === char);\n}\n","import { forwardRef, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { resolve } from \"../../data/emoji-utils\";\nimport type { ActionProps } from \"./Action.types\";\nimport type { ActionColor, Size } from \"../../utils/types\";\n\n// ---------------------------------------------------------------------------\n// Color classes\n// ---------------------------------------------------------------------------\n\nconst colorClasses: Record<ActionColor, string> = {\n blue: \"bg-blue-500 text-white border border-blue-600 hover:bg-blue-600 dark:bg-blue-600 dark:border-blue-500 dark:hover:bg-blue-500\",\n emerald: \"bg-emerald-500 text-white border border-emerald-600 hover:bg-emerald-600 dark:bg-emerald-600 dark:border-emerald-500 dark:hover:bg-emerald-500\",\n amber: \"bg-amber-500 text-white border border-amber-600 hover:bg-amber-600 dark:bg-amber-600 dark:border-amber-500 dark:hover:bg-amber-500\",\n red: \"bg-red-500 text-white border border-red-600 hover:bg-red-600 dark:bg-red-600 dark:border-red-500 dark:hover:bg-red-500\",\n violet: \"bg-violet-500 text-white border border-violet-600 hover:bg-violet-600 dark:bg-violet-600 dark:border-violet-500 dark:hover:bg-violet-500\",\n indigo: \"bg-indigo-500 text-white border border-indigo-600 hover:bg-indigo-600 dark:bg-indigo-600 dark:border-indigo-500 dark:hover:bg-indigo-500\",\n sky: \"bg-sky-500 text-white border border-sky-600 hover:bg-sky-600 dark:bg-sky-600 dark:border-sky-500 dark:hover:bg-sky-500\",\n rose: \"bg-rose-500 text-white border border-rose-600 hover:bg-rose-600 dark:bg-rose-600 dark:border-rose-500 dark:hover:bg-rose-500\",\n orange: \"bg-orange-500 text-white border border-orange-600 hover:bg-orange-600 dark:bg-orange-600 dark:border-orange-500 dark:hover:bg-orange-500\",\n zinc: \"bg-zinc-500 text-white border border-zinc-600 hover:bg-zinc-600 dark:bg-zinc-600 dark:border-zinc-500 dark:hover:bg-zinc-500\",\n};\n\nconst defaultClasses =\n \"bg-white text-zinc-700 border border-zinc-200 hover:bg-zinc-50 hover:border-zinc-300 dark:bg-zinc-800 dark:text-zinc-300 dark:border-zinc-700 dark:hover:bg-zinc-700\";\n\nconst activeClasses =\n \"bg-blue-500 text-white border border-blue-600 hover:bg-blue-600 dark:bg-blue-600 dark:border-blue-500 dark:hover:bg-blue-500\";\n\nconst checkedClasses =\n \"bg-emerald-500 text-white border border-emerald-600 hover:bg-emerald-600 dark:bg-emerald-600 dark:border-emerald-500 dark:hover:bg-emerald-500\";\n\nconst warnClasses =\n \"bg-amber-50 text-amber-700 border border-amber-200 hover:bg-amber-100 dark:bg-amber-900/30 dark:text-amber-300 dark:border-amber-700 dark:hover:bg-amber-900/50\";\n\n// ---------------------------------------------------------------------------\n// Size helpers\n// ---------------------------------------------------------------------------\n\nconst horizontalSize: Record<Size, string> = {\n xs: \"px-2 py-1 text-xs\",\n sm: \"px-2 py-1 text-xs\",\n md: \"px-3 py-1.5 text-sm\",\n lg: \"px-4 py-2.5 text-base\",\n xl: \"px-5 py-3 text-lg\",\n};\n\nconst verticalSize: Record<Size, string> = {\n xs: \"px-2 pt-5 pb-5 text-xs\",\n sm: \"px-2 pt-5 pb-5 text-xs\",\n md: \"px-3 pt-6 pb-6 text-sm\",\n lg: \"px-4 pt-8 pb-8 text-base\",\n xl: \"px-5 pt-9 pb-9 text-lg\",\n};\n\nconst circleSize: Record<Size, string> = {\n xs: \"w-7 h-7 text-xs\",\n sm: \"w-8 h-8 text-xs\",\n md: \"w-10 h-10 text-sm\",\n lg: \"w-12 h-12 text-base\",\n xl: \"w-14 h-14 text-lg\",\n};\n\nconst iconSize: Record<Size, string> = {\n xs: \"w-3 h-3\",\n sm: \"w-3 h-3\",\n md: \"w-4 h-4\",\n lg: \"w-5 h-5\",\n xl: \"w-6 h-6\",\n};\n\nconst avatarSize: Record<Size, string> = {\n xs: \"w-4 h-4\",\n sm: \"w-4 h-4\",\n md: \"w-5 h-5\",\n lg: \"w-6 h-6\",\n xl: \"w-7 h-7\",\n};\n\nconst alertIconSize: Record<Size, string> = {\n xs: \"w-2 h-2\",\n sm: \"w-2.5 h-2.5\",\n md: \"w-3 h-3\",\n lg: \"w-4 h-4\",\n xl: \"w-4 h-4\",\n};\n\nconst badgeSize: Record<Size, string> = {\n xs: \"text-[10px] px-1 min-w-[14px] h-3.5\",\n sm: \"text-[10px] px-1.5 min-w-[16px] h-4\",\n md: \"text-[11px] px-1.5 min-w-[18px] h-[18px]\",\n lg: \"text-xs px-2 min-w-[22px] h-5\",\n xl: \"text-xs px-2 min-w-[24px] h-5\",\n};\n\nconst verticalGap: Record<Size, string> = {\n xs: \"gap-1\",\n sm: \"gap-1\",\n md: \"gap-1.5\",\n lg: \"gap-2\",\n xl: \"gap-2\",\n};\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\nfunction isColored(color?: ActionColor, active?: boolean, checked?: boolean): boolean {\n return !!(color || active || checked);\n}\n\nfunction getColorClasses(\n color?: ActionColor,\n active?: boolean,\n checked?: boolean,\n warn?: boolean,\n): string {\n if (color) return colorClasses[color];\n if (checked) return checkedClasses;\n if (active) return activeClasses;\n if (warn) return warnClasses;\n return defaultClasses;\n}\n\nfunction getIconColorClasses(\n color?: ActionColor,\n active?: boolean,\n checked?: boolean,\n warn?: boolean,\n): string {\n if (color || active || checked) return \"text-white\";\n if (warn) return \"text-amber-600 dark:text-amber-400\";\n return \"text-zinc-500 dark:text-zinc-400\";\n}\n\nfunction getBadgeClasses(\n color?: ActionColor,\n active?: boolean,\n checked?: boolean,\n warn?: boolean,\n): string {\n if (isColored(color, active, checked)) return \"bg-white/20 text-white\";\n if (warn) return \"bg-amber-200 text-amber-800 dark:bg-amber-800 dark:text-amber-200\";\n return \"bg-zinc-200 text-zinc-700 dark:bg-zinc-600 dark:text-zinc-200\";\n}\n\n// ---------------------------------------------------------------------------\n// Sort parsing\n// ---------------------------------------------------------------------------\n\ntype ElementKey = \"e\" | \"i\" | \"a\" | \"b\";\nconst DEFAULT_SORT = \"eiab\";\n\nfunction parseSortOrder(sort?: string): ElementKey[] {\n const chars = (sort ?? DEFAULT_SORT).split(\"\") as ElementKey[];\n const valid: ElementKey[] = [];\n const seen = new Set<string>();\n for (const c of chars) {\n if (\"eiab\".includes(c) && !seen.has(c)) {\n valid.push(c);\n seen.add(c);\n }\n }\n // Add missing keys in default order\n for (const c of DEFAULT_SORT.split(\"\") as ElementKey[]) {\n if (!seen.has(c)) valid.push(c);\n }\n return valid;\n}\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\nexport const Action = forwardRef<HTMLButtonElement, ActionProps>(\n (\n {\n children,\n className,\n variant = \"default\",\n color,\n size = \"md\",\n active,\n checked,\n warn,\n alert: alertProp,\n icon,\n iconTrailing,\n iconPlace = \"left\",\n alertIcon,\n alertIconTrailing,\n emoji,\n emojiTrailing,\n avatar,\n avatarTrailing,\n badge,\n badgeTrailing,\n sort,\n loading = false,\n disabled,\n href,\n ...props\n },\n ref,\n ) => {\n const isCircle = variant === \"circle\";\n const isVertical = iconPlace === \"top\" || iconPlace === \"bottom\";\n const isReversed = iconPlace === \"right\";\n\n // -----------------------------------------------------------------------\n // Sizing\n // -----------------------------------------------------------------------\n const sizeClass = isCircle\n ? circleSize[size]\n : isVertical\n ? verticalSize[size]\n : horizontalSize[size];\n\n // -----------------------------------------------------------------------\n // Build decorative elements\n // -----------------------------------------------------------------------\n const iconColorCls = getIconColorClasses(color, active, checked, warn);\n\n const buildElement = (key: ElementKey, trailing: boolean): ReactNode => {\n switch (key) {\n case \"e\": {\n const slug = trailing ? emojiTrailing : emoji;\n if (!slug) return null;\n const char = resolve(slug);\n if (!char) return null;\n return (\n <span key={`emoji-${trailing ? \"t\" : \"l\"}`} data-action-emoji>\n {char}\n </span>\n );\n }\n case \"i\": {\n if (loading && !trailing) {\n return (\n <span\n key=\"spinner\"\n className={cn(\"animate-spin border-2 border-current border-t-transparent rounded-full\", iconSize[size])}\n />\n );\n }\n const iconNode = trailing ? iconTrailing : icon;\n if (!iconNode) return null;\n if (isVertical) {\n const posClass =\n iconPlace === \"top\" ? \"top-1.5\" : \"bottom-1.5\";\n return (\n <span\n key={`icon-${trailing ? \"t\" : \"l\"}`}\n className={cn(\n \"absolute left-1/2 -translate-x-1/2\",\n posClass,\n iconColorCls,\n )}\n >\n {iconNode}\n </span>\n );\n }\n return (\n <span\n key={`icon-${trailing ? \"t\" : \"l\"}`}\n className={cn(\"flex-shrink-0\", iconColorCls)}\n >\n {iconNode}\n </span>\n );\n }\n case \"a\": {\n if (!avatar) return null;\n const isTrailing = avatarTrailing ?? trailing;\n if (isTrailing !== trailing) return null;\n return (\n <img\n key=\"avatar\"\n src={avatar}\n alt=\"\"\n className={cn(avatarSize[size], \"rounded-full object-cover flex-shrink-0\")}\n data-action-avatar\n />\n );\n }\n case \"b\": {\n if (!badge) return null;\n const isTrailing = badgeTrailing ?? trailing;\n if (isTrailing !== trailing) return null;\n return (\n <span\n key=\"badge\"\n className={cn(\n \"inline-flex items-center justify-center font-medium rounded-full\",\n badgeSize[size],\n getBadgeClasses(color, active, checked, warn),\n )}\n data-action-badge\n >\n {badge}\n </span>\n );\n }\n default:\n return null;\n }\n };\n\n // Alert icon element\n const renderAlertIcon = (trailing: boolean): ReactNode => {\n if (!alertIcon) return null;\n const isTrailing = alertIconTrailing ?? false;\n if (isTrailing !== trailing) return null;\n return (\n <span\n key=\"alert-icon\"\n className=\"relative inline-flex flex-shrink-0\"\n data-action-alert\n >\n <span className={cn(alertIconSize[size], \"text-red-500 dark:text-red-400 animate-pulse\")}>\n {alertIcon}\n </span>\n <span\n className={cn(\n alertIconSize[size],\n \"absolute inset-0 text-red-400 dark:text-red-300 animate-ping opacity-75\",\n )}\n >\n {alertIcon}\n </span>\n </span>\n );\n };\n\n const sortOrder = parseSortOrder(sort);\n\n const leadingElements: ReactNode[] = [];\n const trailingElements: ReactNode[] = [];\n\n for (const key of sortOrder) {\n const leading = buildElement(key, false);\n if (leading) leadingElements.push(leading);\n const trailing = buildElement(key, true);\n if (trailing) trailingElements.push(trailing);\n }\n\n // Insert alert icon\n const leadingAlert = renderAlertIcon(false);\n if (leadingAlert) leadingElements.push(leadingAlert);\n const trailingAlert = renderAlertIcon(true);\n if (trailingAlert) trailingElements.push(trailingAlert);\n\n // -----------------------------------------------------------------------\n // Classes\n // -----------------------------------------------------------------------\n const classes = cn(\n \"inline-flex items-center justify-center font-medium transition-all duration-200\",\n \"focus:outline-none focus:ring-2 focus:ring-offset-1\",\n \"disabled:opacity-50 disabled:cursor-not-allowed\",\n isCircle ? \"rounded-full\" : \"rounded-lg\",\n sizeClass,\n getColorClasses(color, active, checked, warn),\n !isCircle && !isVertical && \"gap-2\",\n !isCircle && isVertical && cn(\"relative\", verticalGap[size]),\n isReversed && !isVertical && \"flex-row-reverse\",\n alertProp && \"animate-pulse\",\n className,\n );\n\n // -----------------------------------------------------------------------\n // Content\n // -----------------------------------------------------------------------\n const content = isCircle ? (\n <>\n {loading ? (\n <span\n className={cn(\n \"animate-spin border-2 border-current border-t-transparent rounded-full\",\n iconSize[size],\n )}\n />\n ) : (\n icon ?? children\n )}\n </>\n ) : (\n <>\n {leadingElements}\n {children != null && <span>{children}</span>}\n {trailingElements}\n </>\n );\n\n // -----------------------------------------------------------------------\n // Render\n // -----------------------------------------------------------------------\n if (href && !disabled) {\n return (\n <a href={href} className={classes}>\n {content}\n </a>\n );\n }\n\n return (\n <button\n ref={ref}\n className={classes}\n disabled={disabled || loading}\n {...props}\n >\n {content}\n </button>\n );\n },\n);\n\nAction.displayName = \"Action\";\n","import type { Size } from \"../../utils/types\";\nimport type { InputOption } from \"./inputs.types\";\n\nexport const inputSizeClasses: Record<Size, string> = {\n xs: \"px-2 py-1 text-xs rounded\",\n sm: \"px-2.5 py-1.5 text-sm rounded-md\",\n md: \"px-3 py-2 text-sm rounded-lg\",\n lg: \"px-4 py-2.5 text-base rounded-lg\",\n xl: \"px-5 py-3 text-lg rounded-xl\",\n};\n\nexport const labelSizeClasses: Record<Size, string> = {\n xs: \"text-xs\",\n sm: \"text-xs\",\n md: \"text-sm\",\n lg: \"text-sm\",\n xl: \"text-base\",\n};\n\nexport function dirtyClasses(dirty?: boolean): string {\n return dirty ? \"border-l-[3px] border-l-amber-400\" : \"\";\n}\n\nexport function dirtyRingClasses(dirty?: boolean): string {\n return dirty ? \"ring-2 ring-amber-400/50\" : \"\";\n}\n\nexport function errorClasses(error?: string): string {\n return error ? \"border-red-500 focus:ring-red-500\" : \"\";\n}\n\nexport const inputBaseClasses =\n \"border border-zinc-300 bg-white text-zinc-900 placeholder:text-zinc-400 focus:outline-none focus:ring-2 focus:ring-blue-500/40 focus:border-blue-500 disabled:opacity-50 disabled:cursor-not-allowed dark:border-zinc-600 dark:bg-zinc-800 dark:text-zinc-100 dark:placeholder:text-zinc-500\";\n\nexport function resolveOption<V = string>(\n option: InputOption<V>,\n): { value: V; label: string; disabled?: boolean; description?: string } {\n if (typeof option === \"string\") {\n return { value: option as unknown as V, label: option };\n }\n return option;\n}\n","import { cn } from \"../../../utils/cn\";\nimport { labelSizeClasses } from \"../inputs.utils\";\nimport type { FieldProps } from \"./Field.types\";\n\nexport function Field({\n label,\n description,\n error,\n required,\n htmlFor,\n size = \"md\",\n children,\n className,\n}: FieldProps) {\n return (\n <div className={cn(\"flex flex-col gap-1.5\", className)}>\n {label && (\n <label\n htmlFor={htmlFor}\n className={cn(\n \"font-medium text-zinc-700 dark:text-zinc-300\",\n labelSizeClasses[size],\n )}\n >\n {label}\n {required && <span className=\"ml-0.5 text-red-500\">*</span>}\n </label>\n )}\n {children}\n {description && !error && (\n <p className=\"text-xs text-zinc-500 dark:text-zinc-400\">\n {description}\n </p>\n )}\n {error && <p className=\"text-xs text-red-500\">{error}</p>}\n </div>\n );\n}\n","import { forwardRef, useId } from \"react\";\nimport { cn } from \"../../../utils/cn\";\nimport { Field } from \"../Field\";\nimport {\n dirtyClasses,\n errorClasses,\n inputBaseClasses,\n inputSizeClasses,\n} from \"../inputs.utils\";\nimport type { InputProps } from \"./Input.types\";\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\n (\n {\n type = \"text\",\n size = \"md\",\n dirty,\n error,\n label,\n description,\n required,\n disabled,\n className,\n id,\n leading,\n trailing,\n onValueChange,\n onChange,\n ...props\n },\n ref,\n ) => {\n const autoId = useId();\n const inputId = id ?? autoId;\n\n const input = (\n <div className=\"relative flex items-center\">\n {leading && (\n <span className=\"pointer-events-none absolute left-3 text-zinc-400 dark:text-zinc-500\">\n {leading}\n </span>\n )}\n <input\n ref={ref}\n id={inputId}\n type={type}\n disabled={disabled}\n required={required}\n className={cn(\n inputBaseClasses,\n inputSizeClasses[size],\n dirtyClasses(dirty),\n errorClasses(error),\n \"w-full\",\n leading && \"pl-9\",\n trailing && \"pr-9\",\n className,\n )}\n onChange={(e) => {\n onChange?.(e);\n onValueChange?.(e.target.value);\n }}\n {...props}\n />\n {trailing && (\n <span className=\"pointer-events-none absolute right-3 text-zinc-400 dark:text-zinc-500\">\n {trailing}\n </span>\n )}\n </div>\n );\n\n if (label || error || description) {\n return (\n <Field\n label={label}\n description={description}\n error={error}\n required={required}\n htmlFor={inputId}\n size={size}\n >\n {input}\n </Field>\n );\n }\n\n return input;\n },\n);\n\nInput.displayName = \"Input\";\n","import { forwardRef, useEffect, useId, useRef } from \"react\";\nimport { cn } from \"../../../utils/cn\";\nimport { Field } from \"../Field\";\nimport {\n dirtyClasses,\n errorClasses,\n inputBaseClasses,\n inputSizeClasses,\n} from \"../inputs.utils\";\nimport type { TextareaProps } from \"./Textarea.types\";\n\nexport const Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>(\n (\n {\n size = \"md\",\n dirty,\n error,\n label,\n description,\n required,\n disabled,\n className,\n id,\n autoResize,\n minRows = 3,\n maxRows,\n onValueChange,\n onChange,\n value,\n defaultValue,\n ...props\n },\n ref,\n ) => {\n const autoId = useId();\n const textareaId = id ?? autoId;\n const internalRef = useRef<HTMLTextAreaElement | null>(null);\n\n useEffect(() => {\n const el = internalRef.current;\n if (!autoResize || !el) return;\n el.style.height = \"auto\";\n const lineHeight = parseInt(getComputedStyle(el).lineHeight) || 20;\n const minHeight = minRows * lineHeight;\n const maxHeight = maxRows ? maxRows * lineHeight : Infinity;\n el.style.height = `${Math.min(Math.max(el.scrollHeight, minHeight), maxHeight)}px`;\n }, [autoResize, minRows, maxRows, value, defaultValue]);\n\n const textarea = (\n <textarea\n ref={(node) => {\n internalRef.current = node;\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n }}\n id={textareaId}\n disabled={disabled}\n required={required}\n rows={autoResize ? minRows : minRows}\n value={value}\n defaultValue={defaultValue}\n className={cn(\n inputBaseClasses,\n inputSizeClasses[size],\n dirtyClasses(dirty),\n errorClasses(error),\n \"w-full resize-y\",\n autoResize && \"resize-none overflow-hidden\",\n className,\n )}\n onChange={(e) => {\n onChange?.(e);\n onValueChange?.(e.target.value);\n }}\n {...props}\n />\n );\n\n if (label || error || description) {\n return (\n <Field\n label={label}\n description={description}\n error={error}\n required={required}\n htmlFor={textareaId}\n size={size}\n >\n {textarea}\n </Field>\n );\n }\n\n return textarea;\n },\n);\n\nTextarea.displayName = \"Textarea\";\n","import { forwardRef, useId } from \"react\";\nimport { cn } from \"../../../utils/cn\";\nimport { Field } from \"../Field\";\nimport {\n dirtyClasses,\n errorClasses,\n inputBaseClasses,\n inputSizeClasses,\n resolveOption,\n} from \"../inputs.utils\";\nimport type { InputOption, InputOptionGroup } from \"../inputs.types\";\nimport type { SelectProps } from \"./Select.types\";\n\nfunction isOptionGroup(\n item: InputOption | InputOptionGroup,\n): item is InputOptionGroup {\n return typeof item === \"object\" && \"options\" in item;\n}\n\nfunction renderOption(option: InputOption, index: number) {\n const resolved = resolveOption(option);\n return (\n <option\n key={`${resolved.value}-${index}`}\n value={resolved.value as string}\n disabled={resolved.disabled}\n >\n {resolved.label}\n </option>\n );\n}\n\nexport const Select = forwardRef<HTMLSelectElement, SelectProps>(\n (\n {\n size = \"md\",\n dirty,\n error,\n label,\n description,\n required,\n disabled,\n className,\n id,\n list,\n placeholder,\n onValueChange,\n onChange,\n ...props\n },\n ref,\n ) => {\n const autoId = useId();\n const selectId = id ?? autoId;\n\n const select = (\n <select\n ref={ref}\n id={selectId}\n disabled={disabled}\n required={required}\n className={cn(\n inputBaseClasses,\n inputSizeClasses[size],\n dirtyClasses(dirty),\n errorClasses(error),\n \"w-full appearance-none bg-no-repeat bg-[length:16px] bg-[right_8px_center]\",\n \"bg-[url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22%236b7280%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20d%3D%22M5.23%207.21a.75.75%200%20011.06.02L10%2011.168l3.71-3.938a.75.75%200%20111.08%201.04l-4.25%204.5a.75.75%200%2001-1.08%200l-4.25-4.5a.75.75%200%2001.02-1.06z%22%20clip-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')]\",\n \"pr-8\",\n className,\n )}\n onChange={(e) => {\n onChange?.(e);\n onValueChange?.(e.target.value);\n }}\n {...props}\n >\n {placeholder && (\n <option value=\"\" disabled>\n {placeholder}\n </option>\n )}\n {list.map((item, index) =>\n isOptionGroup(item) ? (\n <optgroup key={`group-${index}`} label={item.label}>\n {item.options.map((opt, optIndex) =>\n renderOption(opt, optIndex),\n )}\n </optgroup>\n ) : (\n renderOption(item, index)\n ),\n )}\n </select>\n );\n\n if (label || error || description) {\n return (\n <Field\n label={label}\n description={description}\n error={error}\n required={required}\n htmlFor={selectId}\n size={size}\n >\n {select}\n </Field>\n );\n }\n\n return select;\n },\n);\n\nSelect.displayName = \"Select\";\n","import { useCallback, useRef, useState } from \"react\";\n\nexport function useControllableState<T>(\n controlledValue: T | undefined,\n defaultValue: T,\n onChange?: (value: T) => void,\n): [T, (value: T | ((prev: T) => T)) => void] {\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);\n const isControlled = controlledValue !== undefined;\n const value = isControlled ? controlledValue : uncontrolledValue;\n const onChangeRef = useRef(onChange);\n onChangeRef.current = onChange;\n\n const setValue = useCallback(\n (next: T | ((prev: T) => T)) => {\n const nextValue =\n typeof next === \"function\" ? (next as (prev: T) => T)(value) : next;\n\n if (!isControlled) {\n setUncontrolledValue(nextValue);\n }\n\n onChangeRef.current?.(nextValue);\n },\n [isControlled, value],\n );\n\n return [value, setValue];\n}\n","import { forwardRef, useEffect, useId, useRef } from \"react\";\nimport { cn } from \"../../../utils/cn\";\nimport { useControllableState } from \"../../../hooks/use-controllable-state\";\nimport { dirtyRingClasses } from \"../inputs.utils\";\nimport type { CheckboxProps } from \"./Checkbox.types\";\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n (\n {\n size = \"md\",\n dirty,\n error,\n label,\n description,\n required,\n disabled,\n className,\n id,\n name,\n checked: controlledChecked,\n defaultChecked = false,\n onCheckedChange,\n indeterminate,\n },\n ref,\n ) => {\n const autoId = useId();\n const checkboxId = id ?? autoId;\n const internalRef = useRef<HTMLInputElement | null>(null);\n const [checked, setChecked] = useControllableState(\n controlledChecked,\n defaultChecked,\n onCheckedChange,\n );\n\n useEffect(() => {\n const el = internalRef.current;\n if (el) {\n el.indeterminate = indeterminate ?? false;\n }\n }, [indeterminate]);\n\n const sizeClasses = {\n xs: \"h-3.5 w-3.5\",\n sm: \"h-4 w-4\",\n md: \"h-[18px] w-[18px]\",\n lg: \"h-5 w-5\",\n xl: \"h-6 w-6\",\n }[size];\n\n return (\n <div className={cn(\"flex items-start gap-2\", className)}>\n <div className=\"relative flex items-center\">\n <input\n ref={(node) => {\n internalRef.current = node;\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n }}\n id={checkboxId}\n type=\"checkbox\"\n name={name}\n disabled={disabled}\n required={required}\n checked={checked}\n onChange={(e) => setChecked(e.target.checked)}\n className={cn(\n sizeClasses,\n \"cursor-pointer rounded border border-zinc-300 bg-white text-blue-600 focus:ring-2 focus:ring-blue-500/40 focus:ring-offset-0 disabled:cursor-not-allowed disabled:opacity-50 dark:border-zinc-600 dark:bg-zinc-800\",\n dirtyRingClasses(dirty),\n error && \"border-red-500\",\n )}\n />\n </div>\n {(label || description) && (\n <div className=\"flex flex-col\">\n {label && (\n <label\n htmlFor={checkboxId}\n className={cn(\n \"cursor-pointer text-sm text-zinc-700 dark:text-zinc-300\",\n disabled && \"cursor-not-allowed opacity-50\",\n )}\n >\n {label}\n {required && <span className=\"ml-0.5 text-red-500\">*</span>}\n </label>\n )}\n {description && (\n <span className=\"text-xs text-zinc-500 dark:text-zinc-400\">\n {description}\n </span>\n )}\n {error && <span className=\"text-xs text-red-500\">{error}</span>}\n </div>\n )}\n </div>\n );\n },\n);\n\nCheckbox.displayName = \"Checkbox\";\n","import { useId } from \"react\";\nimport { cn } from \"../../../utils/cn\";\nimport { useControllableState } from \"../../../hooks/use-controllable-state\";\nimport { Field } from \"../Field\";\nimport { dirtyRingClasses, resolveOption } from \"../inputs.utils\";\nimport type { CheckboxGroupProps } from \"./CheckboxGroup.types\";\n\nexport function CheckboxGroup<V = string>({\n size = \"md\",\n dirty,\n error,\n label,\n description,\n required,\n disabled,\n className,\n name,\n list,\n value: controlledValue,\n defaultValue = [],\n onValueChange,\n orientation = \"vertical\",\n}: CheckboxGroupProps<V>) {\n const groupId = useId();\n const [value, setValue] = useControllableState(\n controlledValue,\n defaultValue,\n onValueChange,\n );\n\n const handleToggle = (optionValue: V) => {\n const next = value.includes(optionValue)\n ? value.filter((v) => v !== optionValue)\n : [...value, optionValue];\n setValue(next);\n };\n\n const sizeClasses = {\n xs: \"h-3.5 w-3.5\",\n sm: \"h-4 w-4\",\n md: \"h-[18px] w-[18px]\",\n lg: \"h-5 w-5\",\n xl: \"h-6 w-6\",\n }[size];\n\n const content = (\n <div\n className={cn(\n \"flex gap-3\",\n orientation === \"vertical\" ? \"flex-col\" : \"flex-row flex-wrap\",\n className,\n )}\n >\n {list.map((option, index) => {\n const resolved = resolveOption(option);\n const optionId = `${groupId}-${index}`;\n const isChecked = value.includes(resolved.value);\n\n return (\n <div key={optionId} className=\"flex items-start gap-2\">\n <input\n id={optionId}\n type=\"checkbox\"\n name={name}\n value={String(resolved.value)}\n checked={isChecked}\n disabled={disabled || resolved.disabled}\n onChange={() => handleToggle(resolved.value)}\n className={cn(\n sizeClasses,\n \"cursor-pointer rounded border border-zinc-300 bg-white text-blue-600 focus:ring-2 focus:ring-blue-500/40 focus:ring-offset-0 disabled:cursor-not-allowed disabled:opacity-50 dark:border-zinc-600 dark:bg-zinc-800\",\n dirtyRingClasses(dirty),\n error && \"border-red-500\",\n )}\n />\n <div className=\"flex flex-col\">\n <label\n htmlFor={optionId}\n className={cn(\n \"cursor-pointer text-sm text-zinc-700 dark:text-zinc-300\",\n (disabled || resolved.disabled) &&\n \"cursor-not-allowed opacity-50\",\n )}\n >\n {resolved.label}\n </label>\n {resolved.description && (\n <span className=\"text-xs text-zinc-500 dark:text-zinc-400\">\n {resolved.description}\n </span>\n )}\n </div>\n </div>\n );\n })}\n </div>\n );\n\n if (label || error || description) {\n return (\n <Field\n label={label}\n description={description}\n error={error}\n required={required}\n size={size}\n >\n {content}\n </Field>\n );\n }\n\n return content;\n}\n\nCheckboxGroup.displayName = \"CheckboxGroup\";\n","import { useId } from \"react\";\nimport { cn } from \"../../../utils/cn\";\nimport { useControllableState } from \"../../../hooks/use-controllable-state\";\nimport { Field } from \"../Field\";\nimport { dirtyRingClasses, resolveOption } from \"../inputs.utils\";\nimport type { RadioGroupProps } from \"./RadioGroup.types\";\n\nexport function RadioGroup<V = string>({\n size = \"md\",\n dirty,\n error,\n label,\n description,\n required,\n disabled,\n className,\n name,\n list,\n value: controlledValue,\n defaultValue,\n onValueChange,\n orientation = \"vertical\",\n}: RadioGroupProps<V>) {\n const groupId = useId();\n const radioName = name ?? groupId;\n const [value, setValue] = useControllableState(\n controlledValue,\n defaultValue as V,\n onValueChange,\n );\n\n const sizeClasses = {\n xs: \"h-3.5 w-3.5\",\n sm: \"h-4 w-4\",\n md: \"h-[18px] w-[18px]\",\n lg: \"h-5 w-5\",\n xl: \"h-6 w-6\",\n }[size];\n\n const content = (\n <div\n role=\"radiogroup\"\n className={cn(\n \"flex gap-3\",\n orientation === \"vertical\" ? \"flex-col\" : \"flex-row flex-wrap\",\n className,\n )}\n >\n {list.map((option, index) => {\n const resolved = resolveOption(option);\n const optionId = `${groupId}-${index}`;\n const isSelected = value === resolved.value;\n\n return (\n <div key={optionId} className=\"flex items-start gap-2\">\n <input\n id={optionId}\n type=\"radio\"\n name={radioName}\n value={String(resolved.value)}\n checked={isSelected}\n disabled={disabled || resolved.disabled}\n onChange={() => setValue(resolved.value)}\n className={cn(\n sizeClasses,\n \"cursor-pointer border border-zinc-300 bg-white text-blue-600 focus:ring-2 focus:ring-blue-500/40 focus:ring-offset-0 disabled:cursor-not-allowed disabled:opacity-50 dark:border-zinc-600 dark:bg-zinc-800\",\n dirtyRingClasses(dirty),\n error && \"border-red-500\",\n )}\n />\n <div className=\"flex flex-col\">\n <label\n htmlFor={optionId}\n className={cn(\n \"cursor-pointer text-sm text-zinc-700 dark:text-zinc-300\",\n (disabled || resolved.disabled) &&\n \"cursor-not-allowed opacity-50\",\n )}\n >\n {resolved.label}\n </label>\n {resolved.description && (\n <span className=\"text-xs text-zinc-500 dark:text-zinc-400\">\n {resolved.description}\n </span>\n )}\n </div>\n </div>\n );\n })}\n </div>\n );\n\n if (label || error || description) {\n return (\n <Field\n label={label}\n description={description}\n error={error}\n required={required}\n size={size}\n >\n {content}\n </Field>\n );\n }\n\n return content;\n}\n\nRadioGroup.displayName = \"RadioGroup\";\n","import { forwardRef, useId } from \"react\";\nimport { cn } from \"../../../utils/cn\";\nimport { useControllableState } from \"../../../hooks/use-controllable-state\";\nimport { dirtyRingClasses } from \"../inputs.utils\";\nimport type { SwitchProps } from \"./Switch.types\";\n\nconst trackColorMap: Record<string, string> = {\n zinc: \"bg-zinc-500\",\n red: \"bg-red-500\",\n orange: \"bg-orange-500\",\n amber: \"bg-amber-500\",\n yellow: \"bg-yellow-500\",\n lime: \"bg-lime-500\",\n green: \"bg-green-500\",\n emerald: \"bg-emerald-500\",\n teal: \"bg-teal-500\",\n cyan: \"bg-cyan-500\",\n sky: \"bg-sky-500\",\n blue: \"bg-blue-500\",\n indigo: \"bg-indigo-500\",\n violet: \"bg-violet-500\",\n purple: \"bg-purple-500\",\n fuchsia: \"bg-fuchsia-500\",\n pink: \"bg-pink-500\",\n rose: \"bg-rose-500\",\n};\n\nexport const Switch = forwardRef<HTMLButtonElement, SwitchProps>(\n (\n {\n size = \"md\",\n dirty,\n error,\n label,\n description,\n required,\n disabled,\n className,\n id,\n name,\n checked: controlledChecked,\n defaultChecked = false,\n onCheckedChange,\n color = \"blue\",\n },\n ref,\n ) => {\n const autoId = useId();\n const switchId = id ?? autoId;\n const [checked, setChecked] = useControllableState(\n controlledChecked,\n defaultChecked,\n onCheckedChange,\n );\n\n const trackSizes = {\n xs: \"h-4 w-7\",\n sm: \"h-5 w-9\",\n md: \"h-6 w-11\",\n lg: \"h-7 w-[52px]\",\n xl: \"h-8 w-[60px]\",\n }[size];\n\n const knobSizes = {\n xs: \"h-3 w-3\",\n sm: \"h-4 w-4\",\n md: \"h-5 w-5\",\n lg: \"h-6 w-6\",\n xl: \"h-7 w-7\",\n }[size];\n\n const translateOn = {\n xs: \"translate-x-3\",\n sm: \"translate-x-4\",\n md: \"translate-x-5\",\n lg: \"translate-x-6\",\n xl: \"translate-x-7\",\n }[size];\n\n return (\n <div className={cn(\"flex items-start gap-2\", className)}>\n <button\n ref={ref}\n id={switchId}\n type=\"button\"\n role=\"switch\"\n aria-checked={checked}\n disabled={disabled}\n onClick={() => setChecked(!checked)}\n className={cn(\n \"relative inline-flex shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-500/40 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n trackSizes,\n checked ? trackColorMap[color] : \"bg-zinc-200 dark:bg-zinc-700\",\n dirtyRingClasses(dirty),\n error && \"ring-2 ring-red-500/50\",\n )}\n >\n <span\n className={cn(\n \"pointer-events-none inline-block rounded-full bg-white shadow-sm transition-transform\",\n knobSizes,\n checked ? translateOn : \"translate-x-0\",\n )}\n />\n </button>\n {name && (\n <input type=\"hidden\" name={name} value={checked ? \"1\" : \"0\"} />\n )}\n {(label || description) && (\n <div className=\"flex flex-col\">\n {label && (\n <label\n htmlFor={switchId}\n className={cn(\n \"cursor-pointer text-sm text-zinc-700 dark:text-zinc-300\",\n disabled && \"cursor-not-allowed opacity-50\",\n )}\n >\n {label}\n {required && <span className=\"ml-0.5 text-red-500\">*</span>}\n </label>\n )}\n {description && (\n <span className=\"text-xs text-zinc-500 dark:text-zinc-400\">\n {description}\n </span>\n )}\n {error && <span className=\"text-xs text-red-500\">{error}</span>}\n </div>\n )}\n </div>\n );\n },\n);\n\nSwitch.displayName = \"Switch\";\n","import { forwardRef, useId } from \"react\";\nimport { cn } from \"../../../utils/cn\";\nimport { useControllableState } from \"../../../hooks/use-controllable-state\";\nimport { Field } from \"../Field\";\nimport { dirtyRingClasses } from \"../inputs.utils\";\nimport type { SliderProps } from \"./Slider.types\";\n\nexport const Slider = forwardRef<HTMLInputElement, SliderProps>(\n (props, ref) => {\n const {\n size = \"md\",\n dirty,\n error,\n label,\n description,\n required,\n disabled,\n className,\n id,\n name,\n min = 0,\n max = 100,\n step = 1,\n showValue,\n marks,\n } = props;\n\n const autoId = useId();\n const sliderId = id ?? autoId;\n\n if (props.range) {\n return (\n <RangeSlider\n {...props}\n id={sliderId}\n ref={ref}\n />\n );\n }\n\n return (\n <SingleSlider\n {...props}\n range={false}\n id={sliderId}\n ref={ref}\n />\n );\n },\n);\n\nSlider.displayName = \"Slider\";\n\nconst SingleSlider = forwardRef<HTMLInputElement, SliderProps & { range?: false }>(\n (\n {\n size = \"md\",\n dirty,\n error,\n label,\n description,\n required,\n disabled,\n className,\n id,\n name,\n min = 0,\n max = 100,\n step = 1,\n showValue,\n marks,\n ...rest\n },\n ref,\n ) => {\n const singleProps = rest as { value?: number; defaultValue?: number; onValueChange?: (v: number) => void };\n const [value, setValue] = useControllableState(\n singleProps.value,\n singleProps.defaultValue ?? min,\n singleProps.onValueChange,\n );\n\n const slider = (\n <div className={cn(\"flex flex-col gap-1\", className)}>\n <div className=\"flex items-center gap-3\">\n <input\n ref={ref}\n id={id}\n type=\"range\"\n name={name}\n min={min}\n max={max}\n step={step}\n value={value}\n disabled={disabled}\n onChange={(e) => setValue(Number(e.target.value))}\n className={cn(\n \"w-full cursor-pointer accent-blue-600 disabled:cursor-not-allowed disabled:opacity-50\",\n dirtyRingClasses(dirty),\n {\n xs: \"h-1\",\n sm: \"h-1.5\",\n md: \"h-2\",\n lg: \"h-2.5\",\n xl: \"h-3\",\n }[size],\n )}\n />\n {showValue && (\n <span className=\"min-w-[3ch] text-right text-sm font-medium text-zinc-700 dark:text-zinc-300\">\n {value}\n </span>\n )}\n </div>\n {marks && marks.length > 0 && <SliderMarks marks={marks} min={min} max={max} />}\n </div>\n );\n\n if (label || error || description) {\n return (\n <Field label={label} description={description} error={error} required={required} htmlFor={id} size={size}>\n {slider}\n </Field>\n );\n }\n\n return slider;\n },\n);\n\nSingleSlider.displayName = \"SingleSlider\";\n\nconst RangeSlider = forwardRef<HTMLInputElement, SliderProps & { range: true }>(\n (\n {\n size = \"md\",\n dirty,\n error,\n label,\n description,\n required,\n disabled,\n className,\n id,\n name,\n min = 0,\n max = 100,\n step = 1,\n showValue,\n marks,\n ...rest\n },\n ref,\n ) => {\n const rangeProps = rest as { value?: [number, number]; defaultValue?: [number, number]; onValueChange?: (v: [number, number]) => void };\n const [value, setValue] = useControllableState(\n rangeProps.value,\n rangeProps.defaultValue ?? [min, max] as [number, number],\n rangeProps.onValueChange,\n );\n\n const handleMin = (n: number) => {\n setValue([Math.min(n, value[1]), value[1]]);\n };\n\n const handleMax = (n: number) => {\n setValue([value[0], Math.max(n, value[0])]);\n };\n\n const leftPercent = ((value[0] - min) / (max - min)) * 100;\n const rightPercent = ((value[1] - min) / (max - min)) * 100;\n\n const slider = (\n <div className={cn(\"flex flex-col gap-1\", className)}>\n <div className=\"flex items-center gap-3\">\n <div className=\"relative w-full\">\n <div className=\"pointer-events-none absolute top-1/2 h-1.5 w-full -translate-y-1/2 rounded-full bg-zinc-200 dark:bg-zinc-700\" />\n <div\n className=\"pointer-events-none absolute top-1/2 h-1.5 -translate-y-1/2 rounded-full bg-blue-500\"\n style={{ left: `${leftPercent}%`, width: `${rightPercent - leftPercent}%` }}\n />\n <input\n ref={ref}\n type=\"range\"\n min={min}\n max={max}\n step={step}\n value={value[0]}\n disabled={disabled}\n onChange={(e) => handleMin(Number(e.target.value))}\n className={cn(\n \"pointer-events-none absolute w-full cursor-pointer appearance-none bg-transparent [&::-webkit-slider-thumb]:pointer-events-auto [&::-webkit-slider-thumb]:h-4 [&::-webkit-slider-thumb]:w-4 [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:bg-blue-600 [&::-webkit-slider-thumb]:shadow\",\n dirtyRingClasses(dirty),\n )}\n />\n <input\n type=\"range\"\n min={min}\n max={max}\n step={step}\n value={value[1]}\n disabled={disabled}\n onChange={(e) => handleMax(Number(e.target.value))}\n className=\"pointer-events-none absolute w-full cursor-pointer appearance-none bg-transparent [&::-webkit-slider-thumb]:pointer-events-auto [&::-webkit-slider-thumb]:h-4 [&::-webkit-slider-thumb]:w-4 [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:bg-blue-600 [&::-webkit-slider-thumb]:shadow\"\n />\n <div className=\"h-6\" />\n </div>\n {showValue && (\n <span className=\"min-w-[6ch] whitespace-nowrap text-right text-sm font-medium text-zinc-700 dark:text-zinc-300\">\n {value[0]}–{value[1]}\n </span>\n )}\n </div>\n {marks && marks.length > 0 && <SliderMarks marks={marks} min={min} max={max} />}\n </div>\n );\n\n if (label || error || description) {\n return (\n <Field label={label} description={description} error={error} required={required} htmlFor={id} size={size}>\n {slider}\n </Field>\n );\n }\n\n return slider;\n },\n);\n\nRangeSlider.displayName = \"RangeSlider\";\n\nfunction SliderMarks({\n marks,\n min,\n max,\n}: {\n marks: { value: number; label?: string }[];\n min: number;\n max: number;\n}) {\n return (\n <div className=\"relative h-5 w-full\">\n {marks.map((mark) => {\n const percent = ((mark.value - min) / (max - min)) * 100;\n return (\n <span\n key={mark.value}\n className=\"absolute -translate-x-1/2 text-xs text-zinc-500 dark:text-zinc-400\"\n style={{ left: `${percent}%` }}\n >\n {mark.label ?? mark.value}\n </span>\n );\n })}\n </div>\n );\n}\n","import { forwardRef, useId } from \"react\";\nimport { cn } from \"../../../utils/cn\";\nimport { useControllableState } from \"../../../hooks/use-controllable-state\";\nimport { Field } from \"../Field\";\nimport {\n dirtyClasses,\n errorClasses,\n inputBaseClasses,\n inputSizeClasses,\n} from \"../inputs.utils\";\nimport type { DatePickerProps } from \"./DatePicker.types\";\n\nexport const DatePicker = forwardRef<HTMLInputElement, DatePickerProps>(\n (props, ref) => {\n const {\n size = \"md\",\n dirty,\n error,\n label,\n description,\n required,\n disabled,\n className,\n id,\n name,\n min,\n max,\n includeTime,\n } = props;\n\n const autoId = useId();\n const pickerId = id ?? autoId;\n const inputType = includeTime ? \"datetime-local\" : \"date\";\n\n const inputClasses = cn(\n inputBaseClasses,\n inputSizeClasses[size],\n dirtyClasses(dirty),\n errorClasses(error),\n \"w-full\",\n );\n\n if (props.range) {\n return (\n <RangeDatePicker\n {...props}\n id={pickerId}\n inputType={inputType}\n inputClasses={inputClasses}\n ref={ref}\n />\n );\n }\n\n return (\n <SingleDatePicker\n {...props}\n range={false}\n id={pickerId}\n inputType={inputType}\n inputClasses={inputClasses}\n ref={ref}\n />\n );\n },\n);\n\nDatePicker.displayName = \"DatePicker\";\n\ninterface InternalProps {\n inputType: string;\n inputClasses: string;\n}\n\nconst SingleDatePicker = forwardRef<\n HTMLInputElement,\n DatePickerProps & { range?: false } & InternalProps\n>(\n (\n {\n size = \"md\",\n error,\n label,\n description,\n required,\n disabled,\n className,\n id,\n name,\n min,\n max,\n inputType,\n inputClasses,\n ...rest\n },\n ref,\n ) => {\n const singleProps = rest as {\n value?: string;\n defaultValue?: string;\n onValueChange?: (v: string) => void;\n };\n const [value, setValue] = useControllableState(\n singleProps.value,\n singleProps.defaultValue ?? \"\",\n singleProps.onValueChange,\n );\n\n const input = (\n <input\n ref={ref}\n id={id}\n type={inputType}\n name={name}\n min={min}\n max={max}\n value={value}\n disabled={disabled}\n required={required}\n onChange={(e) => setValue(e.target.value)}\n className={cn(inputClasses, className)}\n />\n );\n\n if (label || error || description) {\n return (\n <Field\n label={label}\n description={description}\n error={error}\n required={required}\n htmlFor={id}\n size={size}\n >\n {input}\n </Field>\n );\n }\n\n return input;\n },\n);\n\nSingleDatePicker.displayName = \"SingleDatePicker\";\n\nconst RangeDatePicker = forwardRef<\n HTMLInputElement,\n DatePickerProps & { range: true } & InternalProps\n>(\n (\n {\n size = \"md\",\n error,\n label,\n description,\n required,\n disabled,\n className,\n id,\n name,\n min,\n max,\n inputType,\n inputClasses,\n ...rest\n },\n ref,\n ) => {\n const rangeProps = rest as {\n value?: [string, string];\n defaultValue?: [string, string];\n onValueChange?: (v: [string, string]) => void;\n };\n const [value, setValue] = useControllableState(\n rangeProps.value,\n rangeProps.defaultValue ?? [\"\", \"\"] as [string, string],\n rangeProps.onValueChange,\n );\n\n const input = (\n <div className={cn(\"flex items-center gap-2\", className)}>\n <input\n ref={ref}\n id={id}\n type={inputType}\n name={name ? `${name}_start` : undefined}\n min={min}\n max={value[1] || max}\n value={value[0]}\n disabled={disabled}\n required={required}\n onChange={(e) => setValue([e.target.value, value[1]])}\n className={inputClasses}\n />\n <span className=\"text-sm text-zinc-500 dark:text-zinc-400\">to</span>\n <input\n type={inputType}\n name={name ? `${name}_end` : undefined}\n min={value[0] || min}\n max={max}\n value={value[1]}\n disabled={disabled}\n onChange={(e) => setValue([value[0], e.target.value])}\n className={inputClasses}\n />\n </div>\n );\n\n if (label || error || description) {\n return (\n <Field\n label={label}\n description={description}\n error={error}\n required={required}\n htmlFor={id}\n size={size}\n >\n {input}\n </Field>\n );\n }\n\n return input;\n },\n);\n\nRangeDatePicker.displayName = \"RangeDatePicker\";\n","import { createContext, useContext } from \"react\";\nimport type { CarouselContextValue } from \"./Carousel.types\";\n\nexport const CarouselContext = createContext<CarouselContextValue | null>(null);\n\nexport function useCarousel(): CarouselContextValue {\n const ctx = useContext(CarouselContext);\n if (!ctx) {\n throw new Error(\"Carousel compound components must be used within <Carousel>\");\n }\n return ctx;\n}\n","import { Children, useEffect } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { useCarousel } from \"./Carousel.context\";\nimport type { CarouselPanelsProps } from \"./Carousel.types\";\n\nexport function CarouselPanels({ children, className }: CarouselPanelsProps) {\n const { activeIndex, registerSlides } = useCarousel();\n const slides = Children.toArray(children);\n\n useEffect(() => {\n registerSlides(slides.length);\n }, [slides.length, registerSlides]);\n\n return (\n <div className={cn(\"relative overflow-hidden\", className)}>\n {slides[activeIndex]}\n </div>\n );\n}\n","import { cn } from \"../../utils/cn\";\nimport type { CarouselSlideProps } from \"./Carousel.types\";\n\nexport function CarouselSlide({ children, className }: CarouselSlideProps) {\n return <div className={cn(\"w-full\", className)}>{children}</div>;\n}\n","import { cn } from \"../../utils/cn\";\nimport { useCarousel } from \"./Carousel.context\";\nimport type { CarouselControlsProps } from \"./Carousel.types\";\n\nexport function CarouselControls({\n className,\n prevLabel = \"\\u2190\",\n nextLabel = \"\\u2192\",\n}: CarouselControlsProps) {\n const { prev, next, activeIndex, totalSlides } = useCarousel();\n\n return (\n <div className={cn(\"flex items-center gap-2\", className)}>\n <button\n type=\"button\"\n onClick={prev}\n disabled={activeIndex === 0}\n className=\"rounded-lg border px-3 py-1 text-sm disabled:opacity-50 dark:border-zinc-600\"\n >\n {prevLabel}\n </button>\n <button\n type=\"button\"\n onClick={next}\n disabled={activeIndex === totalSlides - 1}\n className=\"rounded-lg border px-3 py-1 text-sm disabled:opacity-50 dark:border-zinc-600\"\n >\n {nextLabel}\n </button>\n </div>\n );\n}\n","import { cn } from \"../../utils/cn\";\nimport { useCarousel } from \"./Carousel.context\";\nimport type { CarouselStepsProps } from \"./Carousel.types\";\n\nexport function CarouselSteps({ className }: CarouselStepsProps) {\n const { activeIndex, totalSlides, goTo } = useCarousel();\n\n return (\n <div className={cn(\"flex items-center gap-1.5\", className)}>\n {Array.from({ length: totalSlides }, (_, i) => (\n <button\n key={i}\n type=\"button\"\n onClick={() => goTo(i)}\n className={cn(\n \"h-2 w-2 rounded-full transition-colors\",\n i === activeIndex ? \"bg-zinc-800 dark:bg-white\" : \"bg-zinc-300 dark:bg-zinc-600\",\n )}\n aria-label={`Go to slide ${i + 1}`}\n />\n ))}\n </div>\n );\n}\n","import { useCallback, useMemo, useState } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { CarouselContext } from \"./Carousel.context\";\nimport { CarouselPanels } from \"./CarouselPanels\";\nimport { CarouselSlide } from \"./CarouselSlide\";\nimport { CarouselControls } from \"./CarouselControls\";\nimport { CarouselSteps } from \"./CarouselSteps\";\nimport type { CarouselProps, CarouselContextValue } from \"./Carousel.types\";\n\nfunction CarouselRoot({\n children,\n defaultIndex = 0,\n className,\n}: CarouselProps) {\n const [activeIndex, setActiveIndex] = useState(defaultIndex);\n const [totalSlides, setTotalSlides] = useState(0);\n\n const registerSlides = useCallback((count: number) => {\n setTotalSlides(count);\n }, []);\n\n const next = useCallback(\n () => setActiveIndex((i) => Math.min(i + 1, totalSlides - 1)),\n [totalSlides],\n );\n const prev = useCallback(\n () => setActiveIndex((i) => Math.max(i - 1, 0)),\n [],\n );\n const goTo = useCallback((index: number) => setActiveIndex(index), []);\n\n const ctx = useMemo<CarouselContextValue>(\n () => ({ activeIndex, totalSlides, next, prev, goTo, registerSlides }),\n [activeIndex, totalSlides, next, prev, goTo, registerSlides],\n );\n\n return (\n <CarouselContext.Provider value={ctx}>\n <div className={cn(\"relative\", className)}>{children}</div>\n </CarouselContext.Provider>\n );\n}\n\nexport const Carousel = Object.assign(CarouselRoot, {\n Panels: CarouselPanels,\n Slide: CarouselSlide,\n Controls: CarouselControls,\n Steps: CarouselSteps,\n});\n","import { cn } from \"../../utils/cn\";\nimport { useControllableState } from \"../../hooks/use-controllable-state\";\nimport type { Color } from \"../../utils/types\";\nimport type { ColorPickerProps } from \"./ColorPicker.types\";\n\nconst DEFAULT_COLORS: Color[] = [\n \"zinc\",\n \"red\",\n \"orange\",\n \"amber\",\n \"yellow\",\n \"lime\",\n \"green\",\n \"emerald\",\n \"teal\",\n \"cyan\",\n \"sky\",\n \"blue\",\n \"indigo\",\n \"violet\",\n \"purple\",\n \"fuchsia\",\n \"pink\",\n \"rose\",\n];\n\nconst COLOR_MAP: Record<Color, string> = {\n zinc: \"bg-zinc-500\",\n red: \"bg-red-500\",\n orange: \"bg-orange-500\",\n amber: \"bg-amber-500\",\n yellow: \"bg-yellow-500\",\n lime: \"bg-lime-500\",\n green: \"bg-green-500\",\n emerald: \"bg-emerald-500\",\n teal: \"bg-teal-500\",\n cyan: \"bg-cyan-500\",\n sky: \"bg-sky-500\",\n blue: \"bg-blue-500\",\n indigo: \"bg-indigo-500\",\n violet: \"bg-violet-500\",\n purple: \"bg-purple-500\",\n fuchsia: \"bg-fuchsia-500\",\n pink: \"bg-pink-500\",\n rose: \"bg-rose-500\",\n};\n\nexport function ColorPicker({\n value,\n defaultValue = \"blue\",\n onChange,\n colors = DEFAULT_COLORS,\n size = \"md\",\n className,\n}: ColorPickerProps) {\n const [selected, setSelected] = useControllableState(\n value,\n defaultValue,\n onChange,\n );\n\n const swatchSize = { sm: \"h-6 w-6\", md: \"h-8 w-8\", lg: \"h-10 w-10\" }[size];\n\n return (\n <div className={cn(\"flex flex-wrap gap-2\", className)}>\n {colors.map((color) => (\n <button\n key={color}\n type=\"button\"\n className={cn(\n swatchSize,\n \"rounded-full transition-transform\",\n COLOR_MAP[color],\n selected === color\n ? \"ring-2 ring-offset-2 ring-current scale-110\"\n : \"hover:scale-110\",\n )}\n onClick={() => setSelected(color)}\n aria-label={color}\n aria-pressed={selected === color}\n />\n ))}\n </div>\n );\n}\n","import { cn } from \"../../utils/cn\";\nimport { resolve } from \"../../data/emoji-utils\";\nimport type { EmojiProps } from \"./Emoji.types\";\n\nexport function Emoji({ name, emoji, size = \"md\", className }: EmojiProps) {\n const resolved = emoji ?? (name ? resolve(name) : undefined);\n\n if (!resolved) return null;\n\n const sizeClass = {\n sm: \"text-base\",\n md: \"text-2xl\",\n lg: \"text-4xl\",\n xl: \"text-6xl\",\n }[size];\n\n return (\n <span\n role=\"img\"\n aria-label={name ?? resolved}\n className={cn(\"inline-block leading-none\", sizeClass, className)}\n >\n {resolved}\n </span>\n );\n}\n","import { useState, useMemo } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { useControllableState } from \"../../hooks/use-controllable-state\";\nimport { EMOJI_DATA } from \"../../data/emoji-data\";\nimport { search } from \"../../data/emoji-utils\";\nimport type { EmojiSelectProps } from \"./EmojiSelect.types\";\n\nexport function EmojiSelect({\n value,\n defaultValue,\n onChange,\n placeholder = \"Search emojis...\",\n className,\n}: EmojiSelectProps) {\n const [selected, setSelected] = useControllableState(\n value,\n defaultValue ?? \"\",\n onChange,\n );\n const [open, setOpen] = useState(false);\n const [query, setQuery] = useState(\"\");\n\n const filtered = useMemo(() => {\n if (!query) return EMOJI_DATA;\n const results = search(query);\n return [{ category: \"Results\", emojis: results }];\n }, [query]);\n\n return (\n <div className={cn(\"relative inline-block\", className)}>\n <button\n type=\"button\"\n className=\"flex items-center gap-2 rounded-lg border border-zinc-300 px-3 py-2 text-sm dark:border-zinc-600\"\n onClick={() => setOpen(!open)}\n >\n {selected ? (\n <span className=\"text-xl\">{selected}</span>\n ) : (\n <span className=\"text-zinc-400\">Pick emoji</span>\n )}\n </button>\n\n {open && (\n <div className=\"absolute z-50 mt-1 w-72 rounded-lg border border-zinc-200 bg-white p-2 shadow-lg dark:border-zinc-700 dark:bg-zinc-800 fancy-fade-in\">\n <input\n type=\"text\"\n value={query}\n onChange={(e) => setQuery(e.target.value)}\n placeholder={placeholder}\n className=\"mb-2 w-full rounded-md border border-zinc-200 px-2 py-1 text-sm dark:border-zinc-600 dark:bg-zinc-700\"\n autoFocus\n />\n <div className=\"max-h-48 overflow-y-auto\">\n {filtered.map((group) => (\n <div key={group.category}>\n <div className=\"px-1 py-1 text-xs font-semibold text-zinc-500 uppercase\">\n {group.category}\n </div>\n <div className=\"flex flex-wrap\">\n {group.emojis.map((emoji, i) => (\n <button\n key={`${emoji}-${i}`}\n type=\"button\"\n className=\"p-1 text-xl hover:bg-zinc-100 rounded dark:hover:bg-zinc-700\"\n onClick={() => {\n setSelected(emoji);\n setOpen(false);\n setQuery(\"\");\n }}\n >\n {emoji}\n </button>\n ))}\n </div>\n </div>\n ))}\n </div>\n </div>\n )}\n </div>\n );\n}\n","import { createContext, useContext } from \"react\";\nimport type { TableContextValue } from \"./Table.types\";\n\nexport const TableContext = createContext<TableContextValue | null>(null);\n\nexport function useTable(): TableContextValue {\n const ctx = useContext(TableContext);\n if (!ctx) {\n throw new Error(\"Table compound components must be used within <Table>\");\n }\n return ctx;\n}\n","import { cn } from \"../../utils/cn\";\nimport type { TableHeadProps } from \"./Table.types\";\n\nexport function TableHead({ children, className }: TableHeadProps) {\n return <thead className={cn(\"border-b border-zinc-200 dark:border-zinc-700\", className)}>{children}</thead>;\n}\n","import { cn } from \"../../utils/cn\";\nimport type { TableBodyProps } from \"./Table.types\";\n\nexport function TableBody({ children, className }: TableBodyProps) {\n return <tbody className={cn(\"divide-y divide-zinc-100 dark:divide-zinc-800\", className)}>{children}</tbody>;\n}\n","import { cn } from \"../../utils/cn\";\nimport type { TableRowProps } from \"./Table.types\";\n\nexport function TableRow({ children, className, onClick }: TableRowProps) {\n return (\n <tr\n className={cn(\n \"transition-colors hover:bg-zinc-50 dark:hover:bg-zinc-800/50\",\n onClick && \"cursor-pointer\",\n className,\n )}\n onClick={onClick}\n >\n {children}\n </tr>\n );\n}\n","import { cn } from \"../../utils/cn\";\nimport type { TableCellProps } from \"./Table.types\";\n\nexport function TableCell({ children, className, header }: TableCellProps) {\n const Tag = header ? \"th\" : \"td\";\n return (\n <Tag\n className={cn(\n \"px-4 py-3 text-sm\",\n header && \"text-left font-medium text-zinc-500 dark:text-zinc-400\",\n className,\n )}\n >\n {children}\n </Tag>\n );\n}\n","import { cn } from \"../../utils/cn\";\nimport { useTable } from \"./Table.context\";\nimport type { TableColumnProps } from \"./Table.types\";\n\nexport function TableColumn({ label, sortKey, className }: TableColumnProps) {\n const { sortKey: currentSort, sortDir, toggleSort } = useTable();\n const isSorted = sortKey && currentSort === sortKey;\n\n return (\n <th\n className={cn(\n \"px-4 py-3 text-left text-sm font-medium text-zinc-500 dark:text-zinc-400\",\n sortKey && \"cursor-pointer select-none\",\n className,\n )}\n onClick={sortKey ? () => toggleSort(sortKey) : undefined}\n >\n <span className=\"inline-flex items-center gap-1\">\n {label}\n {isSorted && (\n <span className=\"text-xs\">{sortDir === \"asc\" ? \"\\u25B2\" : \"\\u25BC\"}</span>\n )}\n </span>\n </th>\n );\n}\n","import { cn } from \"../../utils/cn\";\nimport { useTable } from \"./Table.context\";\nimport type { TablePaginationProps } from \"./Table.types\";\n\nexport function TablePagination({\n className,\n total,\n pageSize = 10,\n}: TablePaginationProps) {\n const { page, setPage } = useTable();\n const totalPages = Math.ceil(total / pageSize);\n\n if (totalPages <= 1) return null;\n\n return (\n <div className={cn(\"flex items-center justify-between px-4 py-3 text-sm\", className)}>\n <span className=\"text-zinc-500\">\n Page {page + 1} of {totalPages}\n </span>\n <div className=\"flex gap-1\">\n <button\n type=\"button\"\n disabled={page === 0}\n onClick={() => setPage(page - 1)}\n className=\"rounded border px-2 py-1 disabled:opacity-50 dark:border-zinc-600\"\n >\n Prev\n </button>\n <button\n type=\"button\"\n disabled={page >= totalPages - 1}\n onClick={() => setPage(page + 1)}\n className=\"rounded border px-2 py-1 disabled:opacity-50 dark:border-zinc-600\"\n >\n Next\n </button>\n </div>\n </div>\n );\n}\n","import { cn } from \"../../utils/cn\";\nimport { useTable } from \"./Table.context\";\nimport type { TableSearchProps } from \"./Table.types\";\n\nexport function TableSearch({\n className,\n placeholder = \"Search...\",\n}: TableSearchProps) {\n const { searchQuery, setSearchQuery } = useTable();\n\n return (\n <input\n type=\"text\"\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n placeholder={placeholder}\n className={cn(\n \"rounded-lg border border-zinc-200 px-3 py-2 text-sm dark:border-zinc-600 dark:bg-zinc-800\",\n className,\n )}\n />\n );\n}\n","import { cn } from \"../../utils/cn\";\nimport type { TableTrayProps } from \"./Table.types\";\n\nexport function TableTray({ children, className }: TableTrayProps) {\n return (\n <div className={cn(\"flex items-center justify-between px-4 py-3\", className)}>\n {children}\n </div>\n );\n}\n","import { useCallback, useMemo, useState } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { TableContext } from \"./Table.context\";\nimport { TableHead } from \"./TableHead\";\nimport { TableBody } from \"./TableBody\";\nimport { TableRow } from \"./TableRow\";\nimport { TableCell } from \"./TableCell\";\nimport { TableColumn } from \"./TableColumn\";\nimport { TablePagination } from \"./TablePagination\";\nimport { TableSearch } from \"./TableSearch\";\nimport { TableTray } from \"./TableTray\";\nimport type { TableProps, TableContextValue } from \"./Table.types\";\n\nfunction TableRoot({ children, className }: TableProps) {\n const [sortKey, setSortKey] = useState<string | null>(null);\n const [sortDir, setSortDir] = useState<\"asc\" | \"desc\">(\"asc\");\n const [page, setPage] = useState(0);\n const [searchQuery, setSearchQuery] = useState(\"\");\n\n const toggleSort = useCallback(\n (key: string) => {\n if (sortKey === key) {\n setSortDir((d) => (d === \"asc\" ? \"desc\" : \"asc\"));\n } else {\n setSortKey(key);\n setSortDir(\"asc\");\n }\n },\n [sortKey],\n );\n\n const ctx = useMemo<TableContextValue>(\n () => ({\n sortKey,\n sortDir,\n toggleSort,\n page,\n setPage,\n pageSize: 10,\n totalRows: 0,\n searchQuery,\n setSearchQuery,\n }),\n [sortKey, sortDir, toggleSort, page, searchQuery],\n );\n\n return (\n <TableContext.Provider value={ctx}>\n <div className={cn(\"overflow-hidden rounded-lg border border-zinc-200 dark:border-zinc-700\", className)}>\n {children}\n </div>\n </TableContext.Provider>\n );\n}\n\nexport const Table = Object.assign(TableRoot, {\n Head: TableHead,\n Body: TableBody,\n Row: TableRow,\n Cell: TableCell,\n Column: TableColumn,\n Pagination: TablePagination,\n Search: TableSearch,\n Tray: TableTray,\n});\n"]}
|