@alikhalilll/ui 1.2.1 → 1.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/README.md +68 -45
  2. package/dist/assets/styles.css +2 -74
  3. package/dist/chunks/AResponsivePopoverContent.vue_vue_type_script_setup_true_lang-BrBsDiHc.mjs +113 -0
  4. package/dist/chunks/AResponsivePopoverContent.vue_vue_type_script_setup_true_lang-BrBsDiHc.mjs.map +1 -0
  5. package/dist/chunks/ATellInput.vue_vue_type_script_setup_true_lang-D4odgAna.mjs +1606 -0
  6. package/dist/chunks/ATellInput.vue_vue_type_script_setup_true_lang-D4odgAna.mjs.map +1 -0
  7. package/dist/chunks/useEventScrollLock-BcP8fg-L.mjs +241 -0
  8. package/dist/chunks/useEventScrollLock-BcP8fg-L.mjs.map +1 -0
  9. package/dist/entries/drawer/components/ADrawer.vue.d.ts +27 -0
  10. package/dist/entries/drawer/components/ADrawer.vue.d.ts.map +1 -0
  11. package/dist/entries/drawer/components/ADrawerContent.vue.d.ts +29 -0
  12. package/dist/entries/drawer/components/ADrawerContent.vue.d.ts.map +1 -0
  13. package/dist/entries/drawer/components/ADrawerOverlay.vue.d.ts +9 -0
  14. package/dist/entries/drawer/components/ADrawerOverlay.vue.d.ts.map +1 -0
  15. package/dist/entries/drawer/components/ADrawerTrigger.vue.d.ts +11 -0
  16. package/dist/entries/drawer/components/ADrawerTrigger.vue.d.ts.map +1 -0
  17. package/dist/entries/drawer/index.d.ts +5 -0
  18. package/dist/entries/drawer/index.d.ts.map +1 -0
  19. package/dist/entries/input/components/AInput.vue.d.ts +32 -0
  20. package/dist/entries/input/components/AInput.vue.d.ts.map +1 -0
  21. package/dist/entries/input/index.d.ts +2 -0
  22. package/dist/entries/input/index.d.ts.map +1 -0
  23. package/dist/entries/popover/components/APopover.vue.d.ts +20 -0
  24. package/dist/entries/popover/components/APopover.vue.d.ts.map +1 -0
  25. package/dist/entries/popover/components/APopoverContent.vue.d.ts +44 -0
  26. package/dist/entries/popover/components/APopoverContent.vue.d.ts.map +1 -0
  27. package/dist/entries/popover/components/APopoverOverlay.vue.d.ts +17 -0
  28. package/dist/entries/popover/components/APopoverOverlay.vue.d.ts.map +1 -0
  29. package/dist/entries/popover/components/APopoverTrigger.vue.d.ts +11 -0
  30. package/dist/entries/popover/components/APopoverTrigger.vue.d.ts.map +1 -0
  31. package/dist/entries/popover/composables/useEventScrollLock.d.ts +21 -0
  32. package/dist/entries/popover/composables/useEventScrollLock.d.ts.map +1 -0
  33. package/dist/entries/popover/index.d.ts +6 -0
  34. package/dist/entries/popover/index.d.ts.map +1 -0
  35. package/dist/entries/responsive-popover/components/AResponsivePopover.vue.d.ts +46 -0
  36. package/dist/entries/responsive-popover/components/AResponsivePopover.vue.d.ts.map +1 -0
  37. package/dist/entries/responsive-popover/components/AResponsivePopoverContent.vue.d.ts +35 -0
  38. package/dist/entries/responsive-popover/components/AResponsivePopoverContent.vue.d.ts.map +1 -0
  39. package/dist/entries/responsive-popover/components/AResponsivePopoverTrigger.vue.d.ts +16 -0
  40. package/dist/entries/responsive-popover/components/AResponsivePopoverTrigger.vue.d.ts.map +1 -0
  41. package/dist/entries/responsive-popover/composables/useResponsivePopoverContext.d.ts +10 -0
  42. package/dist/entries/responsive-popover/composables/useResponsivePopoverContext.d.ts.map +1 -0
  43. package/dist/entries/responsive-popover/index.d.ts +4 -0
  44. package/dist/entries/responsive-popover/index.d.ts.map +1 -0
  45. package/dist/entries/tell-input/components/ACountryFlag.vue.d.ts +26 -0
  46. package/dist/entries/tell-input/components/ACountryFlag.vue.d.ts.map +1 -0
  47. package/dist/entries/tell-input/components/ACountrySelect.vue.d.ts +136 -0
  48. package/dist/entries/tell-input/components/ACountrySelect.vue.d.ts.map +1 -0
  49. package/dist/entries/tell-input/components/ATellInput.vue.d.ts +141 -0
  50. package/dist/entries/tell-input/components/ATellInput.vue.d.ts.map +1 -0
  51. package/dist/entries/tell-input/composables/useCountryDetection.d.ts +44 -0
  52. package/dist/entries/tell-input/composables/useCountryDetection.d.ts.map +1 -0
  53. package/dist/entries/tell-input/composables/useCountryMatching.d.ts +44 -0
  54. package/dist/entries/tell-input/composables/useCountryMatching.d.ts.map +1 -0
  55. package/dist/entries/tell-input/composables/usePhoneValidation.d.ts +110 -0
  56. package/dist/entries/tell-input/composables/usePhoneValidation.d.ts.map +1 -0
  57. package/dist/entries/tell-input/composables/useTellInputValidation.d.ts +67 -0
  58. package/dist/entries/tell-input/composables/useTellInputValidation.d.ts.map +1 -0
  59. package/dist/entries/tell-input/composables/useTypingPhase.d.ts +50 -0
  60. package/dist/entries/tell-input/composables/useTypingPhase.d.ts.map +1 -0
  61. package/dist/entries/tell-input/index.d.ts +12 -0
  62. package/dist/entries/tell-input/index.d.ts.map +1 -0
  63. package/dist/entries/tell-input/utils/digits.d.ts +22 -0
  64. package/dist/entries/tell-input/utils/digits.d.ts.map +1 -0
  65. package/dist/entries/tell-input/utils/flag-url.d.ts +8 -0
  66. package/dist/entries/tell-input/utils/flag-url.d.ts.map +1 -0
  67. package/dist/entries/tell-input/utils/types.d.ts +120 -0
  68. package/dist/entries/tell-input/utils/types.d.ts.map +1 -0
  69. package/dist/index.d.ts +7 -1139
  70. package/dist/index.d.ts.map +1 -0
  71. package/dist/index.mjs +39 -33
  72. package/dist/popover.mjs +5 -4
  73. package/dist/responsive-popover.mjs +1 -1
  74. package/dist/tell-input.mjs +14 -9
  75. package/dist/utils/cn.d.ts +3 -0
  76. package/dist/utils/cn.d.ts.map +1 -0
  77. package/dist/utils/index.d.ts +3 -0
  78. package/dist/utils/index.d.ts.map +1 -0
  79. package/dist/{utils.d.ts → utils/sizes.d.ts} +18 -29
  80. package/dist/utils/sizes.d.ts.map +1 -0
  81. package/package.json +14 -10
  82. package/dist/chunks/APopoverContent.vue_vue_type_script_setup_true_lang-CjiJ12DR.mjs +0 -132
  83. package/dist/chunks/APopoverContent.vue_vue_type_script_setup_true_lang-CjiJ12DR.mjs.map +0 -1
  84. package/dist/chunks/AResponsivePopoverContent.vue_vue_type_script_setup_true_lang-5YbO6FdM.mjs +0 -92
  85. package/dist/chunks/AResponsivePopoverContent.vue_vue_type_script_setup_true_lang-5YbO6FdM.mjs.map +0 -1
  86. package/dist/chunks/ATellInput.vue_vue_type_script_setup_true_lang-D7hPj1g1.mjs +0 -1489
  87. package/dist/chunks/ATellInput.vue_vue_type_script_setup_true_lang-D7hPj1g1.mjs.map +0 -1
  88. package/dist/drawer.d.ts +0 -116
  89. package/dist/input.d.ts +0 -65
  90. package/dist/popover.d.ts +0 -117
  91. package/dist/responsive-popover.d.ts +0 -124
  92. package/dist/tell-input.d.ts +0 -740
