react-country-kit 1.2.0 β 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/CountryMultiSelect/CountryMultiSelect.d.ts +0 -1
- package/dist/components/CountryPicker/CountryPicker.d.ts +0 -1
- package/dist/components/CurrencyMultiSelect/CurrencyMultiSelect.d.ts +0 -1
- package/dist/components/CurrencyPicker/CurrencyPicker.d.ts +0 -1
- package/dist/components/DivisionPicker/DivisionPicker.d.ts +0 -1
- package/dist/components/LanguagePicker/LanguagePicker.d.ts +0 -1
- package/dist/components/PhoneInput/PhoneInput.d.ts +0 -1
- package/dist/components/TimezonePicker/TimezonePicker.d.ts +0 -1
- package/dist/components/shared/Flag.d.ts +0 -1
- package/dist/components/shared/PickerBase.d.ts +0 -1
- package/dist/react-country-kit.cjs.js +3 -2
- package/dist/react-country-kit.cjs.js.map +1 -1
- package/dist/react-country-kit.css +2 -0
- package/dist/react-country-kit.d.ts +1 -0
- package/dist/react-country-kit.es.js +993 -749
- package/dist/react-country-kit.es.js.map +1 -1
- package/package.json +10 -10
- package/dist/style.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-country-kit.es.js","sources":["../src/components/shared/SearchInput.tsx","../src/components/shared/Flag.tsx","../src/components/CountryMultiSelect/CountryMultiSelect.tsx","../src/components/shared/PickerBase.tsx","../src/components/CountryPicker/CountryPicker.tsx","../src/components/CurrencyMultiSelect/CurrencyMultiSelect.tsx","../src/components/CurrencyPicker/CurrencyPicker.tsx","../src/components/DivisionPicker/DivisionPicker.tsx","../src/components/LanguagePicker/LanguagePicker.tsx","../src/components/PhoneInput/PhoneInput.tsx","../src/components/TimezonePicker/TimezonePicker.tsx"],"sourcesContent":["import React, { useRef, useEffect } from 'react';\n\ninterface SearchInputProps {\n value: string;\n onChange: (value: string) => void;\n placeholder?: string;\n autoFocus?: boolean;\n}\n\nexport function SearchInput({ value, onChange, placeholder = 'Search...', autoFocus = true }: SearchInputProps) {\n const inputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n if (autoFocus) {\n setTimeout(() => inputRef.current?.focus(), 50);\n }\n }, [autoFocus]);\n\n return (\n <div className=\"rck-search-wrapper\">\n <div className=\"rck-search\">\n <svg className=\"rck-search-icon\" viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <circle cx=\"8.5\" cy=\"8.5\" r=\"5.5\" />\n <path d=\"M17 17l-4-4\" strokeLinecap=\"round\" />\n </svg>\n <input\n ref={inputRef}\n type=\"text\"\n value={value}\n onChange={(e) => onChange(e.target.value)}\n placeholder={placeholder}\n aria-label=\"Search\"\n />\n {value && (\n <button\n style={{ background: 'none', border: 'none', cursor: 'pointer', color: 'var(--rck-text-placeholder)', padding: 0, display: 'flex' }}\n onClick={() => onChange('')}\n aria-label=\"Clear search\"\n type=\"button\"\n >\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path d=\"M6 6l8 8M14 6l-8 8\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" fill=\"none\" />\n </svg>\n </button>\n )}\n </div>\n </div>\n );\n}\n","import React from 'react';\n\nexport interface FlagProps {\n iso2: string;\n flag?: string;\n flagUrl?: string;\n className?: string;\n alt?: string;\n mode?: 'emoji' | 'image' | 'auto';\n}\n\n/**\n * Flag component that handles both emoji and image flags.\n * 'auto' mode uses emoji by default but provides image as an alternative.\n */\nexport const Flag: React.FC<FlagProps> = ({ \n iso2, \n flag, \n flagUrl, \n className = '', \n alt = '', \n mode = 'auto' \n}) => {\n const url = flagUrl || `https://flagcdn.com/w320/${iso2.toLowerCase()}.png`;\n\n if (mode === 'image') {\n return (\n <img \n src={url} \n alt={alt || iso2} \n className={`rck-flag-img ${className}`}\n loading=\"lazy\"\n />\n );\n }\n\n // For 'emoji' or 'auto', we can use a wrapper that might handle Windows specifically\n // or just render the emoji. \n // However, since Windows doesn't render emoji flags well, \n // many libraries prefer using images for consistent look.\n \n return (\n <span className={`rck-flag-wrapper ${className}`} title={alt || iso2}>\n {flag || iso2}\n </span>\n );\n};\n","import React, { useRef, useEffect } from 'react';\nimport type { CountryMultiSelectProps, Country } from 'react-country-kit-core';\nimport { useMultiSelect } from 'react-country-kit-core';\nimport { getAllCountries, searchCountries } from 'react-country-kit-core';\nimport { SearchInput } from '../shared/SearchInput';\nimport { Flag } from '../shared/Flag';\nimport '../../styles/picker.css';\n\nconst MAX_VISIBLE_CHIPS = 3;\n\nfunction ChipCheckIcon() {\n return (\n <svg viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <polyline points=\"4 10 8 14 16 6\" />\n </svg>\n );\n}\n\nexport function CountryMultiSelect({\n value,\n onChange,\n placeholder = 'Select countries...',\n maxItems,\n showFlags = true,\n searchable = true,\n disabled = false,\n className,\n label,\n}: CountryMultiSelectProps) {\n const multi = useMultiSelect<Country>(\n getAllCountries(),\n (items, q) => q ? searchCountries(q) : items,\n (c) => c.iso2,\n value,\n onChange,\n maxItems\n );\n\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!multi.isOpen) return;\n const handler = (e: MouseEvent) => {\n if (wrapperRef.current && !wrapperRef.current.contains(e.target as Node)) multi.close();\n };\n document.addEventListener('mousedown', handler);\n return () => document.removeEventListener('mousedown', handler);\n }, [multi.isOpen, multi.close]);\n\n useEffect(() => {\n if (!multi.isOpen) return;\n const handler = (e: KeyboardEvent) => { if (e.key === 'Escape') multi.close(); };\n document.addEventListener('keydown', handler);\n return () => document.removeEventListener('keydown', handler);\n }, [multi.isOpen, multi.close]);\n\n const visibleChips = value.slice(0, MAX_VISIBLE_CHIPS);\n const overflow = value.length - MAX_VISIBLE_CHIPS;\n\n return (\n <div ref={wrapperRef} className={`rck-picker${className ? ` ${className}` : ''}`}>\n {label && <span className=\"rck-label\">{label}</span>}\n\n <button\n type=\"button\"\n className={`rck-multiselect-trigger${multi.isOpen ? ' rck-open' : ''}`}\n disabled={disabled}\n onClick={multi.toggle}\n aria-haspopup=\"listbox\"\n aria-expanded={multi.isOpen}\n >\n <div className=\"rck-chips-area\">\n {value.length === 0 ? (\n <span style={{ color: 'var(--rck-text-placeholder)', fontSize: '0.9375rem' }}>{placeholder}</span>\n ) : (\n <>\n {visibleChips.map((c) => (\n <span key={c.iso2} className=\"rck-chip\">\n {showFlags && (\n <span className=\"rck-flag\">\n <Flag iso2={c.iso2} flag={c.flag} flagUrl={c.flag_url} />\n </span>\n )}\n <span className=\"rck-chip-label\">{c.name}</span>\n <button\n type=\"button\"\n className=\"rck-chip-remove\"\n onClick={(e) => { e.stopPropagation(); multi.removeItem(c); onChange(value.filter((x) => x.iso2 !== c.iso2)); }}\n aria-label={`Remove ${c.name}`}\n >\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\" strokeLinecap=\"round\">\n <line x1=\"5\" y1=\"5\" x2=\"15\" y2=\"15\" /><line x1=\"15\" y1=\"5\" x2=\"5\" y2=\"15\" />\n </svg>\n </button>\n </span>\n ))}\n {overflow > 0 && (\n <span className=\"rck-chip-overflow\">+{overflow} more</span>\n )}\n </>\n )}\n </div>\n {value.length > 0 && (\n <button\n type=\"button\"\n className=\"rck-multiselect-clear\"\n onClick={(e) => { e.stopPropagation(); multi.clearAll(); onChange([]); }}\n aria-label=\"Clear all\"\n >\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\">\n <line x1=\"5\" y1=\"5\" x2=\"15\" y2=\"15\" /><line x1=\"15\" y1=\"5\" x2=\"5\" y2=\"15\" />\n </svg>\n </button>\n )}\n <svg className=\"rck-chevron\" viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\">\n <polyline points=\"5 8 10 13 15 8\" />\n </svg>\n </button>\n\n {multi.isOpen && (\n <div className=\"rck-dropdown\" role=\"listbox\" aria-multiselectable=\"true\">\n {searchable && (\n <SearchInput value={multi.searchQuery} onChange={multi.setSearchQuery} placeholder=\"Search countries...\" />\n )}\n <ul className=\"rck-list\">\n {multi.filteredItems.length === 0 ? (\n <li className=\"rck-empty\"><span className=\"rck-empty-icon\">π</span><span>No countries found</span></li>\n ) : (\n multi.filteredItems.map((country) => {\n const selected = multi.isSelected(country);\n return (\n <li\n key={country.iso2}\n role=\"option\"\n aria-selected={selected}\n className={`rck-item${selected ? ' rck-item-selected' : ''}`}\n onClick={() => multi.toggleItem(country)}\n tabIndex={0}\n onKeyDown={(e) => e.key === 'Enter' && multi.toggleItem(country)}\n >\n <div className={selected ? 'rck-item-check-multi' : 'rck-item-check-empty'}>\n {selected && <ChipCheckIcon />}\n </div>\n {showFlags && (\n <span className=\"rck-item-flag\">\n <Flag iso2={country.iso2} flag={country.flag} flagUrl={country.flag_url} />\n </span>\n )}\n <div className=\"rck-item-main\">\n <span className=\"rck-item-name\">{country.name}</span>\n <span className=\"rck-item-sub\">{country.iso3} Β· +{country.phone_code}</span>\n </div>\n </li>\n );\n })\n )}\n </ul>\n </div>\n )}\n </div>\n );\n}\n","import React, { useEffect, useRef } from 'react';\n\ninterface PickerBaseProps {\n isOpen: boolean;\n onClose: () => void;\n onToggle: () => void;\n label?: string;\n disabled?: boolean;\n className?: string;\n triggerContent: React.ReactNode;\n children: React.ReactNode;\n id?: string;\n}\n\nconst ChevronIcon = () => (\n <svg\n className=\"rck-chevron\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <polyline points=\"5 8 10 13 15 8\" />\n </svg>\n);\n\nexport function PickerBase({\n isOpen,\n onClose,\n onToggle,\n label,\n disabled,\n className,\n triggerContent,\n children,\n id,\n}: PickerBaseProps) {\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n // Close on outside click\n useEffect(() => {\n if (!isOpen) return;\n const handler = (e: MouseEvent) => {\n if (wrapperRef.current && !wrapperRef.current.contains(e.target as Node)) {\n onClose();\n }\n };\n document.addEventListener('mousedown', handler);\n return () => document.removeEventListener('mousedown', handler);\n }, [isOpen, onClose]);\n\n // Close on Escape\n useEffect(() => {\n if (!isOpen) return;\n const handler = (e: KeyboardEvent) => {\n if (e.key === 'Escape') onClose();\n };\n document.addEventListener('keydown', handler);\n return () => document.removeEventListener('keydown', handler);\n }, [isOpen, onClose]);\n\n return (\n <div ref={wrapperRef} className={`rck-picker${className ? ` ${className}` : ''}`}>\n {label && (\n <span className=\"rck-label\" id={id ? `${id}-label` : undefined}>\n {label}\n </span>\n )}\n <button\n type=\"button\"\n className={`rck-trigger${isOpen ? ' rck-open' : ''}`}\n disabled={disabled}\n aria-haspopup=\"listbox\"\n aria-expanded={isOpen}\n aria-labelledby={id && label ? `${id}-label` : undefined}\n id={id}\n onClick={onToggle}\n >\n {triggerContent}\n <ChevronIcon />\n </button>\n\n {isOpen && (\n <div className=\"rck-dropdown\" role=\"listbox\">\n {children}\n </div>\n )}\n </div>\n );\n}\n","import React from 'react';\nimport type { CountryPickerProps } from 'react-country-kit-core';\nimport { useCountryPicker } from 'react-country-kit-core';\nimport { PickerBase } from '../shared/PickerBase';\nimport { SearchInput } from '../shared/SearchInput';\nimport { Flag } from '../shared/Flag';\nimport '../../styles/picker.css';\n\nconst CheckIcon = () => (\n <svg className=\"rck-item-check\" viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <polyline points=\"4 10 8 14 16 6\" />\n </svg>\n);\n\nexport function CountryPicker({\n value,\n onChange,\n placeholder = 'Select a country',\n searchable = true,\n showFlag = true,\n showPhoneCode = false,\n disabled = false,\n className,\n label,\n}: CountryPickerProps) {\n const picker = useCountryPicker(value, onChange);\n\n const triggerContent = (\n <div className=\"rck-trigger-content\">\n {value ? (\n <>\n {showFlag && (\n <span className=\"rck-flag\">\n <Flag iso2={value.iso2} flag={value.flag} flagUrl={value.flag_url} />\n </span>\n )}\n <span className=\"rck-trigger-text\">{value.name}</span>\n {showPhoneCode && <span className=\"rck-badge\">+{value.phone_code}</span>}\n </>\n ) : (\n <span className=\"rck-trigger-text rck-placeholder\">{placeholder}</span>\n )}\n </div>\n );\n\n return (\n <PickerBase\n isOpen={picker.isOpen}\n onClose={picker.close}\n onToggle={picker.toggle}\n label={label}\n disabled={disabled}\n className={className}\n triggerContent={triggerContent}\n id=\"rck-country-picker\"\n >\n {searchable && (\n <SearchInput\n value={picker.searchQuery}\n onChange={picker.setSearchQuery}\n placeholder=\"Search country...\"\n />\n )}\n <ul className=\"rck-list\" role=\"listbox\" aria-label=\"Countries\">\n {picker.filteredItems.length === 0 ? (\n <li className=\"rck-empty\">\n <span className=\"rck-empty-icon\">π</span>\n <span>No countries found</span>\n </li>\n ) : (\n picker.filteredItems.map((country) => {\n const isSelected = value?.iso2 === country.iso2;\n return (\n <li\n key={country.iso2}\n role=\"option\"\n aria-selected={isSelected}\n className={`rck-item${isSelected ? ' rck-item-selected' : ''}`}\n onClick={() => picker.selectItem(country)}\n tabIndex={0}\n onKeyDown={(e) => e.key === 'Enter' && picker.selectItem(country)}\n >\n {showFlag && (\n <span className=\"rck-item-flag\">\n <Flag iso2={country.iso2} flag={country.flag} flagUrl={country.flag_url} />\n </span>\n )}\n <div className=\"rck-item-main\">\n <span className=\"rck-item-name\">{country.name}</span>\n <span className=\"rck-item-sub\">{country.iso3} Β· {country.division_type}</span>\n </div>\n <div className=\"rck-item-right\">\n {showPhoneCode && (\n <span className=\"rck-item-phone\">+{country.phone_code}</span>\n )}\n {isSelected && <CheckIcon />}\n </div>\n </li>\n );\n })\n )}\n </ul>\n </PickerBase>\n );\n}\n","import React, { useRef, useEffect } from 'react';\nimport type { CurrencyMultiSelectProps, Currency } from 'react-country-kit-core';\nimport { useMultiSelect } from 'react-country-kit-core';\nimport { getAllCurrencies, searchCurrencies } from 'react-country-kit-core';\nimport { SearchInput } from '../shared/SearchInput';\nimport '../../styles/picker.css';\n\nconst MAX_VISIBLE_CHIPS = 3;\n\nfunction ChipCheckIcon() {\n return (\n <svg viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <polyline points=\"4 10 8 14 16 6\" />\n </svg>\n );\n}\n\nexport function CurrencyMultiSelect({\n value,\n onChange,\n placeholder = 'Select currencies...',\n maxItems,\n showSymbol = true,\n searchable = true,\n disabled = false,\n className,\n label,\n}: CurrencyMultiSelectProps) {\n const multi = useMultiSelect<Currency>(\n getAllCurrencies(),\n (items, q) => q ? searchCurrencies(q) : items,\n (c) => c.code,\n value,\n onChange,\n maxItems\n );\n\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!multi.isOpen) return;\n const handler = (e: MouseEvent) => {\n if (wrapperRef.current && !wrapperRef.current.contains(e.target as Node)) multi.close();\n };\n document.addEventListener('mousedown', handler);\n return () => document.removeEventListener('mousedown', handler);\n }, [multi.isOpen, multi.close]);\n\n useEffect(() => {\n if (!multi.isOpen) return;\n const handler = (e: KeyboardEvent) => { if (e.key === 'Escape') multi.close(); };\n document.addEventListener('keydown', handler);\n return () => document.removeEventListener('keydown', handler);\n }, [multi.isOpen, multi.close]);\n\n const visibleChips = value.slice(0, MAX_VISIBLE_CHIPS);\n const overflow = value.length - MAX_VISIBLE_CHIPS;\n\n return (\n <div ref={wrapperRef} className={`rck-picker${className ? ` ${className}` : ''}`}>\n {label && <span className=\"rck-label\">{label}</span>}\n\n <button\n type=\"button\"\n className={`rck-multiselect-trigger${multi.isOpen ? ' rck-open' : ''}`}\n disabled={disabled}\n onClick={multi.toggle}\n aria-haspopup=\"listbox\"\n aria-expanded={multi.isOpen}\n >\n <div className=\"rck-chips-area\">\n {value.length === 0 ? (\n <span style={{ color: 'var(--rck-text-placeholder)', fontSize: '0.9375rem' }}>{placeholder}</span>\n ) : (\n <>\n {visibleChips.map((c) => (\n <span key={c.code} className=\"rck-chip\">\n {showSymbol && <span>{c.symbol}</span>}\n <span className=\"rck-chip-label\">{c.code}</span>\n <button\n type=\"button\"\n className=\"rck-chip-remove\"\n onClick={(e) => { e.stopPropagation(); onChange(value.filter((x) => x.code !== c.code)); }}\n aria-label={`Remove ${c.code}`}\n >\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\" strokeLinecap=\"round\">\n <line x1=\"5\" y1=\"5\" x2=\"15\" y2=\"15\" /><line x1=\"15\" y1=\"5\" x2=\"5\" y2=\"15\" />\n </svg>\n </button>\n </span>\n ))}\n {overflow > 0 && <span className=\"rck-chip-overflow\">+{overflow} more</span>}\n </>\n )}\n </div>\n {value.length > 0 && (\n <button\n type=\"button\"\n className=\"rck-multiselect-clear\"\n onClick={(e) => { e.stopPropagation(); multi.clearAll(); onChange([]); }}\n aria-label=\"Clear all\"\n >\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\">\n <line x1=\"5\" y1=\"5\" x2=\"15\" y2=\"15\" /><line x1=\"15\" y1=\"5\" x2=\"5\" y2=\"15\" />\n </svg>\n </button>\n )}\n <svg className=\"rck-chevron\" viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\">\n <polyline points=\"5 8 10 13 15 8\" />\n </svg>\n </button>\n\n {multi.isOpen && (\n <div className=\"rck-dropdown\" role=\"listbox\" aria-multiselectable=\"true\">\n {searchable && (\n <SearchInput value={multi.searchQuery} onChange={multi.setSearchQuery} placeholder=\"Search currencies...\" />\n )}\n <ul className=\"rck-list\">\n {multi.filteredItems.length === 0 ? (\n <li className=\"rck-empty\"><span className=\"rck-empty-icon\">π°</span><span>No currencies found</span></li>\n ) : (\n multi.filteredItems.map((currency) => {\n const selected = multi.isSelected(currency);\n return (\n <li\n key={currency.code}\n role=\"option\"\n aria-selected={selected}\n className={`rck-item${selected ? ' rck-item-selected' : ''}`}\n onClick={() => multi.toggleItem(currency)}\n tabIndex={0}\n onKeyDown={(e) => e.key === 'Enter' && multi.toggleItem(currency)}\n >\n <div className={selected ? 'rck-item-check-multi' : 'rck-item-check-empty'}>\n {selected && <ChipCheckIcon />}\n </div>\n {showSymbol && <span className=\"rck-item-symbol\">{currency.symbol}</span>}\n <div className=\"rck-item-main\">\n <span className=\"rck-item-name\">{currency.name}</span>\n <span className=\"rck-item-sub\">{currency.code}</span>\n </div>\n </li>\n );\n })\n )}\n </ul>\n </div>\n )}\n </div>\n );\n}\n","import React from 'react';\nimport type { CurrencyPickerProps } from 'react-country-kit-core';\nimport { useCurrencyPicker } from 'react-country-kit-core';\nimport { PickerBase } from '../shared/PickerBase';\nimport { SearchInput } from '../shared/SearchInput';\nimport '../../styles/picker.css';\n\nconst CheckIcon = () => (\n <svg className=\"rck-item-check\" viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <polyline points=\"4 10 8 14 16 6\" />\n </svg>\n);\n\nexport function CurrencyPicker({\n value,\n onChange,\n placeholder = 'Select a currency',\n searchable = true,\n showSymbol = true,\n disabled = false,\n className,\n label,\n}: CurrencyPickerProps) {\n const picker = useCurrencyPicker(value, onChange);\n\n const triggerContent = (\n <div className=\"rck-trigger-content\">\n {value ? (\n <>\n {showSymbol && <span className=\"rck-item-symbol\">{value.symbol}</span>}\n <span className=\"rck-trigger-text\">{value.code} β {value.name}</span>\n </>\n ) : (\n <span className=\"rck-trigger-text rck-placeholder\">{placeholder}</span>\n )}\n </div>\n );\n\n return (\n <PickerBase\n isOpen={picker.isOpen}\n onClose={picker.close}\n onToggle={picker.toggle}\n label={label}\n disabled={disabled}\n className={className}\n triggerContent={triggerContent}\n id=\"rck-currency-picker\"\n >\n {searchable && (\n <SearchInput\n value={picker.searchQuery}\n onChange={picker.setSearchQuery}\n placeholder=\"Search currency...\"\n />\n )}\n <ul className=\"rck-list\" role=\"listbox\" aria-label=\"Currencies\">\n {picker.filteredItems.length === 0 ? (\n <li className=\"rck-empty\">\n <span className=\"rck-empty-icon\">π°</span>\n <span>No currencies found</span>\n </li>\n ) : (\n picker.filteredItems.map((currency) => {\n const isSelected = value?.code === currency.code;\n return (\n <li\n key={currency.code}\n role=\"option\"\n aria-selected={isSelected}\n className={`rck-item${isSelected ? ' rck-item-selected' : ''}`}\n onClick={() => picker.selectItem(currency)}\n tabIndex={0}\n onKeyDown={(e) => e.key === 'Enter' && picker.selectItem(currency)}\n >\n {showSymbol && <span className=\"rck-item-symbol\">{currency.symbol}</span>}\n <div className=\"rck-item-main\">\n <span className=\"rck-item-name\">{currency.name}</span>\n <span className=\"rck-item-sub\">{currency.code}</span>\n </div>\n {isSelected && <CheckIcon />}\n </li>\n );\n })\n )}\n </ul>\n </PickerBase>\n );\n}\n","import React from 'react';\nimport type { DivisionPickerProps } from 'react-country-kit-core';\nimport { useDivisionPicker } from 'react-country-kit-core';\nimport { PickerBase } from '../shared/PickerBase';\nimport { SearchInput } from '../shared/SearchInput';\nimport '../../styles/picker.css';\n\nconst CheckIcon = () => (\n <svg className=\"rck-item-check\" viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <polyline points=\"4 10 8 14 16 6\" />\n </svg>\n);\n\nexport function DivisionPicker({\n countryIso2,\n value,\n onChange,\n placeholder = 'Select a division',\n searchable = true,\n disabled = false,\n className,\n label,\n}: DivisionPickerProps) {\n const picker = useDivisionPicker(countryIso2, value, onChange);\n\n const triggerContent = (\n <div className=\"rck-trigger-content\">\n {value ? (\n <>\n <span className=\"rck-trigger-text\">{value.name}</span>\n <span className=\"rck-badge\">{value.iso2}</span>\n </>\n ) : (\n <span className=\"rck-trigger-text rck-placeholder\">{placeholder}</span>\n )}\n </div>\n );\n\n const isDisabled = disabled || !countryIso2;\n\n return (\n <PickerBase\n isOpen={picker.isOpen}\n onClose={picker.close}\n onToggle={picker.toggle}\n label={label}\n disabled={isDisabled}\n className={className}\n triggerContent={triggerContent}\n id=\"rck-division-picker\"\n >\n {searchable && (\n <SearchInput\n value={picker.searchQuery}\n onChange={picker.setSearchQuery}\n placeholder=\"Search division...\"\n />\n )}\n <ul className=\"rck-list\" role=\"listbox\" aria-label=\"Divisions\">\n {picker.filteredItems.length === 0 ? (\n <li className=\"rck-empty\">\n <span className=\"rck-empty-icon\">πΊοΈ</span>\n <span>No divisions found</span>\n </li>\n ) : (\n picker.filteredItems.map((division) => {\n const isSelected = value?.iso2 === division.iso2 && value?.name === division.name;\n return (\n <li\n key={`${division.iso2}-${division.name}`}\n role=\"option\"\n aria-selected={isSelected}\n className={`rck-item${isSelected ? ' rck-item-selected' : ''}`}\n onClick={() => picker.selectItem(division)}\n tabIndex={0}\n onKeyDown={(e) => e.key === 'Enter' && picker.selectItem(division)}\n >\n <div className=\"rck-item-main\">\n <span className=\"rck-item-name\">{division.name}</span>\n <span className=\"rck-item-sub\">{division.timezone}</span>\n </div>\n <div className=\"rck-item-right\">\n <span className=\"rck-badge\">{division.iso2}</span>\n {isSelected && <CheckIcon />}\n </div>\n </li>\n );\n })\n )}\n </ul>\n </PickerBase>\n );\n}\n","import React from 'react';\nimport type { LanguagePickerProps } from 'react-country-kit-core';\nimport { useLanguagePicker } from 'react-country-kit-core';\nimport { PickerBase } from '../shared/PickerBase';\nimport { SearchInput } from '../shared/SearchInput';\nimport '../../styles/picker.css';\n\nconst CheckIcon = () => (\n <svg className=\"rck-item-check\" viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <polyline points=\"4 10 8 14 16 6\" />\n </svg>\n);\n\nexport function LanguagePicker({\n value,\n onChange,\n placeholder = 'Select a language',\n searchable = true,\n showNativeName = true,\n disabled = false,\n className,\n label,\n}: LanguagePickerProps) {\n const picker = useLanguagePicker(value, onChange);\n\n const triggerContent = (\n <div className=\"rck-trigger-content\">\n {value ? (\n <>\n <span className=\"rck-trigger-text\">{value.english_name}</span>\n {showNativeName && value.native_name !== value.english_name && (\n <span className=\"rck-native-name\">{value.native_name}</span>\n )}\n </>\n ) : (\n <span className=\"rck-trigger-text rck-placeholder\">{placeholder}</span>\n )}\n </div>\n );\n\n return (\n <PickerBase\n isOpen={picker.isOpen}\n onClose={picker.close}\n onToggle={picker.toggle}\n label={label}\n disabled={disabled}\n className={className}\n triggerContent={triggerContent}\n id=\"rck-language-picker\"\n >\n {searchable && (\n <SearchInput\n value={picker.searchQuery}\n onChange={picker.setSearchQuery}\n placeholder=\"Search language...\"\n />\n )}\n <ul className=\"rck-list\" role=\"listbox\" aria-label=\"Languages\">\n {picker.filteredItems.length === 0 ? (\n <li className=\"rck-empty\">\n <span className=\"rck-empty-icon\">π</span>\n <span>No languages found</span>\n </li>\n ) : (\n picker.filteredItems.map((lang) => {\n const isSelected = value?.code === lang.code;\n return (\n <li\n key={lang.code}\n role=\"option\"\n aria-selected={isSelected}\n className={`rck-item${isSelected ? ' rck-item-selected' : ''}`}\n onClick={() => picker.selectItem(lang)}\n tabIndex={0}\n onKeyDown={(e) => e.key === 'Enter' && picker.selectItem(lang)}\n >\n <div className=\"rck-item-main\">\n <span className=\"rck-item-name\">{lang.english_name}</span>\n {showNativeName && lang.native_name !== lang.english_name && (\n <span className=\"rck-item-sub\">{lang.native_name}</span>\n )}\n </div>\n <div className=\"rck-item-right\">\n <span className=\"rck-badge\" style={{ fontSize: '0.68rem' }}>{lang.code}</span>\n {isSelected && <CheckIcon />}\n </div>\n </li>\n );\n })\n )}\n </ul>\n </PickerBase>\n );\n}\n","import React, { useRef, useEffect } from 'react';\nimport type { PhoneInputProps } from 'react-country-kit-core';\nimport { usePhoneInput } from 'react-country-kit-core';\nimport { SearchInput } from '../shared/SearchInput';\nimport { Flag } from '../shared/Flag';\nimport '../../styles/picker.css';\n\nexport function PhoneInput({\n value,\n onChange,\n defaultCountryIso2 = 'US',\n placeholder = 'Phone number',\n showFlag = true,\n disabled = false,\n className,\n label,\n}: PhoneInputProps) {\n const phone = usePhoneInput(value, onChange, defaultCountryIso2);\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n // Close dropdown on outside click\n useEffect(() => {\n if (!phone.isOpen) return;\n const handler = (e: MouseEvent) => {\n if (wrapperRef.current && !wrapperRef.current.contains(e.target as Node)) {\n phone.close();\n }\n };\n document.addEventListener('mousedown', handler);\n return () => document.removeEventListener('mousedown', handler);\n }, [phone.isOpen, phone.close]);\n\n // Close on Escape\n useEffect(() => {\n if (!phone.isOpen) return;\n const handler = (e: KeyboardEvent) => { if (e.key === 'Escape') phone.close(); };\n document.addEventListener('keydown', handler);\n return () => document.removeEventListener('keydown', handler);\n }, [phone.isOpen, phone.close]);\n\n return (\n <div ref={wrapperRef} className={`rck-phone-wrapper${className ? ` ${className}` : ''}`}>\n {label && <span className=\"rck-label\">{label}</span>}\n\n <div className={`rck-phone-field${disabled ? ' rck-phone-disabled' : ''}`}>\n {/* Country selector */}\n <button\n type=\"button\"\n className=\"rck-phone-country-btn\"\n onClick={phone.toggle}\n aria-expanded={phone.isOpen}\n aria-label=\"Select country code\"\n disabled={disabled}\n >\n {showFlag && phone.country && (\n <span className=\"rck-phone-flag\">\n <Flag iso2={phone.country.iso2} flag={phone.country.flag} flagUrl={phone.country.flag_url} />\n </span>\n )}\n <span className=\"rck-phone-dial\">\n {phone.country ? `+${phone.country.phone_code}` : '+?'}\n </span>\n <svg className=\"rck-phone-chevron\" viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\">\n <polyline points=\"5 8 10 13 15 8\" />\n </svg>\n </button>\n\n {/* Phone number input */}\n <input\n type=\"tel\"\n className=\"rck-phone-input\"\n value={phone.number}\n onChange={(e) => phone.setNumber(e.target.value)}\n placeholder={placeholder}\n disabled={disabled}\n inputMode=\"numeric\"\n autoComplete=\"tel-national\"\n />\n\n {/* Country dropdown */}\n {phone.isOpen && (\n <div className=\"rck-phone-dropdown\">\n <SearchInput\n value={phone.searchQuery}\n onChange={phone.setSearchQuery}\n placeholder=\"Search country or dial code...\"\n />\n <ul className=\"rck-list\" role=\"listbox\" aria-label=\"Countries\">\n {phone.filteredCountries.length === 0 ? (\n <li className=\"rck-empty\">\n <span className=\"rck-empty-icon\">π</span>\n <span>No countries found</span>\n </li>\n ) : (\n phone.filteredCountries.map((country) => {\n const isSelected = phone.country?.iso2 === country.iso2;\n return (\n <li\n key={country.iso2}\n role=\"option\"\n aria-selected={isSelected}\n className={`rck-item${isSelected ? ' rck-item-selected' : ''}`}\n onClick={() => phone.selectCountry(country)}\n tabIndex={0}\n onKeyDown={(e) => e.key === 'Enter' && phone.selectCountry(country)}\n >\n <span className=\"rck-item-flag\">\n <Flag iso2={country.iso2} flag={country.flag} flagUrl={country.flag_url} />\n </span>\n <div className=\"rck-item-main\">\n <span className=\"rck-item-name\">{country.name}</span>\n <span className=\"rck-item-sub\">{country.iso2}</span>\n </div>\n <span className=\"rck-item-phone\">+{country.phone_code}</span>\n </li>\n );\n })\n )}\n </ul>\n </div>\n )}\n </div>\n </div>\n );\n}\n","import React from 'react';\nimport type { TimezonePickerProps } from 'react-country-kit-core';\nimport { useTimezonePicker } from 'react-country-kit-core';\nimport { PickerBase } from '../shared/PickerBase';\nimport { SearchInput } from '../shared/SearchInput';\nimport '../../styles/picker.css';\n\nconst CheckIcon = () => (\n <svg className=\"rck-item-check\" viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <polyline points=\"4 10 8 14 16 6\" />\n </svg>\n);\n\nexport function TimezonePicker({\n value,\n onChange,\n placeholder = 'Select a timezone',\n searchable = true,\n countryIso2,\n disabled = false,\n className,\n label,\n}: TimezonePickerProps) {\n const picker = useTimezonePicker(value, onChange, countryIso2);\n\n const triggerContent = (\n <div className=\"rck-trigger-content\">\n {value ? (\n <>\n <span className=\"rck-trigger-text\">{value.name}</span>\n <span className=\"rck-badge\">{value.offset_name}</span>\n </>\n ) : (\n <span className=\"rck-trigger-text rck-placeholder\">{placeholder}</span>\n )}\n </div>\n );\n\n return (\n <PickerBase\n isOpen={picker.isOpen}\n onClose={picker.close}\n onToggle={picker.toggle}\n label={label}\n disabled={disabled}\n className={className}\n triggerContent={triggerContent}\n id=\"rck-timezone-picker\"\n >\n {searchable && (\n <SearchInput\n value={picker.searchQuery}\n onChange={picker.setSearchQuery}\n placeholder=\"Search timezone...\"\n />\n )}\n <ul className=\"rck-list\" role=\"listbox\" aria-label=\"Timezones\">\n {picker.filteredItems.length === 0 ? (\n <li className=\"rck-empty\">\n <span className=\"rck-empty-icon\">π</span>\n <span>No timezones found</span>\n </li>\n ) : (\n picker.filteredItems.map((tz) => {\n const isSelected = value?.name === tz.name;\n return (\n <li\n key={tz.name}\n role=\"option\"\n aria-selected={isSelected}\n className={`rck-item${isSelected ? ' rck-item-selected' : ''}`}\n onClick={() => picker.selectItem(tz)}\n tabIndex={0}\n onKeyDown={(e) => e.key === 'Enter' && picker.selectItem(tz)}\n >\n <div className=\"rck-item-main\">\n <span className=\"rck-item-name\">{tz.name}</span>\n <span className=\"rck-item-sub\">{tz.tzName} Β· {tz.abbreviation}</span>\n </div>\n <div className=\"rck-item-right\">\n <span className=\"rck-offset-badge\">{tz.offset_name}</span>\n {isSelected && <CheckIcon />}\n </div>\n </li>\n );\n })\n )}\n </ul>\n </PickerBase>\n );\n}\n"],"names":["SearchInput","value","onChange","placeholder","autoFocus","inputRef","useRef","useEffect","_a","jsxs","jsx","e","Flag","iso2","flag","flagUrl","className","alt","mode","url","MAX_VISIBLE_CHIPS","ChipCheckIcon","CountryMultiSelect","maxItems","showFlags","searchable","disabled","label","multi","useMultiSelect","getAllCountries","items","q","searchCountries","c","wrapperRef","handler","visibleChips","overflow","Fragment","x","country","selected","ChevronIcon","PickerBase","isOpen","onClose","onToggle","triggerContent","children","id","CheckIcon","CountryPicker","showFlag","showPhoneCode","picker","useCountryPicker","isSelected","CurrencyMultiSelect","showSymbol","getAllCurrencies","searchCurrencies","currency","CurrencyPicker","useCurrencyPicker","DivisionPicker","countryIso2","useDivisionPicker","isDisabled","division","LanguagePicker","showNativeName","useLanguagePicker","lang","PhoneInput","defaultCountryIso2","phone","usePhoneInput","TimezonePicker","useTimezonePicker","tz"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"react-country-kit.es.js","names":[],"sources":["../src/components/shared/SearchInput.tsx","../src/components/shared/Flag.tsx","../src/components/CountryMultiSelect/CountryMultiSelect.tsx","../src/components/shared/PickerBase.tsx","../src/components/CountryPicker/CountryPicker.tsx","../src/components/CurrencyMultiSelect/CurrencyMultiSelect.tsx","../src/components/CurrencyPicker/CurrencyPicker.tsx","../src/components/DivisionPicker/DivisionPicker.tsx","../src/components/LanguagePicker/LanguagePicker.tsx","../src/components/PhoneInput/PhoneInput.tsx","../src/components/TimezonePicker/TimezonePicker.tsx"],"sourcesContent":["import React, { useRef, useEffect } from 'react';\n\ninterface SearchInputProps {\n value: string;\n onChange: (value: string) => void;\n placeholder?: string;\n autoFocus?: boolean;\n}\n\nexport function SearchInput({ value, onChange, placeholder = 'Search...', autoFocus = true }: SearchInputProps) {\n const inputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n if (autoFocus) {\n setTimeout(() => inputRef.current?.focus(), 50);\n }\n }, [autoFocus]);\n\n return (\n <div className=\"rck-search-wrapper\">\n <div className=\"rck-search\">\n <svg className=\"rck-search-icon\" viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <circle cx=\"8.5\" cy=\"8.5\" r=\"5.5\" />\n <path d=\"M17 17l-4-4\" strokeLinecap=\"round\" />\n </svg>\n <input\n ref={inputRef}\n type=\"text\"\n value={value}\n onChange={(e) => onChange(e.target.value)}\n placeholder={placeholder}\n aria-label=\"Search\"\n />\n {value && (\n <button\n style={{ background: 'none', border: 'none', cursor: 'pointer', color: 'var(--rck-text-placeholder)', padding: 0, display: 'flex' }}\n onClick={() => onChange('')}\n aria-label=\"Clear search\"\n type=\"button\"\n >\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path d=\"M6 6l8 8M14 6l-8 8\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" fill=\"none\" />\n </svg>\n </button>\n )}\n </div>\n </div>\n );\n}\n","import React from 'react';\n\nexport interface FlagProps {\n iso2: string;\n flag?: string;\n flagUrl?: string;\n className?: string;\n alt?: string;\n mode?: 'emoji' | 'image' | 'auto';\n}\n\n/**\n * Flag component that handles both emoji and image flags.\n * 'auto' mode uses emoji by default but provides image as an alternative.\n */\nexport const Flag: React.FC<FlagProps> = ({ \n iso2, \n flag, \n flagUrl, \n className = '', \n alt = '', \n mode = 'auto' \n}) => {\n const url = flagUrl || `https://flagcdn.com/w320/${iso2.toLowerCase()}.png`;\n\n if (mode === 'image') {\n return (\n <img \n src={url} \n alt={alt || iso2} \n className={`rck-flag-img ${className}`}\n loading=\"lazy\"\n />\n );\n }\n\n // For 'emoji' or 'auto', we can use a wrapper that might handle Windows specifically\n // or just render the emoji. \n // However, since Windows doesn't render emoji flags well, \n // many libraries prefer using images for consistent look.\n \n return (\n <span className={`rck-flag-wrapper ${className}`} title={alt || iso2}>\n {flag || iso2}\n </span>\n );\n};\n","import React, { useRef, useEffect } from 'react';\nimport type { CountryMultiSelectProps, Country } from 'react-country-kit-core';\nimport { useMultiSelect } from 'react-country-kit-core';\nimport { getAllCountries, searchCountries } from 'react-country-kit-core';\nimport { SearchInput } from '../shared/SearchInput';\nimport { Flag } from '../shared/Flag';\nimport '../../styles/picker.css';\n\nconst MAX_VISIBLE_CHIPS = 3;\n\nfunction ChipCheckIcon() {\n return (\n <svg viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <polyline points=\"4 10 8 14 16 6\" />\n </svg>\n );\n}\n\nexport function CountryMultiSelect({\n value,\n onChange,\n placeholder = 'Select countries...',\n maxItems,\n showFlags = true,\n searchable = true,\n disabled = false,\n className,\n label,\n}: CountryMultiSelectProps) {\n const multi = useMultiSelect<Country>(\n getAllCountries(),\n (items, q) => q ? searchCountries(q) : items,\n (c) => c.iso2,\n value,\n onChange,\n maxItems\n );\n\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!multi.isOpen) return;\n const handler = (e: MouseEvent) => {\n if (wrapperRef.current && !wrapperRef.current.contains(e.target as Node)) multi.close();\n };\n document.addEventListener('mousedown', handler);\n return () => document.removeEventListener('mousedown', handler);\n }, [multi.isOpen, multi.close]);\n\n useEffect(() => {\n if (!multi.isOpen) return;\n const handler = (e: KeyboardEvent) => { if (e.key === 'Escape') multi.close(); };\n document.addEventListener('keydown', handler);\n return () => document.removeEventListener('keydown', handler);\n }, [multi.isOpen, multi.close]);\n\n const visibleChips = value.slice(0, MAX_VISIBLE_CHIPS);\n const overflow = value.length - MAX_VISIBLE_CHIPS;\n\n return (\n <div ref={wrapperRef} className={`rck-picker${className ? ` ${className}` : ''}`}>\n {label && <span className=\"rck-label\">{label}</span>}\n\n <button\n type=\"button\"\n className={`rck-multiselect-trigger${multi.isOpen ? ' rck-open' : ''}`}\n disabled={disabled}\n onClick={multi.toggle}\n aria-haspopup=\"listbox\"\n aria-expanded={multi.isOpen}\n >\n <div className=\"rck-chips-area\">\n {value.length === 0 ? (\n <span style={{ color: 'var(--rck-text-placeholder)', fontSize: '0.9375rem' }}>{placeholder}</span>\n ) : (\n <>\n {visibleChips.map((c) => (\n <span key={c.iso2} className=\"rck-chip\">\n {showFlags && (\n <span className=\"rck-flag\">\n <Flag iso2={c.iso2} flag={c.flag} flagUrl={c.flag_url} />\n </span>\n )}\n <span className=\"rck-chip-label\">{c.name}</span>\n <button\n type=\"button\"\n className=\"rck-chip-remove\"\n onClick={(e) => { e.stopPropagation(); multi.removeItem(c); onChange(value.filter((x) => x.iso2 !== c.iso2)); }}\n aria-label={`Remove ${c.name}`}\n >\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\" strokeLinecap=\"round\">\n <line x1=\"5\" y1=\"5\" x2=\"15\" y2=\"15\" /><line x1=\"15\" y1=\"5\" x2=\"5\" y2=\"15\" />\n </svg>\n </button>\n </span>\n ))}\n {overflow > 0 && (\n <span className=\"rck-chip-overflow\">+{overflow} more</span>\n )}\n </>\n )}\n </div>\n {value.length > 0 && (\n <button\n type=\"button\"\n className=\"rck-multiselect-clear\"\n onClick={(e) => { e.stopPropagation(); multi.clearAll(); onChange([]); }}\n aria-label=\"Clear all\"\n >\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\">\n <line x1=\"5\" y1=\"5\" x2=\"15\" y2=\"15\" /><line x1=\"15\" y1=\"5\" x2=\"5\" y2=\"15\" />\n </svg>\n </button>\n )}\n <svg className=\"rck-chevron\" viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\">\n <polyline points=\"5 8 10 13 15 8\" />\n </svg>\n </button>\n\n {multi.isOpen && (\n <div className=\"rck-dropdown\" role=\"listbox\" aria-multiselectable=\"true\">\n {searchable && (\n <SearchInput value={multi.searchQuery} onChange={multi.setSearchQuery} placeholder=\"Search countries...\" />\n )}\n <ul className=\"rck-list\">\n {multi.filteredItems.length === 0 ? (\n <li className=\"rck-empty\"><span className=\"rck-empty-icon\">π</span><span>No countries found</span></li>\n ) : (\n multi.filteredItems.map((country) => {\n const selected = multi.isSelected(country);\n return (\n <li\n key={country.iso2}\n role=\"option\"\n aria-selected={selected}\n className={`rck-item${selected ? ' rck-item-selected' : ''}`}\n onClick={() => multi.toggleItem(country)}\n tabIndex={0}\n onKeyDown={(e) => e.key === 'Enter' && multi.toggleItem(country)}\n >\n <div className={selected ? 'rck-item-check-multi' : 'rck-item-check-empty'}>\n {selected && <ChipCheckIcon />}\n </div>\n {showFlags && (\n <span className=\"rck-item-flag\">\n <Flag iso2={country.iso2} flag={country.flag} flagUrl={country.flag_url} />\n </span>\n )}\n <div className=\"rck-item-main\">\n <span className=\"rck-item-name\">{country.name}</span>\n <span className=\"rck-item-sub\">{country.iso3} Β· +{country.phone_code}</span>\n </div>\n </li>\n );\n })\n )}\n </ul>\n </div>\n )}\n </div>\n );\n}\n","import React, { useEffect, useRef } from 'react';\n\ninterface PickerBaseProps {\n isOpen: boolean;\n onClose: () => void;\n onToggle: () => void;\n label?: string;\n disabled?: boolean;\n className?: string;\n triggerContent: React.ReactNode;\n children: React.ReactNode;\n id?: string;\n}\n\nconst ChevronIcon = () => (\n <svg\n className=\"rck-chevron\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <polyline points=\"5 8 10 13 15 8\" />\n </svg>\n);\n\nexport function PickerBase({\n isOpen,\n onClose,\n onToggle,\n label,\n disabled,\n className,\n triggerContent,\n children,\n id,\n}: PickerBaseProps) {\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n // Close on outside click\n useEffect(() => {\n if (!isOpen) return;\n const handler = (e: MouseEvent) => {\n if (wrapperRef.current && !wrapperRef.current.contains(e.target as Node)) {\n onClose();\n }\n };\n document.addEventListener('mousedown', handler);\n return () => document.removeEventListener('mousedown', handler);\n }, [isOpen, onClose]);\n\n // Close on Escape\n useEffect(() => {\n if (!isOpen) return;\n const handler = (e: KeyboardEvent) => {\n if (e.key === 'Escape') onClose();\n };\n document.addEventListener('keydown', handler);\n return () => document.removeEventListener('keydown', handler);\n }, [isOpen, onClose]);\n\n return (\n <div ref={wrapperRef} className={`rck-picker${className ? ` ${className}` : ''}`}>\n {label && (\n <span className=\"rck-label\" id={id ? `${id}-label` : undefined}>\n {label}\n </span>\n )}\n <button\n type=\"button\"\n className={`rck-trigger${isOpen ? ' rck-open' : ''}`}\n disabled={disabled}\n aria-haspopup=\"listbox\"\n aria-expanded={isOpen}\n aria-labelledby={id && label ? `${id}-label` : undefined}\n id={id}\n onClick={onToggle}\n >\n {triggerContent}\n <ChevronIcon />\n </button>\n\n {isOpen && (\n <div className=\"rck-dropdown\" role=\"listbox\">\n {children}\n </div>\n )}\n </div>\n );\n}\n","import React from 'react';\nimport type { CountryPickerProps } from 'react-country-kit-core';\nimport { useCountryPicker } from 'react-country-kit-core';\nimport { PickerBase } from '../shared/PickerBase';\nimport { SearchInput } from '../shared/SearchInput';\nimport { Flag } from '../shared/Flag';\nimport '../../styles/picker.css';\n\nconst CheckIcon = () => (\n <svg className=\"rck-item-check\" viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <polyline points=\"4 10 8 14 16 6\" />\n </svg>\n);\n\nexport function CountryPicker({\n value,\n onChange,\n placeholder = 'Select a country',\n searchable = true,\n showFlag = true,\n showPhoneCode = false,\n disabled = false,\n className,\n label,\n}: CountryPickerProps) {\n const picker = useCountryPicker(value, onChange);\n\n const triggerContent = (\n <div className=\"rck-trigger-content\">\n {value ? (\n <>\n {showFlag && (\n <span className=\"rck-flag\">\n <Flag iso2={value.iso2} flag={value.flag} flagUrl={value.flag_url} />\n </span>\n )}\n <span className=\"rck-trigger-text\">{value.name}</span>\n {showPhoneCode && <span className=\"rck-badge\">+{value.phone_code}</span>}\n </>\n ) : (\n <span className=\"rck-trigger-text rck-placeholder\">{placeholder}</span>\n )}\n </div>\n );\n\n return (\n <PickerBase\n isOpen={picker.isOpen}\n onClose={picker.close}\n onToggle={picker.toggle}\n label={label}\n disabled={disabled}\n className={className}\n triggerContent={triggerContent}\n id=\"rck-country-picker\"\n >\n {searchable && (\n <SearchInput\n value={picker.searchQuery}\n onChange={picker.setSearchQuery}\n placeholder=\"Search country...\"\n />\n )}\n <ul className=\"rck-list\" role=\"listbox\" aria-label=\"Countries\">\n {picker.filteredItems.length === 0 ? (\n <li className=\"rck-empty\">\n <span className=\"rck-empty-icon\">π</span>\n <span>No countries found</span>\n </li>\n ) : (\n picker.filteredItems.map((country) => {\n const isSelected = value?.iso2 === country.iso2;\n return (\n <li\n key={country.iso2}\n role=\"option\"\n aria-selected={isSelected}\n className={`rck-item${isSelected ? ' rck-item-selected' : ''}`}\n onClick={() => picker.selectItem(country)}\n tabIndex={0}\n onKeyDown={(e) => e.key === 'Enter' && picker.selectItem(country)}\n >\n {showFlag && (\n <span className=\"rck-item-flag\">\n <Flag iso2={country.iso2} flag={country.flag} flagUrl={country.flag_url} />\n </span>\n )}\n <div className=\"rck-item-main\">\n <span className=\"rck-item-name\">{country.name}</span>\n <span className=\"rck-item-sub\">{country.iso3} Β· {country.division_type}</span>\n </div>\n <div className=\"rck-item-right\">\n {showPhoneCode && (\n <span className=\"rck-item-phone\">+{country.phone_code}</span>\n )}\n {isSelected && <CheckIcon />}\n </div>\n </li>\n );\n })\n )}\n </ul>\n </PickerBase>\n );\n}\n","import React, { useRef, useEffect } from 'react';\nimport type { CurrencyMultiSelectProps, Currency } from 'react-country-kit-core';\nimport { useMultiSelect } from 'react-country-kit-core';\nimport { getAllCurrencies, searchCurrencies } from 'react-country-kit-core';\nimport { SearchInput } from '../shared/SearchInput';\nimport '../../styles/picker.css';\n\nconst MAX_VISIBLE_CHIPS = 3;\n\nfunction ChipCheckIcon() {\n return (\n <svg viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <polyline points=\"4 10 8 14 16 6\" />\n </svg>\n );\n}\n\nexport function CurrencyMultiSelect({\n value,\n onChange,\n placeholder = 'Select currencies...',\n maxItems,\n showSymbol = true,\n searchable = true,\n disabled = false,\n className,\n label,\n}: CurrencyMultiSelectProps) {\n const multi = useMultiSelect<Currency>(\n getAllCurrencies(),\n (items, q) => q ? searchCurrencies(q) : items,\n (c) => c.code,\n value,\n onChange,\n maxItems\n );\n\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!multi.isOpen) return;\n const handler = (e: MouseEvent) => {\n if (wrapperRef.current && !wrapperRef.current.contains(e.target as Node)) multi.close();\n };\n document.addEventListener('mousedown', handler);\n return () => document.removeEventListener('mousedown', handler);\n }, [multi.isOpen, multi.close]);\n\n useEffect(() => {\n if (!multi.isOpen) return;\n const handler = (e: KeyboardEvent) => { if (e.key === 'Escape') multi.close(); };\n document.addEventListener('keydown', handler);\n return () => document.removeEventListener('keydown', handler);\n }, [multi.isOpen, multi.close]);\n\n const visibleChips = value.slice(0, MAX_VISIBLE_CHIPS);\n const overflow = value.length - MAX_VISIBLE_CHIPS;\n\n return (\n <div ref={wrapperRef} className={`rck-picker${className ? ` ${className}` : ''}`}>\n {label && <span className=\"rck-label\">{label}</span>}\n\n <button\n type=\"button\"\n className={`rck-multiselect-trigger${multi.isOpen ? ' rck-open' : ''}`}\n disabled={disabled}\n onClick={multi.toggle}\n aria-haspopup=\"listbox\"\n aria-expanded={multi.isOpen}\n >\n <div className=\"rck-chips-area\">\n {value.length === 0 ? (\n <span style={{ color: 'var(--rck-text-placeholder)', fontSize: '0.9375rem' }}>{placeholder}</span>\n ) : (\n <>\n {visibleChips.map((c) => (\n <span key={c.code} className=\"rck-chip\">\n {showSymbol && <span>{c.symbol}</span>}\n <span className=\"rck-chip-label\">{c.code}</span>\n <button\n type=\"button\"\n className=\"rck-chip-remove\"\n onClick={(e) => { e.stopPropagation(); onChange(value.filter((x) => x.code !== c.code)); }}\n aria-label={`Remove ${c.code}`}\n >\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\" strokeLinecap=\"round\">\n <line x1=\"5\" y1=\"5\" x2=\"15\" y2=\"15\" /><line x1=\"15\" y1=\"5\" x2=\"5\" y2=\"15\" />\n </svg>\n </button>\n </span>\n ))}\n {overflow > 0 && <span className=\"rck-chip-overflow\">+{overflow} more</span>}\n </>\n )}\n </div>\n {value.length > 0 && (\n <button\n type=\"button\"\n className=\"rck-multiselect-clear\"\n onClick={(e) => { e.stopPropagation(); multi.clearAll(); onChange([]); }}\n aria-label=\"Clear all\"\n >\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\">\n <line x1=\"5\" y1=\"5\" x2=\"15\" y2=\"15\" /><line x1=\"15\" y1=\"5\" x2=\"5\" y2=\"15\" />\n </svg>\n </button>\n )}\n <svg className=\"rck-chevron\" viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\">\n <polyline points=\"5 8 10 13 15 8\" />\n </svg>\n </button>\n\n {multi.isOpen && (\n <div className=\"rck-dropdown\" role=\"listbox\" aria-multiselectable=\"true\">\n {searchable && (\n <SearchInput value={multi.searchQuery} onChange={multi.setSearchQuery} placeholder=\"Search currencies...\" />\n )}\n <ul className=\"rck-list\">\n {multi.filteredItems.length === 0 ? (\n <li className=\"rck-empty\"><span className=\"rck-empty-icon\">π°</span><span>No currencies found</span></li>\n ) : (\n multi.filteredItems.map((currency) => {\n const selected = multi.isSelected(currency);\n return (\n <li\n key={currency.code}\n role=\"option\"\n aria-selected={selected}\n className={`rck-item${selected ? ' rck-item-selected' : ''}`}\n onClick={() => multi.toggleItem(currency)}\n tabIndex={0}\n onKeyDown={(e) => e.key === 'Enter' && multi.toggleItem(currency)}\n >\n <div className={selected ? 'rck-item-check-multi' : 'rck-item-check-empty'}>\n {selected && <ChipCheckIcon />}\n </div>\n {showSymbol && <span className=\"rck-item-symbol\">{currency.symbol}</span>}\n <div className=\"rck-item-main\">\n <span className=\"rck-item-name\">{currency.name}</span>\n <span className=\"rck-item-sub\">{currency.code}</span>\n </div>\n </li>\n );\n })\n )}\n </ul>\n </div>\n )}\n </div>\n );\n}\n","import React from 'react';\nimport type { CurrencyPickerProps } from 'react-country-kit-core';\nimport { useCurrencyPicker } from 'react-country-kit-core';\nimport { PickerBase } from '../shared/PickerBase';\nimport { SearchInput } from '../shared/SearchInput';\nimport '../../styles/picker.css';\n\nconst CheckIcon = () => (\n <svg className=\"rck-item-check\" viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <polyline points=\"4 10 8 14 16 6\" />\n </svg>\n);\n\nexport function CurrencyPicker({\n value,\n onChange,\n placeholder = 'Select a currency',\n searchable = true,\n showSymbol = true,\n disabled = false,\n className,\n label,\n}: CurrencyPickerProps) {\n const picker = useCurrencyPicker(value, onChange);\n\n const triggerContent = (\n <div className=\"rck-trigger-content\">\n {value ? (\n <>\n {showSymbol && <span className=\"rck-item-symbol\">{value.symbol}</span>}\n <span className=\"rck-trigger-text\">{value.code} β {value.name}</span>\n </>\n ) : (\n <span className=\"rck-trigger-text rck-placeholder\">{placeholder}</span>\n )}\n </div>\n );\n\n return (\n <PickerBase\n isOpen={picker.isOpen}\n onClose={picker.close}\n onToggle={picker.toggle}\n label={label}\n disabled={disabled}\n className={className}\n triggerContent={triggerContent}\n id=\"rck-currency-picker\"\n >\n {searchable && (\n <SearchInput\n value={picker.searchQuery}\n onChange={picker.setSearchQuery}\n placeholder=\"Search currency...\"\n />\n )}\n <ul className=\"rck-list\" role=\"listbox\" aria-label=\"Currencies\">\n {picker.filteredItems.length === 0 ? (\n <li className=\"rck-empty\">\n <span className=\"rck-empty-icon\">π°</span>\n <span>No currencies found</span>\n </li>\n ) : (\n picker.filteredItems.map((currency) => {\n const isSelected = value?.code === currency.code;\n return (\n <li\n key={currency.code}\n role=\"option\"\n aria-selected={isSelected}\n className={`rck-item${isSelected ? ' rck-item-selected' : ''}`}\n onClick={() => picker.selectItem(currency)}\n tabIndex={0}\n onKeyDown={(e) => e.key === 'Enter' && picker.selectItem(currency)}\n >\n {showSymbol && <span className=\"rck-item-symbol\">{currency.symbol}</span>}\n <div className=\"rck-item-main\">\n <span className=\"rck-item-name\">{currency.name}</span>\n <span className=\"rck-item-sub\">{currency.code}</span>\n </div>\n {isSelected && <CheckIcon />}\n </li>\n );\n })\n )}\n </ul>\n </PickerBase>\n );\n}\n","import React from 'react';\nimport type { DivisionPickerProps } from 'react-country-kit-core';\nimport { useDivisionPicker } from 'react-country-kit-core';\nimport { PickerBase } from '../shared/PickerBase';\nimport { SearchInput } from '../shared/SearchInput';\nimport '../../styles/picker.css';\n\nconst CheckIcon = () => (\n <svg className=\"rck-item-check\" viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <polyline points=\"4 10 8 14 16 6\" />\n </svg>\n);\n\nexport function DivisionPicker({\n countryIso2,\n value,\n onChange,\n placeholder = 'Select a division',\n searchable = true,\n disabled = false,\n className,\n label,\n}: DivisionPickerProps) {\n const picker = useDivisionPicker(countryIso2, value, onChange);\n\n const triggerContent = (\n <div className=\"rck-trigger-content\">\n {value ? (\n <>\n <span className=\"rck-trigger-text\">{value.name}</span>\n <span className=\"rck-badge\">{value.iso2}</span>\n </>\n ) : (\n <span className=\"rck-trigger-text rck-placeholder\">{placeholder}</span>\n )}\n </div>\n );\n\n const isDisabled = disabled || !countryIso2;\n\n return (\n <PickerBase\n isOpen={picker.isOpen}\n onClose={picker.close}\n onToggle={picker.toggle}\n label={label}\n disabled={isDisabled}\n className={className}\n triggerContent={triggerContent}\n id=\"rck-division-picker\"\n >\n {searchable && (\n <SearchInput\n value={picker.searchQuery}\n onChange={picker.setSearchQuery}\n placeholder=\"Search division...\"\n />\n )}\n <ul className=\"rck-list\" role=\"listbox\" aria-label=\"Divisions\">\n {picker.filteredItems.length === 0 ? (\n <li className=\"rck-empty\">\n <span className=\"rck-empty-icon\">πΊοΈ</span>\n <span>No divisions found</span>\n </li>\n ) : (\n picker.filteredItems.map((division) => {\n const isSelected = value?.iso2 === division.iso2 && value?.name === division.name;\n return (\n <li\n key={`${division.iso2}-${division.name}`}\n role=\"option\"\n aria-selected={isSelected}\n className={`rck-item${isSelected ? ' rck-item-selected' : ''}`}\n onClick={() => picker.selectItem(division)}\n tabIndex={0}\n onKeyDown={(e) => e.key === 'Enter' && picker.selectItem(division)}\n >\n <div className=\"rck-item-main\">\n <span className=\"rck-item-name\">{division.name}</span>\n <span className=\"rck-item-sub\">{division.timezone}</span>\n </div>\n <div className=\"rck-item-right\">\n <span className=\"rck-badge\">{division.iso2}</span>\n {isSelected && <CheckIcon />}\n </div>\n </li>\n );\n })\n )}\n </ul>\n </PickerBase>\n );\n}\n","import React from 'react';\nimport type { LanguagePickerProps } from 'react-country-kit-core';\nimport { useLanguagePicker } from 'react-country-kit-core';\nimport { PickerBase } from '../shared/PickerBase';\nimport { SearchInput } from '../shared/SearchInput';\nimport '../../styles/picker.css';\n\nconst CheckIcon = () => (\n <svg className=\"rck-item-check\" viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <polyline points=\"4 10 8 14 16 6\" />\n </svg>\n);\n\nexport function LanguagePicker({\n value,\n onChange,\n placeholder = 'Select a language',\n searchable = true,\n showNativeName = true,\n disabled = false,\n className,\n label,\n}: LanguagePickerProps) {\n const picker = useLanguagePicker(value, onChange);\n\n const triggerContent = (\n <div className=\"rck-trigger-content\">\n {value ? (\n <>\n <span className=\"rck-trigger-text\">{value.english_name}</span>\n {showNativeName && value.native_name !== value.english_name && (\n <span className=\"rck-native-name\">{value.native_name}</span>\n )}\n </>\n ) : (\n <span className=\"rck-trigger-text rck-placeholder\">{placeholder}</span>\n )}\n </div>\n );\n\n return (\n <PickerBase\n isOpen={picker.isOpen}\n onClose={picker.close}\n onToggle={picker.toggle}\n label={label}\n disabled={disabled}\n className={className}\n triggerContent={triggerContent}\n id=\"rck-language-picker\"\n >\n {searchable && (\n <SearchInput\n value={picker.searchQuery}\n onChange={picker.setSearchQuery}\n placeholder=\"Search language...\"\n />\n )}\n <ul className=\"rck-list\" role=\"listbox\" aria-label=\"Languages\">\n {picker.filteredItems.length === 0 ? (\n <li className=\"rck-empty\">\n <span className=\"rck-empty-icon\">π</span>\n <span>No languages found</span>\n </li>\n ) : (\n picker.filteredItems.map((lang) => {\n const isSelected = value?.code === lang.code;\n return (\n <li\n key={lang.code}\n role=\"option\"\n aria-selected={isSelected}\n className={`rck-item${isSelected ? ' rck-item-selected' : ''}`}\n onClick={() => picker.selectItem(lang)}\n tabIndex={0}\n onKeyDown={(e) => e.key === 'Enter' && picker.selectItem(lang)}\n >\n <div className=\"rck-item-main\">\n <span className=\"rck-item-name\">{lang.english_name}</span>\n {showNativeName && lang.native_name !== lang.english_name && (\n <span className=\"rck-item-sub\">{lang.native_name}</span>\n )}\n </div>\n <div className=\"rck-item-right\">\n <span className=\"rck-badge\" style={{ fontSize: '0.68rem' }}>{lang.code}</span>\n {isSelected && <CheckIcon />}\n </div>\n </li>\n );\n })\n )}\n </ul>\n </PickerBase>\n );\n}\n","import React, { useRef, useEffect } from 'react';\nimport type { PhoneInputProps } from 'react-country-kit-core';\nimport { usePhoneInput } from 'react-country-kit-core';\nimport { SearchInput } from '../shared/SearchInput';\nimport { Flag } from '../shared/Flag';\nimport '../../styles/picker.css';\n\nexport function PhoneInput({\n value,\n onChange,\n defaultCountryIso2 = 'US',\n placeholder = 'Phone number',\n showFlag = true,\n disabled = false,\n className,\n label,\n}: PhoneInputProps) {\n const phone = usePhoneInput(value, onChange, defaultCountryIso2);\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n // Close dropdown on outside click\n useEffect(() => {\n if (!phone.isOpen) return;\n const handler = (e: MouseEvent) => {\n if (wrapperRef.current && !wrapperRef.current.contains(e.target as Node)) {\n phone.close();\n }\n };\n document.addEventListener('mousedown', handler);\n return () => document.removeEventListener('mousedown', handler);\n }, [phone.isOpen, phone.close]);\n\n // Close on Escape\n useEffect(() => {\n if (!phone.isOpen) return;\n const handler = (e: KeyboardEvent) => { if (e.key === 'Escape') phone.close(); };\n document.addEventListener('keydown', handler);\n return () => document.removeEventListener('keydown', handler);\n }, [phone.isOpen, phone.close]);\n\n return (\n <div ref={wrapperRef} className={`rck-phone-wrapper${className ? ` ${className}` : ''}`}>\n {label && <span className=\"rck-label\">{label}</span>}\n\n <div className={`rck-phone-field${disabled ? ' rck-phone-disabled' : ''}`}>\n {/* Country selector */}\n <button\n type=\"button\"\n className=\"rck-phone-country-btn\"\n onClick={phone.toggle}\n aria-expanded={phone.isOpen}\n aria-label=\"Select country code\"\n disabled={disabled}\n >\n {showFlag && phone.country && (\n <span className=\"rck-phone-flag\">\n <Flag iso2={phone.country.iso2} flag={phone.country.flag} flagUrl={phone.country.flag_url} />\n </span>\n )}\n <span className=\"rck-phone-dial\">\n {phone.country ? `+${phone.country.phone_code}` : '+?'}\n </span>\n <svg className=\"rck-phone-chevron\" viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\">\n <polyline points=\"5 8 10 13 15 8\" />\n </svg>\n </button>\n\n {/* Phone number input */}\n <input\n type=\"tel\"\n className=\"rck-phone-input\"\n value={phone.number}\n onChange={(e) => phone.setNumber(e.target.value)}\n placeholder={placeholder}\n disabled={disabled}\n inputMode=\"numeric\"\n autoComplete=\"tel-national\"\n />\n\n {/* Country dropdown */}\n {phone.isOpen && (\n <div className=\"rck-phone-dropdown\">\n <SearchInput\n value={phone.searchQuery}\n onChange={phone.setSearchQuery}\n placeholder=\"Search country or dial code...\"\n />\n <ul className=\"rck-list\" role=\"listbox\" aria-label=\"Countries\">\n {phone.filteredCountries.length === 0 ? (\n <li className=\"rck-empty\">\n <span className=\"rck-empty-icon\">π</span>\n <span>No countries found</span>\n </li>\n ) : (\n phone.filteredCountries.map((country) => {\n const isSelected = phone.country?.iso2 === country.iso2;\n return (\n <li\n key={country.iso2}\n role=\"option\"\n aria-selected={isSelected}\n className={`rck-item${isSelected ? ' rck-item-selected' : ''}`}\n onClick={() => phone.selectCountry(country)}\n tabIndex={0}\n onKeyDown={(e) => e.key === 'Enter' && phone.selectCountry(country)}\n >\n <span className=\"rck-item-flag\">\n <Flag iso2={country.iso2} flag={country.flag} flagUrl={country.flag_url} />\n </span>\n <div className=\"rck-item-main\">\n <span className=\"rck-item-name\">{country.name}</span>\n <span className=\"rck-item-sub\">{country.iso2}</span>\n </div>\n <span className=\"rck-item-phone\">+{country.phone_code}</span>\n </li>\n );\n })\n )}\n </ul>\n </div>\n )}\n </div>\n </div>\n );\n}\n","import React from 'react';\nimport type { TimezonePickerProps } from 'react-country-kit-core';\nimport { useTimezonePicker } from 'react-country-kit-core';\nimport { PickerBase } from '../shared/PickerBase';\nimport { SearchInput } from '../shared/SearchInput';\nimport '../../styles/picker.css';\n\nconst CheckIcon = () => (\n <svg className=\"rck-item-check\" viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <polyline points=\"4 10 8 14 16 6\" />\n </svg>\n);\n\nexport function TimezonePicker({\n value,\n onChange,\n placeholder = 'Select a timezone',\n searchable = true,\n countryIso2,\n disabled = false,\n className,\n label,\n}: TimezonePickerProps) {\n const picker = useTimezonePicker(value, onChange, countryIso2);\n\n const triggerContent = (\n <div className=\"rck-trigger-content\">\n {value ? (\n <>\n <span className=\"rck-trigger-text\">{value.name}</span>\n <span className=\"rck-badge\">{value.offset_name}</span>\n </>\n ) : (\n <span className=\"rck-trigger-text rck-placeholder\">{placeholder}</span>\n )}\n </div>\n );\n\n return (\n <PickerBase\n isOpen={picker.isOpen}\n onClose={picker.close}\n onToggle={picker.toggle}\n label={label}\n disabled={disabled}\n className={className}\n triggerContent={triggerContent}\n id=\"rck-timezone-picker\"\n >\n {searchable && (\n <SearchInput\n value={picker.searchQuery}\n onChange={picker.setSearchQuery}\n placeholder=\"Search timezone...\"\n />\n )}\n <ul className=\"rck-list\" role=\"listbox\" aria-label=\"Timezones\">\n {picker.filteredItems.length === 0 ? (\n <li className=\"rck-empty\">\n <span className=\"rck-empty-icon\">π</span>\n <span>No timezones found</span>\n </li>\n ) : (\n picker.filteredItems.map((tz) => {\n const isSelected = value?.name === tz.name;\n return (\n <li\n key={tz.name}\n role=\"option\"\n aria-selected={isSelected}\n className={`rck-item${isSelected ? ' rck-item-selected' : ''}`}\n onClick={() => picker.selectItem(tz)}\n tabIndex={0}\n onKeyDown={(e) => e.key === 'Enter' && picker.selectItem(tz)}\n >\n <div className=\"rck-item-main\">\n <span className=\"rck-item-name\">{tz.name}</span>\n <span className=\"rck-item-sub\">{tz.tzName} Β· {tz.abbreviation}</span>\n </div>\n <div className=\"rck-item-right\">\n <span className=\"rck-offset-badge\">{tz.offset_name}</span>\n {isSelected && <CheckIcon />}\n </div>\n </li>\n );\n })\n )}\n </ul>\n </PickerBase>\n );\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-country-kit",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A comprehensive React component library for country, currency, timezone, language, and division picking. Supports both vanilla CSS and shadcn/Tailwind CSS variants.",
|
|
6
6
|
"author": "Kishor Mainali",
|
|
@@ -24,14 +24,14 @@
|
|
|
24
24
|
"types": "dist/react-country-kit.d.ts",
|
|
25
25
|
"exports": {
|
|
26
26
|
".": {
|
|
27
|
+
"types": "./dist/react-country-kit.d.ts",
|
|
27
28
|
"import": "./dist/react-country-kit.es.js",
|
|
28
|
-
"require": "./dist/react-country-kit.cjs.js"
|
|
29
|
-
"types": "./dist/react-country-kit.d.ts"
|
|
29
|
+
"require": "./dist/react-country-kit.cjs.js"
|
|
30
30
|
},
|
|
31
31
|
"./ui": {
|
|
32
|
+
"types": "./dist/ui.d.ts",
|
|
32
33
|
"import": "./dist/ui.es.js",
|
|
33
|
-
"require": "./dist/ui.cjs.js"
|
|
34
|
-
"types": "./dist/ui.d.ts"
|
|
34
|
+
"require": "./dist/ui.cjs.js"
|
|
35
35
|
},
|
|
36
36
|
"./styles": "./dist/style.css"
|
|
37
37
|
},
|
|
@@ -80,12 +80,12 @@
|
|
|
80
80
|
"clsx": "^2.1.0",
|
|
81
81
|
"tailwind-merge": "^2.3.0",
|
|
82
82
|
"typescript": "^5.2.2",
|
|
83
|
-
"vite": "^
|
|
84
|
-
"vite-plugin-dts": "^
|
|
83
|
+
"vite": "^8.0.13",
|
|
84
|
+
"vite-plugin-dts": "^5.0.0"
|
|
85
85
|
},
|
|
86
86
|
"dependencies": {
|
|
87
|
-
"
|
|
88
|
-
"
|
|
87
|
+
"libphonenumber-js": "^1.12.42",
|
|
88
|
+
"react-country-kit-core": "^1.3.0"
|
|
89
89
|
},
|
|
90
90
|
"repository": {
|
|
91
91
|
"type": "git",
|
|
@@ -95,4 +95,4 @@
|
|
|
95
95
|
"publishConfig": {
|
|
96
96
|
"access": "public"
|
|
97
97
|
}
|
|
98
|
-
}
|
|
98
|
+
}
|
package/dist/style.css
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap";:root{--rck-font: "Inter", system-ui, -apple-system, sans-serif;--rck-bg: #ffffff;--rck-surface: #f8fafc;--rck-surface-hover: #f1f5f9;--rck-border: #e2e8f0;--rck-border-focus: #6366f1;--rck-text-primary: #0f172a;--rck-text-secondary: #64748b;--rck-text-placeholder: #94a3b8;--rck-accent: #6366f1;--rck-accent-light: #eef2ff;--rck-accent-dark: #4f46e5;--rck-selected-bg: #eef2ff;--rck-selected-text: #4f46e5;--rck-shadow-sm: 0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .05);--rck-shadow-md: 0 4px 16px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .06);--rck-shadow-lg: 0 10px 30px rgba(0, 0, 0, .12), 0 4px 10px rgba(0, 0, 0, .07);--rck-radius-sm: 8px;--rck-radius-md: 12px;--rck-radius-lg: 16px;--rck-transition: .18s cubic-bezier(.4, 0, .2, 1);--rck-dropdown-max-height: 320px;--rck-z-index: 9999}[data-theme=dark]{--rck-bg: #1e293b;--rck-surface: #0f172a;--rck-surface-hover: #1e293b;--rck-border: #334155;--rck-border-focus: #818cf8;--rck-text-primary: #f8fafc;--rck-text-secondary: #94a3b8;--rck-text-placeholder: #64748b;--rck-accent: #818cf8;--rck-accent-light: #1e1b4b;--rck-accent-dark: #6366f1;--rck-selected-bg: #1e1b4b;--rck-selected-text: #a5b4fc;--rck-shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--rck-shadow-md: 0 4px 16px rgba(0, 0, 0, .4);--rck-shadow-lg: 0 10px 30px rgba(0, 0, 0, .5)}.rck-picker{position:relative;display:inline-flex;flex-direction:column;font-family:var(--rck-font);width:100%}.rck-label{display:block;font-size:.8125rem;font-weight:600;color:var(--rck-text-secondary);margin-bottom:6px;letter-spacing:.02em;text-transform:uppercase}.rck-trigger{display:flex;align-items:center;gap:10px;width:100%;padding:11px 14px;background:var(--rck-bg);border:1.5px solid var(--rck-border);border-radius:var(--rck-radius-md);cursor:pointer;font-family:var(--rck-font);font-size:.9375rem;color:var(--rck-text-primary);text-align:left;transition:border-color var(--rck-transition),box-shadow var(--rck-transition),background var(--rck-transition);outline:none;box-shadow:var(--rck-shadow-sm);min-height:46px;-webkit-user-select:none;user-select:none}.rck-trigger:hover:not(:disabled){border-color:var(--rck-accent);box-shadow:var(--rck-shadow-md)}.rck-trigger:focus-visible{border-color:var(--rck-border-focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--rck-accent) 20%,transparent)}.rck-trigger.rck-open{border-color:var(--rck-border-focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--rck-accent) 20%,transparent)}.rck-trigger:disabled{opacity:.5;cursor:not-allowed;background:var(--rck-surface)}.rck-trigger-content{flex:1;display:flex;align-items:center;gap:8px;min-width:0;overflow:hidden}.rck-trigger-text{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rck-placeholder{color:var(--rck-text-placeholder)}.rck-badge{display:inline-flex;align-items:center;padding:2px 8px;background:var(--rck-accent-light);color:var(--rck-accent-dark);border-radius:100px;font-size:.75rem;font-weight:600;letter-spacing:.03em;flex-shrink:0}.rck-flag{font-size:1.375rem;line-height:1;flex-shrink:0;display:flex;align-items:center}.rck-flag-img{width:24px;height:16px;object-fit:cover;border-radius:2px;box-shadow:0 0 0 1px #0000000d}.rck-flag-wrapper{display:inline-flex;align-items:center}.rck-chevron{flex-shrink:0;width:18px;height:18px;color:var(--rck-text-secondary);transition:transform var(--rck-transition),color var(--rck-transition)}.rck-trigger.rck-open .rck-chevron{transform:rotate(180deg);color:var(--rck-accent)}.rck-dropdown{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:var(--rck-z-index);background:var(--rck-bg);border:1.5px solid var(--rck-border);border-radius:var(--rck-radius-lg);box-shadow:var(--rck-shadow-lg);overflow:hidden;display:flex;flex-direction:column;animation:rck-dropdown-in var(--rck-transition) both;transform-origin:top}@keyframes rck-dropdown-in{0%{opacity:0;transform:scaleY(.92) translateY(-6px)}to{opacity:1;transform:scaleY(1) translateY(0)}}.rck-search-wrapper{padding:12px 12px 8px;border-bottom:1px solid var(--rck-border)}.rck-search{display:flex;align-items:center;gap:8px;background:var(--rck-surface);border:1.5px solid var(--rck-border);border-radius:var(--rck-radius-sm);padding:8px 12px;transition:border-color var(--rck-transition),box-shadow var(--rck-transition)}.rck-search:focus-within{border-color:var(--rck-border-focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--rck-accent) 15%,transparent)}.rck-search-icon{width:15px;height:15px;color:var(--rck-text-placeholder);flex-shrink:0}.rck-search input{flex:1;border:none;background:transparent;font-family:var(--rck-font);font-size:.875rem;color:var(--rck-text-primary);outline:none;min-width:0}.rck-search input::placeholder{color:var(--rck-text-placeholder)}.rck-list{overflow-y:auto;max-height:var(--rck-dropdown-max-height);padding:6px;scrollbar-width:thin;scrollbar-color:var(--rck-border) transparent}.rck-list::-webkit-scrollbar{width:4px}.rck-list::-webkit-scrollbar-track{background:transparent}.rck-list::-webkit-scrollbar-thumb{background:var(--rck-border);border-radius:99px}.rck-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--rck-radius-sm);cursor:pointer;transition:background var(--rck-transition),color var(--rck-transition);font-family:var(--rck-font);font-size:.9rem;color:var(--rck-text-primary);border:none;background:transparent;width:100%;text-align:left;-webkit-user-select:none;user-select:none;outline:none}.rck-item:hover,.rck-item:focus-visible{background:var(--rck-surface-hover)}.rck-item.rck-item-selected{background:var(--rck-selected-bg);color:var(--rck-selected-text);font-weight:600}.rck-item-flag{font-size:1.25rem;line-height:1;flex-shrink:0}.rck-item-main{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0}.rck-item-name{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rck-item-sub{font-size:.76rem;color:var(--rck-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rck-item-selected .rck-item-sub{color:var(--rck-accent-dark);opacity:.8}.rck-item-right{display:flex;align-items:center;gap:6px;flex-shrink:0}.rck-item-phone{font-size:.78rem;color:var(--rck-text-secondary);font-variant-numeric:tabular-nums;background:var(--rck-surface);padding:2px 6px;border-radius:4px}.rck-item-symbol{font-size:1rem;font-weight:600;color:var(--rck-accent);min-width:24px;text-align:center}.rck-item-check{width:16px;height:16px;color:var(--rck-accent);flex-shrink:0}.rck-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px 16px;gap:8px;color:var(--rck-text-secondary);font-size:.875rem}.rck-empty-icon{font-size:2rem;opacity:.4}.rck-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:calc(var(--rck-z-index) - 1)}.rck-offset-badge{font-size:.72rem;font-weight:600;padding:2px 6px;border-radius:4px;background:var(--rck-accent-light);color:var(--rck-accent-dark);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.rck-native-name{font-size:.78rem;color:var(--rck-text-secondary);font-style:italic}.rck-phone-wrapper{display:flex;flex-direction:column;gap:6px;font-family:var(--rck-font);width:100%;position:relative}.rck-phone-field{display:flex;align-items:stretch;border:1.5px solid var(--rck-border);border-radius:var(--rck-radius-md);background:var(--rck-bg);box-shadow:var(--rck-shadow-sm);overflow:visible;position:relative;transition:border-color var(--rck-transition),box-shadow var(--rck-transition);min-height:46px}.rck-phone-field:focus-within{border-color:var(--rck-border-focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--rck-accent) 20%,transparent)}.rck-phone-field.rck-phone-disabled{opacity:.5;pointer-events:none;background:var(--rck-surface)}.rck-phone-country-btn{display:flex;align-items:center;gap:5px;padding:0 12px;border:none;border-right:1.5px solid var(--rck-border);border-radius:var(--rck-radius-md) 0 0 var(--rck-radius-md);background:var(--rck-surface);cursor:pointer;font-family:var(--rck-font);font-size:.875rem;font-weight:600;color:var(--rck-text-primary);white-space:nowrap;flex-shrink:0;transition:background var(--rck-transition);outline:none}.rck-phone-country-btn:hover:not(:disabled){background:var(--rck-surface-hover)}.rck-phone-flag{font-size:1.25rem;line-height:1}.rck-phone-dial{font-size:.875rem;font-weight:600;color:var(--rck-accent);font-variant-numeric:tabular-nums;letter-spacing:.01em}.rck-phone-chevron{width:14px;height:14px;color:var(--rck-text-secondary);transition:transform var(--rck-transition)}.rck-phone-country-btn[aria-expanded=true] .rck-phone-chevron{transform:rotate(180deg)}.rck-phone-input{flex:1;border:none;background:transparent;font-family:var(--rck-font);font-size:.9375rem;color:var(--rck-text-primary);padding:0 14px;outline:none;min-width:0}.rck-phone-input::placeholder{color:var(--rck-text-placeholder)}.rck-phone-dropdown{position:absolute;top:calc(100% + 6px);left:0;min-width:280px;z-index:var(--rck-z-index);background:var(--rck-bg);border:1.5px solid var(--rck-border);border-radius:var(--rck-radius-lg);box-shadow:var(--rck-shadow-lg);overflow:hidden;animation:rck-dropdown-in var(--rck-transition) both}.rck-multiselect-trigger{display:flex;align-items:center;gap:6px;width:100%;min-height:46px;padding:7px 14px;background:var(--rck-bg);border:1.5px solid var(--rck-border);border-radius:var(--rck-radius-md);cursor:pointer;font-family:var(--rck-font);text-align:left;transition:border-color var(--rck-transition),box-shadow var(--rck-transition);outline:none;box-shadow:var(--rck-shadow-sm)}.rck-multiselect-trigger:hover:not(:disabled){border-color:var(--rck-accent);box-shadow:var(--rck-shadow-md)}.rck-multiselect-trigger:focus-visible,.rck-multiselect-trigger.rck-open{border-color:var(--rck-border-focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--rck-accent) 20%,transparent)}.rck-multiselect-trigger:disabled{opacity:.5;cursor:not-allowed}.rck-chips-area{flex:1;display:flex;flex-wrap:wrap;gap:5px;min-width:0;align-items:center}.rck-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;background:var(--rck-accent-light);color:var(--rck-accent-dark);border-radius:100px;font-size:.8rem;font-weight:600;white-space:nowrap;max-width:140px;overflow:hidden}.rck-chip-label{overflow:hidden;text-overflow:ellipsis}.rck-chip-remove{display:inline-flex;align-items:center;justify-content:center;border:none;background:none;cursor:pointer;padding:0;color:var(--rck-accent-dark);opacity:.6;transition:opacity .15s;flex-shrink:0}.rck-chip-remove:hover{opacity:1}.rck-chip-overflow{display:inline-flex;align-items:center;padding:3px 8px;background:var(--rck-surface-hover);color:var(--rck-text-secondary);border-radius:100px;font-size:.78rem;font-weight:600;white-space:nowrap}.rck-multiselect-clear{display:inline-flex;align-items:center;justify-content:center;border:none;background:none;cursor:pointer;color:var(--rck-text-secondary);padding:2px;border-radius:4px;transition:color .15s,background .15s;flex-shrink:0}.rck-multiselect-clear:hover{color:var(--rck-text-primary);background:var(--rck-surface-hover)}.rck-item-check-multi{width:16px;height:16px;background:var(--rck-accent);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.rck-item-check-multi svg{width:10px;height:10px;stroke:#fff}.rck-item-check-empty{width:16px;height:16px;border:1.5px solid var(--rck-border);border-radius:50%;flex-shrink:0}
|