react-country-kit 1.3.0 β 2.1.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 +2 -2
- package/dist/components/CountryMultiSelect.d.ts +2 -0
- package/dist/components/CountryPicker/CountryPicker.d.ts +2 -2
- package/dist/components/CountryPicker.d.ts +2 -0
- package/dist/components/CurrencyMultiSelect/CurrencyMultiSelect.d.ts +2 -2
- package/dist/components/CurrencyMultiSelect.d.ts +2 -0
- package/dist/components/CurrencyPicker/CurrencyPicker.d.ts +2 -2
- package/dist/components/CurrencyPicker.d.ts +2 -0
- package/dist/components/DivisionPicker/DivisionPicker.d.ts +2 -2
- package/dist/components/DivisionPicker.d.ts +2 -0
- package/dist/components/LanguagePicker/LanguagePicker.d.ts +2 -2
- package/dist/components/LanguagePicker.d.ts +2 -0
- package/dist/components/PhoneInput/PhoneInput.d.ts +2 -2
- package/dist/components/PhoneInput.d.ts +3 -0
- package/dist/components/TimezonePicker/TimezonePicker.d.ts +2 -2
- package/dist/components/TimezonePicker.d.ts +2 -0
- package/dist/components/primitives.d.ts +82 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs.map +1 -0
- package/dist/lib/utils.d.ts +6 -0
- package/dist/react-country-kit.cjs.js.map +1 -1
- package/dist/react-country-kit.es.js.map +1 -1
- package/dist/ui.cjs.js +3 -0
- package/dist/ui.d.ts +17 -0
- package/dist/ui.es.js +899 -0
- package/package.json +3 -3
- package/dist/index.d.ts +0 -9
|
@@ -1 +1 @@
|
|
|
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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"}
|
|
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 { ICountryMultiSelectProps, ICountry } 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}: ICountryMultiSelectProps) {\n const multi = useMultiSelect<ICountry>(\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 { ICountryPickerProps } 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}: ICountryPickerProps) {\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 { ICurrencyMultiSelectProps, ICurrency } 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}: ICurrencyMultiSelectProps) {\n const multi = useMultiSelect<ICurrency>(\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 { ICurrencyPickerProps } 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}: ICurrencyPickerProps) {\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 { IDivisionPickerProps } 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}: IDivisionPickerProps) {\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 { ILanguagePickerProps } 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}: ILanguagePickerProps) {\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 { IPhoneInputProps } 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}: IPhoneInputProps) {\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 { ITimezonePickerProps } 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}: ITimezonePickerProps) {\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/dist/ui.cjs.js
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var I=Object.create,W=Object.defineProperty,K=Object.getOwnPropertyDescriptor,X=Object.getOwnPropertyNames,G=Object.getPrototypeOf,H=Object.prototype.hasOwnProperty,J=(t,s,i,c)=>{if(s&&typeof s=="object"||typeof s=="function")for(var o=X(s),l=0,p=o.length,j;l<p;l++)j=o[l],!H.call(t,j)&&j!==i&&W(t,j,{get:(f=>s[f]).bind(null,j),enumerable:!(c=K(s,j))||c.enumerable});return t},U=(t,s,i)=>(i=t!=null?I(G(t)):{},J(s||!t||!t.__esModule?W(i,"default",{value:t,enumerable:!0}):i,t));let g=require("react");g=U(g,1);let R=require("@radix-ui/react-popover");R=U(R,1);let Y=require("clsx"),Z=require("tailwind-merge"),e=require("react/jsx-runtime"),y=require("react-country-kit-core");function w(...t){return(0,Z.twMerge)((0,Y.clsx)(t))}var A=R.Root,V=R.Trigger,D=({className:t})=>(0,e.jsx)("svg",{className:w("h-4 w-4 text-primary",t),viewBox:"0 0 20 20",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:(0,e.jsx)("polyline",{points:"4 10 8 14 16 6"})});D.displayName="CheckIcon";var q=({children:t,className:s})=>(0,e.jsx)("label",{className:w("text-[0.65rem] font-bold uppercase tracking-[0.12em] text-muted-foreground/80 ml-1 mb-1.5 block",s),children:t});q.displayName="FieldLabel";var v=({children:t,className:s})=>(0,e.jsx)("span",{className:w("inline-flex items-center rounded-full bg-primary/20 px-2.5 py-0.5 text-[0.7rem] font-bold text-primary tracking-tight",s),children:t});v.displayName="Badge";var O=({iso2:t,flag:s,flagUrl:i,className:c})=>(0,e.jsx)("span",{className:w("inline-flex items-center justify-center shrink-0 overflow-hidden",c),children:(0,e.jsx)("img",{src:i,alt:t,className:"h-[1em] w-[1.5em] object-cover rounded-[1px] shadow-[0_0_0_1px_rgba(0,0,0,0.05)]",onError:o=>{if(o.target.style.display="none",o.target.parentElement){const l=document.createElement("span");l.textContent=s,o.target.parentElement.appendChild(l)}}})});O.displayName="Flag";var M=g.default.forwardRef(({className:t,align:s="start",sideOffset:i=6,onCloseAutoFocus:c,...o},l)=>(0,e.jsx)(R.Portal,{children:(0,e.jsx)(R.Content,{ref:l,align:s,sideOffset:i,onCloseAutoFocus:p=>{p.preventDefault(),c?.(p)},className:w("z-50 w-[var(--radix-popover-trigger-width)] rounded-xl border border-border bg-popover p-0 shadow-lg","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95","data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2",t),...o})}));M.displayName="PopoverContent";var k=g.default.forwardRef(({className:t,...s},i)=>(0,e.jsx)("div",{ref:i,className:w("flex h-full w-full flex-col overflow-hidden rounded-xl bg-popover text-popover-foreground",t),...s}));k.displayName="CommandRoot";var S=g.default.forwardRef(({className:t,onValueChange:s,...i},c)=>(0,e.jsx)("div",{className:"px-3 pt-3 pb-2 border-b border-border",children:(0,e.jsxs)("div",{className:w("flex items-center gap-2 px-3 py-1.5 rounded-lg border border-border bg-muted/40 transition-colors","focus-within:border-primary/50 focus-within:ring-2 focus-within:ring-primary/10"),children:[(0,e.jsxs)("svg",{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground",viewBox:"0 0 20 20",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[(0,e.jsx)("circle",{cx:"8.5",cy:"8.5",r:"5.5"}),(0,e.jsx)("path",{d:"M17 17l-4-4",strokeLinecap:"round"})]}),(0,e.jsx)("input",{ref:c,type:"text",autoComplete:"off",autoCorrect:"off",spellCheck:!1,className:w("flex h-8 w-full bg-transparent text-sm outline-none","placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",t),onChange:o=>s?.(o.target.value),...i})]})}));S.displayName="CommandInput";var _=g.default.forwardRef(({className:t,...s},i)=>(0,e.jsx)("div",{ref:i,role:"listbox",className:w("max-h-72 overflow-y-auto overflow-x-hidden p-1",t),...s}));_.displayName="CommandList";var P=g.default.forwardRef((t,s)=>(0,e.jsx)("div",{ref:s,className:"flex flex-col items-center justify-center gap-1 py-8 text-sm text-muted-foreground",...t}));P.displayName="CommandEmpty";var L=g.default.forwardRef(({className:t,onSelect:s,onMouseDown:i,onKeyDown:c,disabled:o,selected:l,value:p,...j},f)=>(0,e.jsx)("div",{ref:f,role:"option","aria-disabled":o||void 0,"aria-selected":l,"data-disabled":o||void 0,"data-selected":l||void 0,tabIndex:o?void 0:0,className:w("relative flex cursor-pointer select-none items-center gap-2 rounded-lg px-2 py-2 text-sm outline-none","focus:bg-accent focus:text-accent-foreground","data-[disabled]:pointer-events-none data-[disabled]:opacity-50","hover:bg-accent/50 transition-colors",l&&"bg-accent text-accent-foreground font-semibold",t),onMouseDown:r=>{r.preventDefault(),i?.(r)},onClick:o?void 0:()=>s?.(),onKeyDown:r=>{!o&&r.key==="Enter"&&(r.preventDefault(),s?.()),c?.(r)},...j}));L.displayName="CommandItem";var E=g.default.forwardRef(({className:t,isOpen:s,children:i,placeholder:c,hasValue:o,...l},p)=>(0,e.jsxs)("button",{ref:p,type:"button",role:"combobox","aria-expanded":s,"aria-haspopup":"listbox",className:w("flex h-12 w-full items-center justify-between gap-3 rounded-xl border border-input bg-background px-4 py-2 text-sm ring-offset-background","placeholder:text-muted-foreground","focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2","disabled:cursor-not-allowed disabled:opacity-50","hover:bg-accent/10 transition-all",!o&&"text-muted-foreground",t),...l,children:[(0,e.jsx)("span",{className:"flex min-w-0 flex-1 items-center gap-2 truncate",children:i||(0,e.jsx)("span",{children:c})}),(0,e.jsx)("svg",{className:w("h-4 w-4 shrink-0 text-muted-foreground/60 transition-transform duration-200",s&&"rotate-180"),viewBox:"0 0 20 20",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:(0,e.jsx)("polyline",{points:"6 8 10 12 14 8"})})]}));E.displayName="PickerTrigger";var B=g.default.forwardRef(({label:t,trigger:s,children:i,open:c,onOpenChange:o,className:l},p)=>(0,e.jsxs)("div",{ref:p,className:w("flex flex-col gap-0",l),children:[t&&(0,e.jsx)(q,{children:t}),(0,e.jsxs)(A,{open:c,onOpenChange:o,children:[(0,e.jsx)(V,{asChild:!0,children:s}),(0,e.jsx)(M,{className:"p-0",children:i})]})]}));B.displayName="BasePicker";var F=g.default.forwardRef(({value:t,onRemove:s,onClear:i,isOpen:c,placeholder:o,renderChip:l,maxVisible:p=3,className:j,disabled:f,...r},h)=>{const d=t.slice(0,p),N=t.length-p;return(0,e.jsxs)("button",{ref:h,type:"button","aria-haspopup":"listbox","aria-expanded":c,disabled:f,className:w("flex min-h-[3rem] w-full items-center gap-3 rounded-xl border border-input bg-background px-4 py-2","text-sm ring-offset-background focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2","disabled:cursor-not-allowed disabled:opacity-50 hover:bg-accent/10 transition-all text-start",c&&"ring-2 ring-ring ring-offset-2",j),...r,children:[(0,e.jsx)("div",{className:"flex flex-1 flex-wrap gap-1.5 min-w-0 items-center",children:t.length===0?(0,e.jsx)("span",{className:"text-muted-foreground",children:o}):(0,e.jsxs)(e.Fragment,{children:[d.map((m,b)=>(0,e.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full bg-primary/10 px-2 py-0.5 text-[0.75rem] font-semibold text-primary",children:[l(m),(0,e.jsx)("span",{role:"button",tabIndex:f?-1:0,onClick:x=>{x.stopPropagation(),f||s(m,x)},onKeyDown:x=>{(x.key==="Enter"||x.key===" ")&&(x.preventDefault(),x.stopPropagation(),f||s(m,x))},className:"ml-0.5 rounded-full text-primary/60 hover:text-primary transition-colors cursor-pointer","aria-label":"Remove",children:(0,e.jsxs)("svg",{width:"9",height:"9",viewBox:"0 0 20 20",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",children:[(0,e.jsx)("line",{x1:"5",y1:"5",x2:"15",y2:"15"}),(0,e.jsx)("line",{x1:"15",y1:"5",x2:"5",y2:"15"})]})})]},b)),N>0&&(0,e.jsxs)(v,{className:"bg-muted text-muted-foreground/80 px-2",children:["+",N]})]})}),(0,e.jsxs)("div",{className:"flex shrink-0 items-center gap-1 ml-auto",children:[t.length>0&&(0,e.jsx)("span",{role:"button",tabIndex:f?-1:0,onClick:m=>{m.stopPropagation(),f||i(m)},onKeyDown:m=>{(m.key==="Enter"||m.key===" ")&&(m.preventDefault(),m.stopPropagation(),f||i(m))},className:"rounded p-0.5 text-muted-foreground hover:text-foreground hover:bg-accent/30 transition-colors cursor-pointer","aria-label":"Clear all",children:(0,e.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 20 20",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:[(0,e.jsx)("line",{x1:"5",y1:"5",x2:"15",y2:"15"}),(0,e.jsx)("line",{x1:"15",y1:"5",x2:"5",y2:"15"})]})}),(0,e.jsx)("svg",{className:w("h-4 w-4 text-muted-foreground/60 transition-transform duration-200",c&&"rotate-180"),viewBox:"0 0 20 20",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:(0,e.jsx)("polyline",{points:"6 8 10 12 14 8"})})]})]})});F.displayName="MultiSelectTrigger";var z=3;function ee({value:t,onChange:s,placeholder:i="Select countries...",maxItems:c,showFlags:o=!0,searchable:l=!0,disabled:p=!1,className:j,label:f}){const[r,h]=(0,g.useState)(!1),[d,N]=(0,g.useState)(""),m=d?(0,y.searchCountries)(d):(0,y.getAllCountries)(),b=n=>t.some(C=>C.iso2===n.iso2),x=n=>{if(b(n))s(t.filter(C=>C.iso2!==n.iso2));else{if(c!==void 0&&t.length>=c)return;s([...t,n])}},a=(n,C)=>{C.stopPropagation(),s(t.filter(T=>T.iso2!==n.iso2))},u=n=>{n.stopPropagation(),s([])};return t.slice(0,z),t.length-z,(0,e.jsxs)(B,{label:f,className:j,open:r,onOpenChange:h,trigger:(0,e.jsx)(F,{value:t,onRemove:a,onClear:u,isOpen:r,placeholder:i,disabled:p,renderChip:n=>(0,e.jsxs)(e.Fragment,{children:[o&&(0,e.jsx)(O,{iso2:n.iso2,flag:n.flag,flagUrl:n.flag_url}),(0,e.jsx)("span",{className:"max-w-[80px] truncate",children:n.name})]})}),children:[(0,e.jsxs)(k,{children:[l&&(0,e.jsx)(S,{placeholder:"Search countries...",value:d,onValueChange:N}),(0,e.jsxs)(_,{children:[m.length===0&&(0,e.jsxs)(P,{children:[(0,e.jsx)("span",{className:"text-2xl opacity-40",children:"π"}),(0,e.jsx)("span",{children:"No countries found"})]}),m.map(n=>{const C=b(n);return(0,e.jsxs)(L,{onSelect:()=>x(n),selected:C,children:[(0,e.jsx)("div",{className:w("h-4 w-4 shrink-0 rounded-full border border-border flex items-center justify-center",C&&"bg-primary border-primary"),children:C&&(0,e.jsx)("svg",{className:"h-2.5 w-2.5 stroke-white",viewBox:"0 0 20 20",fill:"none",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:(0,e.jsx)("polyline",{points:"4 10 8 14 16 6"})})}),o&&(0,e.jsx)(O,{iso2:n.iso2,flag:n.flag,flagUrl:n.flag_url}),(0,e.jsxs)("div",{className:"flex flex-1 flex-col min-w-0",children:[(0,e.jsx)("span",{className:"truncate font-medium",children:n.name}),(0,e.jsxs)("span",{className:"text-[0.7rem] text-muted-foreground",children:[n.iso3," Β· +",n.phone_code]})]})]},n.iso2)})]})]}),t.length>0&&(0,e.jsxs)("div",{className:"flex items-center justify-between border-t border-border px-3 py-2 text-xs text-muted-foreground",children:[(0,e.jsxs)("span",{children:[t.length," selected",c?` / ${c}`:""]}),(0,e.jsx)("button",{type:"button",onClick:()=>{s([]),h(!1)},className:"text-destructive hover:underline font-medium",children:"Clear all"})]})]})}function te({value:t,onChange:s,placeholder:i="Select a country...",searchable:c=!0,showFlag:o=!0,showPhoneCode:l=!1,disabled:p=!1,className:j,label:f}){const[r,h]=(0,g.useState)(!1),[d,N]=(0,g.useState)(""),m=d?(0,y.searchCountries)(d):(0,y.getAllCountries)(),b=x=>{const a=(0,y.getAllCountries)().find(u=>u.iso2.toLowerCase()===x.toLowerCase());a&&(s(a),h(!1),N(""))};return(0,e.jsx)(B,{label:f,className:j,open:r,onOpenChange:h,trigger:(0,e.jsx)(E,{isOpen:r,hasValue:!!t,placeholder:i,disabled:p,children:t&&(0,e.jsxs)(e.Fragment,{children:[o&&(0,e.jsx)(O,{iso2:t.iso2,flag:t.flag,flagUrl:t.flag_url}),(0,e.jsx)("span",{className:"flex-1 text-start truncate",children:t.name}),l&&(0,e.jsxs)(v,{children:["+",t.phone_code]})]})}),children:(0,e.jsxs)(k,{children:[c&&(0,e.jsx)(S,{placeholder:"Search country...",value:d,onValueChange:N}),(0,e.jsxs)(_,{children:[m.length===0&&(0,e.jsxs)(P,{children:[(0,e.jsx)("span",{className:"text-2xl opacity-40",children:"π"}),(0,e.jsx)("span",{children:"No countries found"})]}),m.map(x=>{const a=t?.iso2===x.iso2;return(0,e.jsxs)(L,{onSelect:()=>b(x.iso2),selected:a,children:[o&&(0,e.jsx)(O,{iso2:x.iso2,flag:x.flag,flagUrl:x.flag_url}),(0,e.jsxs)("div",{className:"flex flex-1 flex-col gap-0 min-w-0",children:[(0,e.jsx)("span",{className:"truncate font-medium",children:x.name}),(0,e.jsxs)("span",{className:"text-[0.7rem] text-muted-foreground",children:[x.iso3," Β· ",x.division_type]})]}),(0,e.jsxs)("div",{className:"flex items-center gap-1.5 ml-auto shrink-0",children:[l&&(0,e.jsxs)("span",{className:"text-[0.7rem] text-muted-foreground tabular-nums bg-muted px-1.5 py-0.5 rounded",children:["+",x.phone_code]}),a&&(0,e.jsx)(D,{})]})]},x.iso2)})]})]})})}var Q=3;function se({value:t,onChange:s,placeholder:i="Select currencies...",maxItems:c,showSymbol:o=!0,searchable:l=!0,disabled:p=!1,className:j,label:f}){const[r,h]=(0,g.useState)(!1),[d,N]=(0,g.useState)(""),m=d?(0,y.searchCurrencies)(d):(0,y.getAllCurrencies)(),b=n=>t.some(C=>C.code===n.code),x=n=>{if(b(n))s(t.filter(C=>C.code!==n.code));else{if(c!==void 0&&t.length>=c)return;s([...t,n])}},a=(n,C)=>{C.stopPropagation(),s(t.filter(T=>T.code!==n.code))},u=n=>{n.stopPropagation(),s([])};return t.slice(0,Q),t.length-Q,(0,e.jsxs)(B,{label:f,className:j,open:r,onOpenChange:h,trigger:(0,e.jsx)(F,{value:t,onRemove:a,onClear:u,isOpen:r,placeholder:i,disabled:p,renderChip:n=>(0,e.jsxs)(e.Fragment,{children:[o&&(0,e.jsx)("span",{className:"font-bold",children:n.symbol}),(0,e.jsx)("span",{children:n.code})]})}),children:[(0,e.jsxs)(k,{children:[l&&(0,e.jsx)(S,{placeholder:"Search currencies...",value:d,onValueChange:N}),(0,e.jsxs)(_,{children:[m.length===0&&(0,e.jsxs)(P,{children:[(0,e.jsx)("span",{className:"text-2xl opacity-40",children:"π°"}),(0,e.jsx)("span",{children:"No currencies found"})]}),m.map(n=>{const C=b(n);return(0,e.jsxs)(L,{onSelect:()=>x(n),selected:C,children:[(0,e.jsx)("div",{className:w("h-4 w-4 shrink-0 rounded-full border border-border flex items-center justify-center",C&&"bg-primary border-primary"),children:C&&(0,e.jsx)("svg",{className:"h-2.5 w-2.5 stroke-white",viewBox:"0 0 20 20",fill:"none",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:(0,e.jsx)("polyline",{points:"4 10 8 14 16 6"})})}),o&&(0,e.jsx)("span",{className:"min-w-[1.5rem] text-center font-bold text-primary",children:n.symbol}),(0,e.jsxs)("div",{className:"flex flex-1 flex-col min-w-0",children:[(0,e.jsx)("span",{className:"truncate font-medium",children:n.name}),(0,e.jsx)("span",{className:"text-[0.7rem] text-muted-foreground",children:n.code})]})]},n.code)})]})]}),t.length>0&&(0,e.jsxs)("div",{className:"flex items-center justify-between border-t border-border px-3 py-2 text-xs text-muted-foreground",children:[(0,e.jsxs)("span",{children:[t.length," selected",c?` / ${c}`:""]}),(0,e.jsx)("button",{type:"button",onClick:()=>{s([]),h(!1)},className:"text-destructive hover:underline font-medium",children:"Clear all"})]})]})}function ne({value:t,onChange:s,placeholder:i="Select a currency...",searchable:c=!0,showSymbol:o=!0,countryIso2:l,autoSelect:p=!0,disabled:j=!1,className:f,label:r}){const[h,d]=(0,g.useState)(!1),[N,m]=(0,g.useState)("");(0,g.useEffect)(()=>{if(l&&p&&!t){const u=(0,y.getCurrencyByCountry)(l);u&&s(u)}},[l,p,t,s]);const x=N?(0,y.searchCurrencies)(N,l):(()=>{if(l){const u=(0,y.getCurrencyByCountry)(l);return u?[u]:[]}return(0,y.getAllCurrencies)()})(),a=u=>{const n=(0,y.getAllCurrencies)().find(C=>C.code.toLowerCase()===u.toLowerCase());n&&(s(n),d(!1),m(""))};return(0,e.jsx)(B,{label:r,className:f,open:h,onOpenChange:d,trigger:(0,e.jsx)(E,{isOpen:h,hasValue:!!t,placeholder:i,disabled:j,children:t&&(0,e.jsxs)(e.Fragment,{children:[o&&(0,e.jsx)("span",{className:"min-w-[1.5rem] text-center font-bold text-primary text-base",children:t.symbol}),(0,e.jsxs)("span",{className:"flex-1 text-start truncate",children:[t.code," β ",t.name]})]})}),children:(0,e.jsxs)(k,{children:[c&&(0,e.jsx)(S,{placeholder:"Search currency...",value:N,onValueChange:m}),(0,e.jsxs)(_,{children:[x.length===0&&(0,e.jsxs)(P,{children:[(0,e.jsx)("span",{className:"text-2xl opacity-40",children:"π°"}),(0,e.jsx)("span",{children:"No currencies found"})]}),x.map(u=>{const n=t?.code===u.code;return(0,e.jsxs)(L,{onSelect:()=>a(u.code),selected:n,children:[o&&(0,e.jsx)("span",{className:"min-w-[1.5rem] text-center font-bold text-primary",children:u.symbol}),(0,e.jsxs)("div",{className:"flex flex-1 flex-col gap-0 min-w-0",children:[(0,e.jsx)("span",{className:"truncate font-medium",children:u.name}),(0,e.jsx)("span",{className:"text-[0.7rem] text-muted-foreground",children:u.code})]}),n&&(0,e.jsx)(D,{className:"ml-auto shrink-0"})]},u.code)})]})]})})}function re({countryIso2:t,value:s,onChange:i,placeholder:c="Select a division...",searchable:o=!0,disabled:l=!1,className:p,label:j}){const[f,r]=(0,g.useState)(!1),[h,d]=(0,g.useState)(""),N=(0,y.getDivisionsByCountry)(t),m=h?N.filter(a=>a.name.toLowerCase().includes(h.toLowerCase())||a.iso2.toLowerCase().includes(h.toLowerCase())||a.timezone.toLowerCase().includes(h.toLowerCase())):N,b=l||!t||N.length===0,x=a=>{const u=N.find(n=>n.name===a);u&&(i(u),r(!1),d(""))};return(0,e.jsx)(B,{label:j,className:p,open:f,onOpenChange:a=>!b&&r(a),trigger:(0,e.jsx)(E,{isOpen:f,hasValue:!!s,placeholder:t?c:"Select a country first",disabled:b,children:s&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("span",{className:"flex-1 text-start truncate",children:s.name}),(0,e.jsx)(v,{children:s.iso2})]})}),children:(0,e.jsxs)(k,{children:[o&&(0,e.jsx)(S,{placeholder:"Search division...",value:h,onValueChange:d}),(0,e.jsxs)(_,{children:[m.length===0&&(0,e.jsxs)(P,{children:[(0,e.jsx)("span",{className:"text-2xl opacity-40",children:"πΊοΈ"}),(0,e.jsx)("span",{children:"No divisions found"})]}),m.map(a=>{const u=s?.iso2===a.iso2&&s?.name===a.name;return(0,e.jsxs)(L,{onSelect:()=>x(a.name),selected:u,children:[(0,e.jsxs)("div",{className:"flex flex-1 flex-col gap-0 min-w-0",children:[(0,e.jsx)("span",{className:"truncate font-medium",children:a.name}),(0,e.jsx)("span",{className:"text-[0.7rem] text-muted-foreground truncate",children:a.timezone})]}),(0,e.jsxs)("div",{className:"flex items-center gap-1.5 ml-auto shrink-0",children:[(0,e.jsx)(v,{children:a.iso2}),u&&(0,e.jsx)(D,{})]})]},`${a.iso2}-${a.name}`)})]})]})})}function oe({value:t,onChange:s,placeholder:i="Select a language...",searchable:c=!0,showNativeName:o=!0,disabled:l=!1,className:p,label:j}){const[f,r]=(0,g.useState)(!1),[h,d]=(0,g.useState)(""),N=h?(0,y.searchLanguages)(h):(0,y.getAllLanguages)(),m=b=>{const x=(0,y.getAllLanguages)().find(a=>a.code.toLowerCase()===b.toLowerCase());x&&(s(x),r(!1),d(""))};return(0,e.jsx)(B,{label:j,className:p,open:f,onOpenChange:r,trigger:(0,e.jsx)(E,{isOpen:f,hasValue:!!t,placeholder:i,disabled:l,children:t&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("span",{className:"flex-1 text-start truncate",children:t.english_name}),o&&t.native_name!==t.english_name&&(0,e.jsx)("span",{className:"text-xs italic text-muted-foreground shrink-0",children:t.native_name})]})}),children:(0,e.jsxs)(k,{children:[c&&(0,e.jsx)(S,{placeholder:"Search language...",value:h,onValueChange:d}),(0,e.jsxs)(_,{children:[N.length===0&&(0,e.jsxs)(P,{children:[(0,e.jsx)("span",{className:"text-2xl opacity-40",children:"π"}),(0,e.jsx)("span",{children:"No languages found"})]}),N.map(b=>{const x=t?.code===b.code;return(0,e.jsxs)(L,{onSelect:()=>m(b.code),selected:x,children:[(0,e.jsxs)("div",{className:"flex flex-1 flex-col gap-0 min-w-0",children:[(0,e.jsx)("span",{className:"truncate font-medium",children:b.english_name}),o&&b.native_name!==b.english_name&&(0,e.jsx)("span",{className:"text-[0.7rem] text-muted-foreground italic",children:b.native_name})]}),(0,e.jsxs)("div",{className:"flex items-center gap-1.5 ml-auto shrink-0",children:[(0,e.jsx)(v,{className:"text-[0.6rem]",children:b.code}),x&&(0,e.jsx)(D,{})]})]},b.code)})]})]})})}var $=g.default.forwardRef(({value:t,onChange:s,defaultCountryIso2:i="US",placeholder:c="Phone number",showFlag:o=!0,disabled:l=!1,className:p,label:j},f)=>{const r=(0,y.usePhoneInput)(t,s,i),h=(0,y.useCountry)(r.country?.iso2);return(0,e.jsxs)("div",{ref:f,className:w("flex flex-col gap-0",p),children:[j&&(0,e.jsx)(q,{children:j}),(0,e.jsxs)("div",{className:w("flex h-12 items-stretch overflow-hidden rounded-xl border border-input bg-background ring-offset-background","focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2","transition-shadow",l&&"opacity-50 pointer-events-none"),children:[(0,e.jsxs)(A,{open:r.isOpen,onOpenChange:d=>d?r.toggle():r.close(),children:[(0,e.jsx)(V,{asChild:!0,children:(0,e.jsxs)("button",{type:"button",disabled:l,className:w("flex h-full shrink-0 items-center gap-1.5 border-r border-input bg-muted px-3","text-sm font-semibold text-foreground transition-colors outline-none","hover:bg-accent/30 focus-visible:bg-accent/30"),children:[o&&r.country&&(0,e.jsx)(O,{iso2:r.country.iso2,flag:r.country.flag,flagUrl:r.country.flag_url}),(0,e.jsx)("span",{className:"tabular-nums text-primary",children:r.country?`+${r.country.phone_code}`:"+?"}),(0,e.jsx)("svg",{className:w("h-3.5 w-3.5 shrink-0 text-muted-foreground transition-transform duration-200",r.isOpen&&"rotate-180"),viewBox:"0 0 20 20",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:(0,e.jsx)("polyline",{points:"5 8 10 13 15 8"})})]})}),(0,e.jsx)(M,{align:"start",side:"bottom",sideOffset:4,className:"w-72",children:(0,e.jsxs)(k,{children:[(0,e.jsx)(S,{placeholder:"Search country or code...",value:r.searchQuery,onValueChange:r.setSearchQuery}),(0,e.jsxs)(_,{children:[r.filteredCountries.length===0&&(0,e.jsxs)(P,{children:[(0,e.jsx)("span",{className:"text-2xl opacity-40",children:"π"}),(0,e.jsx)("span",{children:"No countries found"})]}),r.filteredCountries.map(d=>(0,e.jsxs)(L,{onSelect:()=>r.selectCountry(d),selected:r.country?.iso2===d.iso2,children:[(0,e.jsx)(O,{iso2:d.iso2,flag:d.flag,flagUrl:d.flag_url}),(0,e.jsx)("div",{className:"flex flex-1 flex-col min-w-0",children:(0,e.jsx)("span",{className:"truncate font-medium text-sm",children:d.name})}),(0,e.jsxs)(v,{className:"ml-auto tabular-nums text-[0.7rem]",children:["+",d.phone_code]})]},d.iso2))]})]})})]}),(0,e.jsx)("input",{type:"tel",value:r.number,onChange:d=>r.setNumber(d.target.value),placeholder:c,disabled:l,minLength:h.phoneLengths.min,maxLength:h.phoneLengths.max,inputMode:"numeric",autoComplete:"tel-national",className:w("flex-1 min-w-0 bg-transparent px-3 text-sm text-foreground","placeholder:text-muted-foreground","focus:outline-none")})]}),r.value&&(0,e.jsxs)("p",{className:"text-[0.7rem] text-muted-foreground tabular-nums pl-0.5",children:["Full:"," ",(0,e.jsx)("span",{className:"font-mono text-primary",children:r.value.full})]})]})});$.displayName="PhoneInput";function ae({value:t,onChange:s,placeholder:i="Select a timezone...",searchable:c=!0,countryIso2:o,autoSelect:l=!0,disabled:p=!1,className:j,label:f}){const[r,h]=(0,g.useState)(!1),[d,N]=(0,g.useState)("");(0,g.useEffect)(()=>{if(o&&l&&!t){const a=(0,y.getTimezonesByCountry)(o);a&&a.length>0&&s(a[0])}},[o,l,t,s]);const m=o?(0,y.getTimezonesByCountry)(o):(0,y.getAllTimezones)(),b=d?(0,y.searchTimezones)(d,o):m,x=a=>{const u=m.find(n=>n.name===a);u&&(s(u),h(!1),N(""))};return(0,e.jsx)(B,{label:f,className:j,open:r,onOpenChange:h,trigger:(0,e.jsx)(E,{isOpen:r,hasValue:!!t,placeholder:i,disabled:p,children:t&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("span",{className:"flex-1 text-start truncate",children:t.name}),(0,e.jsx)(v,{children:t.offset_name})]})}),children:(0,e.jsxs)(k,{children:[c&&(0,e.jsx)(S,{placeholder:"Search timezone...",value:d,onValueChange:N}),(0,e.jsxs)(_,{children:[b.length===0&&(0,e.jsxs)(P,{children:[(0,e.jsx)("span",{className:"text-2xl opacity-40",children:"π"}),(0,e.jsx)("span",{children:"No timezones found"})]}),b.map(a=>{const u=t?.name===a.name;return(0,e.jsxs)(L,{onSelect:()=>x(a.name),selected:u,children:[(0,e.jsxs)("div",{className:"flex flex-1 flex-col gap-0 min-w-0",children:[(0,e.jsx)("span",{className:"truncate font-medium",children:a.name}),(0,e.jsxs)("span",{className:"text-[0.7rem] text-muted-foreground",children:[a.tzName," Β· ",a.abbreviation]})]}),(0,e.jsxs)("div",{className:"flex items-center gap-1.5 ml-auto shrink-0",children:[(0,e.jsx)(v,{className:"tabular-nums text-[0.65rem]",children:a.offset_name}),u&&(0,e.jsx)(D,{})]})]},a.name)})]})]})})}exports.Badge=v;exports.CheckIcon=D;exports.CommandEmpty=P;exports.CommandInput=S;exports.CommandItem=L;exports.CommandList=_;exports.CommandRoot=k;exports.CountryMultiSelect=ee;exports.CountryPicker=te;exports.CurrencyMultiSelect=se;exports.CurrencyPicker=ne;exports.DivisionPicker=re;exports.Flag=O;exports.LanguagePicker=oe;exports.PhoneInput=$;exports.PickerTrigger=E;exports.Popover=A;exports.PopoverContent=M;exports.PopoverTrigger=V;exports.TimezonePicker=ae;exports.cn=w;Object.keys(y).forEach(function(t){t!=="default"&&!Object.prototype.hasOwnProperty.call(exports,t)&&Object.defineProperty(exports,t,{enumerable:!0,get:function(){return y[t]}})});
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=index.js.map
|
package/dist/ui.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* react-country-kit-ui
|
|
3
|
+
*
|
|
4
|
+
* shadcn/Tailwind CSS variants of all pickers.
|
|
5
|
+
* Built on @radix-ui/react-popover with native search/list primitives.
|
|
6
|
+
*/
|
|
7
|
+
export { CountryMultiSelect } from './components/CountryMultiSelect';
|
|
8
|
+
export { CountryPicker } from './components/CountryPicker';
|
|
9
|
+
export { CurrencyMultiSelect } from './components/CurrencyMultiSelect';
|
|
10
|
+
export { CurrencyPicker } from './components/CurrencyPicker';
|
|
11
|
+
export { DivisionPicker } from './components/DivisionPicker';
|
|
12
|
+
export { LanguagePicker } from './components/LanguagePicker';
|
|
13
|
+
export { PhoneInput } from './components/PhoneInput';
|
|
14
|
+
export { TimezonePicker } from './components/TimezonePicker';
|
|
15
|
+
export { Badge, CheckIcon, CommandEmpty, CommandInput, CommandItem, CommandList, CommandRoot, Flag, PickerTrigger, Popover, PopoverContent, PopoverTrigger } from './components/primitives';
|
|
16
|
+
export { cn } from './lib/utils';
|
|
17
|
+
export * from 'react-country-kit-core';
|