@@ -0,0 +1,12 @@
1
+ export { default as ATellInput } from './components/ATellInput.vue';
2
+ export { default as ACountrySelect } from './components/ACountrySelect.vue';
3
+ export { default as ACountryFlag } from './components/ACountryFlag.vue';
4
+ export { aTellInputVariants, DEFAULT_ERROR_MESSAGES, DEFAULT_MESSAGES, resolveMessages, type ATellInputProps, type ATellInputSize, type ATellInputVariants, type ATellInputDir, type TellInputMessages, type TellInputMessagesInput, } from './utils/types';
5
+ export { defaultFlagUrl, type FlagUrlBuilder } from './utils/flag-url';
6
+ export { normalizeDigits, LOCALE_DIGIT_RANGES } from './utils/digits';
7
+ export * from './composables/usePhoneValidation';
8
+ export * from './composables/useCountryDetection';
9
+ export * from './composables/useCountryMatching';
10
+ export * from './composables/useTypingPhase';
11
+ export * from './composables/useTellInputValidation';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../entries/tell-input/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAGxE,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EACf,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,GAC5B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGvE,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAGtE,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAClD,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sCAAsC,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Alternative-numeral support. Phone numbers are routinely entered with the digits of the
3
+ * user's own script — Arabic-Indic, Persian/Urdu, Devanagari, Bengali. `libphonenumber-js`
4
+ * and our own `\d` cleanup only understand ASCII `0-9`, so anything else silently becomes
5
+ * an empty number. `normalizeDigits` folds those scripts down to ASCII before validation.
6
+ */
7
+ /**
8
+ * Base code points of contiguous decimal-digit blocks. Each block runs `base`‥`base+9`
9
+ * for digit `0`‥`9`, so the ASCII digit is `codePoint - base`. Add a script by appending
10
+ * one entry here.
11
+ */
12
+ export declare const LOCALE_DIGIT_RANGES: {
13
+ name: string;
14
+ base: number;
15
+ }[];
16
+ /**
17
+ * Replace any supported non-ASCII decimal digit with its ASCII equivalent. Every other
18
+ * character (spaces, `+`, separators, letters) is left untouched — callers still run their
19
+ * own `\D` cleanup afterwards.
20
+ */
21
+ export declare function normalizeDigits(input: string): string;
22
+ //# sourceMappingURL=digits.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"digits.d.ts","sourceRoot":"","sources":["../../../../entries/tell-input/utils/digits.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAK/D,CAAC;AAWF;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQrD"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Default flag URL builder — flagcdn.com hosts PNG flags at multiple widths and is
3
+ * generous with caching + no API key required. Swap via the `flagUrl` prop on
4
+ * ATellInput / ACountrySelect / ACountryFlag to use any other source.
5
+ */
6
+ export declare function defaultFlagUrl(iso2: string, width?: number): string;
7
+ export type FlagUrlBuilder = (iso2: string, width: number) => string;
8
+ //# sourceMappingURL=flag-url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flag-url.d.ts","sourceRoot":"","sources":["../../../../entries/tell-input/utils/flag-url.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,MAAM,CAE/D;AAED,MAAM,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC"}
@@ -0,0 +1,120 @@
1
+ import type { HTMLAttributes } from 'vue';
2
+ import { type VariantProps } from 'class-variance-authority';
3
+ import type { DetectionStrategy } from '../composables/useCountryDetection';
4
+ import type { PhoneValidationReason } from '../composables/usePhoneValidation';
5
+ import { type Size } from '../../../utils';
6
+ /** Alias for the shared `Size` scale — kept for backwards-friendly naming. */
7
+ export type ATellInputSize = Size;
8
+ export declare const aTellInputVariants: (props?: ({
9
+ size?: "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
10
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
11
+ export type ATellInputVariants = VariantProps<typeof aTellInputVariants>;
12
+ /** Text direction for the field. `'auto'` (or omitting the prop) inherits from the
13
+ * nearest `[dir]` ancestor / `<html dir>`; `'ltr'` / `'rtl'` force it. */
14
+ export type ATellInputDir = 'ltr' | 'rtl' | 'auto';
15
+ /**
16
+ * Every user-facing string in the tell-input UI, bundled so a consumer can localize the
17
+ * component in one prop. Each key has an English default in {@link DEFAULT_MESSAGES}.
18
+ */
19
+ export interface TellInputMessages {
20
+ /** Placeholder of the country-picker search box. */
21
+ searchPlaceholder: string;
22
+ /** Shown when a search yields no countries. */
23
+ emptyText: string;
24
+ /** Shown while the country list is loading. */
25
+ loadingText: string;
26
+ /** Header of the "Suggested" group (current + recent picks). */
27
+ suggestedLabel: string;
28
+ /** Header of the full country list. */
29
+ allCountriesLabel: string;
30
+ /** Validation error text, keyed by reason. */
31
+ errorMessages: Record<PhoneValidationReason, string>;
32
+ /** Prefix of the country trigger's `aria-label`, e.g. `"Country: Egypt"`. */
33
+ countryLabel: string;
34
+ /** `aria-label` of the country trigger when no country is selected. */
35
+ selectCountryLabel: string;
36
+ /** `aria-label` of the phone input element. */
37
+ phoneInputLabel: string;
38
+ }
39
+ /** Partial override shape for the `messages` prop — every key (and every error reason) is optional. */
40
+ export type TellInputMessagesInput = Partial<Omit<TellInputMessages, 'errorMessages'>> & {
41
+ errorMessages?: Partial<Record<PhoneValidationReason, string>>;
42
+ };
43
+ export interface ATellInputProps {
44
+ class?: HTMLAttributes['class'];
45
+ placeholder?: string;
46
+ disabled?: boolean;
47
+ loading?: boolean;
48
+ size?: ATellInputSize;
49
+ /**
50
+ * Text direction. Omit (or pass `'auto'`) to inherit from the page — RTL pages get an
51
+ * RTL field automatically. Pass `'ltr'` / `'rtl'` to force it.
52
+ */
53
+ dir?: ATellInputDir;
54
+ /**
55
+ * BCP-47 locale (e.g. `'ar'`, `'fr'`). When set, country names render localized via
56
+ * `Intl.DisplayNames` and the format hint uses the locale's numerals.
57
+ */
58
+ locale?: string;
59
+ /**
60
+ * Localized UI strings. A single bag covering the picker, validation errors, and a11y
61
+ * labels. Individual props (`searchPlaceholder`, `emptyText`, `loadingText`,
62
+ * `errorMessages`) take precedence over the matching `messages` key when both are set.
63
+ */
64
+ messages?: TellInputMessagesInput;
65
+ /**
66
+ * Whitelist of allowed dial-digit codes (no `+`), e.g. `['20', '966']`.
67
+ * Countries outside this list are still shown in the picker but rendered as disabled.
68
+ */
69
+ allowedDialCodes?: string[];
70
+ /** Light up the field's validation styling — coloured border + ring on the input and the
71
+ * error message line below — when the number is valid / invalid. Default `false`, so the
72
+ * field stays neutral and validation surfacing is left to the consumer (via the
73
+ * `validation` ref exposure). */
74
+ showValidation?: boolean;
75
+ /** Show the green check / red alert icon at the end of the field. Default `false`; opt
76
+ * in with `true`. Independent of `showValidation` — you can show the icon without the
77
+ * coloured field, or vice versa. The slots `#valid-icon` / `#error-icon` still apply. */
78
+ showValidationIcon?: boolean;
79
+ /**
80
+ * Country auto-detect strategy. Defaults to `'auto'` — try IP geolocation first, then
81
+ * timezone, then `navigator.language`, finally `defaultCountry`.
82
+ */
83
+ detectCountry?: DetectionStrategy;
84
+ /**
85
+ * Initial country. Accepts either an ISO2 code (`'EG'`) or a dial-digit string
86
+ * (`'20'`, `'+20'`). When set, the picker is visible at mount with this country
87
+ * pre-selected — overrides the hidden-until-detected default.
88
+ */
89
+ defaultCountry?: string;
90
+ /** Override the IP geolocation endpoint. Must return JSON with `country_code` or `country`. */
91
+ ipEndpoint?: string;
92
+ /** Localized strings for the country picker UI. */
93
+ searchPlaceholder?: string;
94
+ emptyText?: string;
95
+ loadingText?: string;
96
+ /** Error labels keyed by reason. Each gets a sensible English default. */
97
+ errorMessages?: Partial<Record<PhoneValidationReason, string>>;
98
+ /**
99
+ * When true, the country picker is hidden until a leading dial code is detected in the
100
+ * phone input. Every keystroke runs a longest-prefix match against known dial codes; on
101
+ * first match the picker reveals with that country and the matched dial digits are
102
+ * stripped from `phone`. Skips the onMount IP/timezone/locale detection chain.
103
+ */
104
+ detectFromInput?: boolean;
105
+ /**
106
+ * Debounce window (ms) for `detectFromInput` detection. Each keystroke schedules the
107
+ * libphonenumber parse + lookup; bursts of typing/paste collapse into a single call.
108
+ * Clearing the input is not debounced — the picker hides immediately. Default 150ms.
109
+ */
110
+ detectDebounceMs?: number;
111
+ }
112
+ export declare const DEFAULT_ERROR_MESSAGES: Record<PhoneValidationReason, string>;
113
+ /** English defaults for every {@link TellInputMessages} key. */
114
+ export declare const DEFAULT_MESSAGES: TellInputMessages;
115
+ /**
116
+ * Merge a partial `messages` override onto the English defaults. Used internally by
117
+ * `ATellInput` to resolve a complete {@link TellInputMessages} object.
118
+ */
119
+ export declare function resolveMessages(input?: TellInputMessagesInput): TellInputMessages;
120
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../entries/tell-input/utils/types.ts"],"names":[],"mappings":"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"}