asheeui 0.6.2 → 0.6.5

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 (281) hide show
  1. package/dist/AsheeUIProvider.d.ts +34 -0
  2. package/dist/AsheeUIProvider.d.ts.map +1 -1
  3. package/dist/components/accordion/Accordion.d.ts +55 -44
  4. package/dist/components/accordion/Accordion.d.ts.map +1 -1
  5. package/dist/components/accordion/Accordion.js +27 -27
  6. package/dist/components/accordion/accordion-config.d.ts +41 -12
  7. package/dist/components/accordion/accordion-config.d.ts.map +1 -1
  8. package/dist/components/accordion/accordion-styles.d.ts +20 -0
  9. package/dist/components/accordion/accordion-styles.d.ts.map +1 -1
  10. package/dist/components/accordion/accordion-styles.js +1 -1
  11. package/dist/components/autocomplete/Autocomplete.d.ts +59 -39
  12. package/dist/components/autocomplete/Autocomplete.d.ts.map +1 -1
  13. package/dist/components/autocomplete/Autocomplete.js +98 -91
  14. package/dist/components/autocomplete/autocomplete-config.d.ts +9 -62
  15. package/dist/components/autocomplete/autocomplete-config.d.ts.map +1 -1
  16. package/dist/components/autocomplete/autocomplete-config.js +6 -21
  17. package/dist/components/button/Button.d.ts +50 -51
  18. package/dist/components/button/Button.d.ts.map +1 -1
  19. package/dist/components/button/Button.js +19 -19
  20. package/dist/components/button/button-config.d.ts +23 -15
  21. package/dist/components/button/button-config.d.ts.map +1 -1
  22. package/dist/components/button/button-styles.d.ts +11 -1
  23. package/dist/components/button/button-styles.d.ts.map +1 -1
  24. package/dist/components/card/Card.d.ts +85 -43
  25. package/dist/components/card/Card.d.ts.map +1 -1
  26. package/dist/components/card/Card.js +49 -49
  27. package/dist/components/card/card-config.d.ts +35 -18
  28. package/dist/components/card/card-config.d.ts.map +1 -1
  29. package/dist/components/card/card-config.js +0 -2
  30. package/dist/components/card/card-styles.d.ts +17 -1
  31. package/dist/components/card/card-styles.d.ts.map +1 -1
  32. package/dist/components/carousel/Carousel.d.ts +107 -12
  33. package/dist/components/carousel/Carousel.d.ts.map +1 -1
  34. package/dist/components/carousel/Carousel.js +63 -64
  35. package/dist/components/carousel/carousel-config.d.ts +94 -7
  36. package/dist/components/carousel/carousel-config.d.ts.map +1 -1
  37. package/dist/components/carousel/carousel-config.js +6 -4
  38. package/dist/components/carousel/carousel-styles.d.ts +32 -1
  39. package/dist/components/carousel/carousel-styles.d.ts.map +1 -1
  40. package/dist/components/chip/Chip.d.ts +55 -34
  41. package/dist/components/chip/Chip.d.ts.map +1 -1
  42. package/dist/components/chip/Chip.js +71 -72
  43. package/dist/components/chip/chip-config.d.ts +29 -15
  44. package/dist/components/chip/chip-config.d.ts.map +1 -1
  45. package/dist/components/chip/chip-config.js +5 -6
  46. package/dist/components/chip/chip-styles.d.ts +21 -1
  47. package/dist/components/chip/chip-styles.d.ts.map +1 -1
  48. package/dist/components/date-picker/DatePicker.d.ts +166 -2
  49. package/dist/components/date-picker/DatePicker.d.ts.map +1 -1
  50. package/dist/components/date-picker/DatePicker.js +110 -99
  51. package/dist/components/date-picker/date-picker-config.d.ts +31 -0
  52. package/dist/components/date-picker/date-picker-config.d.ts.map +1 -1
  53. package/dist/components/date-picker/date-picker-config.js +8 -16
  54. package/dist/components/date-picker/date-picker-styles.d.ts +21 -1
  55. package/dist/components/date-picker/date-picker-styles.d.ts.map +1 -1
  56. package/dist/components/date-picker/date-picker-styles.js +7 -11
  57. package/dist/components/drawer/Drawer.d.ts +97 -7
  58. package/dist/components/drawer/Drawer.d.ts.map +1 -1
  59. package/dist/components/drawer/Drawer.js +9 -9
  60. package/dist/components/drawer/drawer-config.d.ts +54 -1
  61. package/dist/components/drawer/drawer-config.d.ts.map +1 -1
  62. package/dist/components/drawer/drawer-styles.d.ts +21 -0
  63. package/dist/components/drawer/drawer-styles.d.ts.map +1 -1
  64. package/dist/components/field/FieldShell.d.ts +86 -0
  65. package/dist/components/field/FieldShell.d.ts.map +1 -1
  66. package/dist/components/field/field-config.d.ts +66 -3
  67. package/dist/components/field/field-config.d.ts.map +1 -1
  68. package/dist/components/field/field-config.js +2 -1
  69. package/dist/components/field/field-styles.d.ts +22 -0
  70. package/dist/components/field/field-styles.d.ts.map +1 -1
  71. package/dist/components/field/field-styles.js +10 -0
  72. package/dist/components/field/index.js +1 -0
  73. package/dist/components/image/Image.d.ts +35 -28
  74. package/dist/components/image/Image.d.ts.map +1 -1
  75. package/dist/components/image/Image.js +7 -7
  76. package/dist/components/image/image-config.d.ts +25 -7
  77. package/dist/components/image/image-config.d.ts.map +1 -1
  78. package/dist/components/image/image-styles.d.ts +9 -0
  79. package/dist/components/image/image-styles.d.ts.map +1 -1
  80. package/dist/components/input/Input.d.ts +117 -10
  81. package/dist/components/input/Input.d.ts.map +1 -1
  82. package/dist/components/input/Input.js +20 -20
  83. package/dist/components/input/PasswordInput.d.ts +48 -0
  84. package/dist/components/input/PasswordInput.d.ts.map +1 -1
  85. package/dist/components/input/input-config.d.ts +10 -1
  86. package/dist/components/input/input-config.d.ts.map +1 -1
  87. package/dist/components/input/input-config.js +5 -8
  88. package/dist/components/input/input-styles.d.ts +10 -0
  89. package/dist/components/input/input-styles.d.ts.map +1 -1
  90. package/dist/components/input/input-styles.js +5 -9
  91. package/dist/components/keyboard/OnScreenKeyboard.d.ts +58 -8
  92. package/dist/components/keyboard/OnScreenKeyboard.d.ts.map +1 -1
  93. package/dist/components/keyboard/OnScreenKeyboard.js +49 -48
  94. package/dist/components/keyboard/index.js +1 -1
  95. package/dist/components/keyboard/keyboard-config.d.ts +88 -3
  96. package/dist/components/keyboard/keyboard-config.d.ts.map +1 -1
  97. package/dist/components/keyboard/{default-keyboard-config.js → keyboard-config.js} +7 -1
  98. package/dist/components/keyboard/keyboard-context.d.ts +103 -13
  99. package/dist/components/keyboard/keyboard-context.d.ts.map +1 -1
  100. package/dist/components/keyboard/keyboard-context.js +66 -68
  101. package/dist/components/keyboard/use-keyboard-field.d.ts +37 -0
  102. package/dist/components/keyboard/use-keyboard-field.d.ts.map +1 -1
  103. package/dist/components/link/Link.d.ts +118 -9
  104. package/dist/components/link/Link.d.ts.map +1 -1
  105. package/dist/components/link/Link.js +29 -30
  106. package/dist/components/link/link-config.d.ts +58 -5
  107. package/dist/components/link/link-config.d.ts.map +1 -1
  108. package/dist/components/link/link-styles.d.ts +24 -4
  109. package/dist/components/link/link-styles.d.ts.map +1 -1
  110. package/dist/components/marquee/Marquee.d.ts +77 -8
  111. package/dist/components/marquee/Marquee.d.ts.map +1 -1
  112. package/dist/components/marquee/Marquee.js +5 -5
  113. package/dist/components/marquee/marquee-config.d.ts +74 -0
  114. package/dist/components/marquee/marquee-config.d.ts.map +1 -1
  115. package/dist/components/marquee/marquee-styles.d.ts +12 -0
  116. package/dist/components/marquee/marquee-styles.d.ts.map +1 -1
  117. package/dist/components/modal/Modal.d.ts +113 -25
  118. package/dist/components/modal/Modal.d.ts.map +1 -1
  119. package/dist/components/modal/Modal.js +75 -82
  120. package/dist/components/modal/modal-config.d.ts +59 -1
  121. package/dist/components/modal/modal-config.d.ts.map +1 -1
  122. package/dist/components/modal/modal-styles.d.ts +8 -1
  123. package/dist/components/modal/modal-styles.d.ts.map +1 -1
  124. package/dist/components/modal/modal-styles.js +4 -11
  125. package/dist/components/multi-select/MultiSelect.d.ts +152 -23
  126. package/dist/components/multi-select/MultiSelect.d.ts.map +1 -1
  127. package/dist/components/multi-select/MultiSelect.js +195 -217
  128. package/dist/components/multi-select/multi-select-config.d.ts +61 -23
  129. package/dist/components/multi-select/multi-select-config.d.ts.map +1 -1
  130. package/dist/components/multi-select/multi-select-config.js +16 -25
  131. package/dist/components/multi-select/multi-select-styles.d.ts +17 -0
  132. package/dist/components/multi-select/multi-select-styles.d.ts.map +1 -1
  133. package/dist/components/multi-select/multi-select-styles.js +9 -13
  134. package/dist/components/radio/Radio.d.ts +137 -13
  135. package/dist/components/radio/Radio.d.ts.map +1 -1
  136. package/dist/components/radio/Radio.js +66 -141
  137. package/dist/components/radio/RadioGroup.d.ts +88 -23
  138. package/dist/components/radio/RadioGroup.d.ts.map +1 -1
  139. package/dist/components/radio/RadioGroup.js +141 -66
  140. package/dist/components/radio/radio-config.d.ts +36 -11
  141. package/dist/components/radio/radio-config.d.ts.map +1 -1
  142. package/dist/components/radio/radio-config.js +9 -11
  143. package/dist/components/radio/radio-context.d.ts +44 -1
  144. package/dist/components/radio/radio-context.d.ts.map +1 -1
  145. package/dist/components/radio/radio-styles.d.ts +24 -1
  146. package/dist/components/radio/radio-styles.d.ts.map +1 -1
  147. package/dist/components/resizable-screen/ResizableScreen.d.ts +79 -32
  148. package/dist/components/resizable-screen/ResizableScreen.d.ts.map +1 -1
  149. package/dist/components/resizable-screen/ResizableScreen.js +77 -72
  150. package/dist/components/resizable-screen/resizable-screen-config.d.ts +62 -0
  151. package/dist/components/resizable-screen/resizable-screen-config.d.ts.map +1 -1
  152. package/dist/components/scrollbar/scrollbar-config.d.ts +44 -9
  153. package/dist/components/scrollbar/scrollbar-config.d.ts.map +1 -1
  154. package/dist/components/select/Select.d.ts +157 -17
  155. package/dist/components/select/Select.d.ts.map +1 -1
  156. package/dist/components/select/Select.js +141 -152
  157. package/dist/components/select/select-config.d.ts +26 -19
  158. package/dist/components/select/select-config.d.ts.map +1 -1
  159. package/dist/components/select/select-config.js +5 -21
  160. package/dist/components/select/select-styles.d.ts +10 -0
  161. package/dist/components/select/select-styles.d.ts.map +1 -1
  162. package/dist/components/select/select-styles.js +5 -9
  163. package/dist/components/select-menu/SelectMenu.d.ts +125 -8
  164. package/dist/components/select-menu/SelectMenu.d.ts.map +1 -1
  165. package/dist/components/select-menu/SelectMenu.js +107 -79
  166. package/dist/components/select-menu/index.d.ts +2 -0
  167. package/dist/components/select-menu/index.d.ts.map +1 -1
  168. package/dist/components/select-menu/index.js +1 -0
  169. package/dist/components/select-menu/select-menu-config.d.ts +82 -0
  170. package/dist/components/select-menu/select-menu-config.d.ts.map +1 -0
  171. package/dist/components/select-menu/select-menu-config.js +12 -0
  172. package/dist/components/sidebar/Sidebar.d.ts +151 -51
  173. package/dist/components/sidebar/Sidebar.d.ts.map +1 -1
  174. package/dist/components/sidebar/Sidebar.js +211 -232
  175. package/dist/components/sidebar/sidebar-config.d.ts +140 -21
  176. package/dist/components/sidebar/sidebar-config.d.ts.map +1 -1
  177. package/dist/components/sidebar/sidebar-config.js +9 -12
  178. package/dist/components/sidebar/sidebar-styles.d.ts +24 -0
  179. package/dist/components/sidebar/sidebar-styles.d.ts.map +1 -1
  180. package/dist/components/spinner/spinner-config.d.ts +15 -9
  181. package/dist/components/spinner/spinner-config.d.ts.map +1 -1
  182. package/dist/components/spinner/spinner-styles.d.ts +10 -3
  183. package/dist/components/spinner/spinner-styles.d.ts.map +1 -1
  184. package/dist/components/spinner/spinner.d.ts +27 -20
  185. package/dist/components/spinner/spinner.d.ts.map +1 -1
  186. package/dist/components/spinner/spinner.js +18 -18
  187. package/dist/components/switch/Switch.d.ts +109 -9
  188. package/dist/components/switch/Switch.d.ts.map +1 -1
  189. package/dist/components/switch/Switch.js +19 -19
  190. package/dist/components/switch/switch-config.d.ts +20 -6
  191. package/dist/components/switch/switch-config.d.ts.map +1 -1
  192. package/dist/components/switch/switch-config.js +8 -16
  193. package/dist/components/switch/switch-styles.d.ts +17 -0
  194. package/dist/components/switch/switch-styles.d.ts.map +1 -1
  195. package/dist/components/table/Table.d.ts +101 -28
  196. package/dist/components/table/Table.d.ts.map +1 -1
  197. package/dist/components/table/Table.js +56 -56
  198. package/dist/components/table/table-config.d.ts +75 -8
  199. package/dist/components/table/table-config.d.ts.map +1 -1
  200. package/dist/components/table/table-styles.d.ts +25 -6
  201. package/dist/components/table/table-styles.d.ts.map +1 -1
  202. package/dist/components/tabs/Tabs.d.ts +84 -31
  203. package/dist/components/tabs/Tabs.d.ts.map +1 -1
  204. package/dist/components/tabs/Tabs.js +44 -44
  205. package/dist/components/tabs/tabs-config.d.ts +102 -9
  206. package/dist/components/tabs/tabs-config.d.ts.map +1 -1
  207. package/dist/components/tabs/tabs-styles.d.ts +16 -4
  208. package/dist/components/tabs/tabs-styles.d.ts.map +1 -1
  209. package/dist/components/textarea/Textarea.d.ts +105 -11
  210. package/dist/components/textarea/Textarea.d.ts.map +1 -1
  211. package/dist/components/textarea/Textarea.js +27 -24
  212. package/dist/components/textarea/textarea-config.d.ts +21 -0
  213. package/dist/components/textarea/textarea-config.d.ts.map +1 -1
  214. package/dist/components/textarea/textarea-config.js +8 -16
  215. package/dist/components/textarea/textarea-styles.d.ts +9 -0
  216. package/dist/components/textarea/textarea-styles.d.ts.map +1 -1
  217. package/dist/components/textarea/textarea-styles.js +5 -9
  218. package/dist/components/toast/ToastItem.d.ts +58 -4
  219. package/dist/components/toast/ToastItem.d.ts.map +1 -1
  220. package/dist/components/toast/ToastItem.js +18 -18
  221. package/dist/components/toast/toast-config.d.ts +104 -6
  222. package/dist/components/toast/toast-config.d.ts.map +1 -1
  223. package/dist/components/toast/toast-context.d.ts +123 -11
  224. package/dist/components/toast/toast-context.d.ts.map +1 -1
  225. package/dist/components/toast/toast-context.js +19 -19
  226. package/dist/components/toast/toast-styles.d.ts +27 -5
  227. package/dist/components/toast/toast-styles.d.ts.map +1 -1
  228. package/dist/components/toast/use-pausable-timeout.d.ts +29 -0
  229. package/dist/components/toast/use-pausable-timeout.d.ts.map +1 -1
  230. package/dist/components/tooltip/Tooltip.d.ts +76 -16
  231. package/dist/components/tooltip/Tooltip.d.ts.map +1 -1
  232. package/dist/components/tooltip/Tooltip.js +25 -25
  233. package/dist/components/tooltip/tooltip-config.d.ts +73 -3
  234. package/dist/components/tooltip/tooltip-config.d.ts.map +1 -1
  235. package/dist/components/tooltip/tooltip-styles.d.ts +12 -0
  236. package/dist/components/tooltip/tooltip-styles.d.ts.map +1 -1
  237. package/dist/config/config.d.ts +50 -2
  238. package/dist/config/config.d.ts.map +1 -1
  239. package/dist/config/default-config.d.ts +5 -0
  240. package/dist/config/default-config.d.ts.map +1 -1
  241. package/dist/config/default-config.js +23 -0
  242. package/dist/config/define-config.d.ts +23 -0
  243. package/dist/config/define-config.d.ts.map +1 -1
  244. package/dist/config/resolve-color.d.ts +25 -0
  245. package/dist/config/resolve-color.d.ts.map +1 -1
  246. package/dist/config/resolve-config.d.ts +23 -0
  247. package/dist/config/resolve-config.d.ts.map +1 -1
  248. package/dist/index.css +43 -7
  249. package/dist/index.d.ts +30 -2
  250. package/dist/index.d.ts.map +1 -1
  251. package/dist/index.js +120 -115
  252. package/dist/libs/context.d.ts +50 -1
  253. package/dist/libs/context.d.ts.map +1 -1
  254. package/dist/libs/registry.d.ts +61 -5
  255. package/dist/libs/registry.d.ts.map +1 -1
  256. package/dist/libs/use-isomorphic-layout-effect.d.ts +18 -0
  257. package/dist/libs/use-isomorphic-layout-effect.d.ts.map +1 -1
  258. package/dist/shared/index.d.ts +3 -0
  259. package/dist/shared/index.d.ts.map +1 -0
  260. package/dist/shared/radius.d.ts +37 -1
  261. package/dist/shared/radius.d.ts.map +1 -1
  262. package/dist/shared/variant.d.ts +31 -0
  263. package/dist/shared/variant.d.ts.map +1 -1
  264. package/dist/shared/variant.js +132 -45
  265. package/dist/theme/color.d.ts +89 -1
  266. package/dist/theme/color.d.ts.map +1 -1
  267. package/dist/theme/controller.d.ts +121 -0
  268. package/dist/theme/controller.d.ts.map +1 -1
  269. package/dist/theme/controller.js +84 -0
  270. package/dist/theme/useTheme.d.ts +68 -0
  271. package/dist/theme/useTheme.d.ts.map +1 -1
  272. package/dist/theme/useTheme.js +23 -0
  273. package/dist/utils/index.d.ts +0 -7
  274. package/dist/utils/index.d.ts.map +1 -1
  275. package/dist/utils/resolve-token.d.ts +101 -0
  276. package/dist/utils/resolve-token.d.ts.map +1 -1
  277. package/package.json +1 -1
  278. package/dist/components/keyboard/default-keyboard-config.d.ts +0 -10
  279. package/dist/components/keyboard/default-keyboard-config.d.ts.map +0 -1
  280. package/dist/shared/size.d.ts +0 -2
  281. package/dist/shared/size.d.ts.map +0 -1
@@ -1,4 +1,14 @@
1
1
  import { FieldSizeKey, FieldStatus } from '../field/field-config';
2
+ /**
3
+ * CSS classes for input size.
4
+ * Maps size keys to Tailwind classes that control height,
5
+ * padding, and font size.
6
+ */
2
7
  export declare const INPUT_SIZE_CLASS: Record<FieldSizeKey, string>;
8
+ /**
9
+ * CSS classes for input status border styles.
10
+ * Maps status values to Tailwind classes for border and
11
+ * focus ring colors.
12
+ */
3
13
  export declare const INPUT_STATUS_BORDER_CLASS: Record<FieldStatus, string>;
4
14
  //# sourceMappingURL=input-styles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"input-styles.d.ts","sourceRoot":"","sources":["../../../src/components/input/input-styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEvE,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAIzD,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAQjE,CAAC"}
1
+ {"version":3,"file":"input-styles.d.ts","sourceRoot":"","sources":["../../../src/components/input/input-styles.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGvE;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAIzD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CACvC,CAAC"}
@@ -1,15 +1,11 @@
1
1
  "use client";
2
- const s = {
2
+ import { FIELD_STATUS_BORDER_CLASS as t } from "../field/field-styles.js";
3
+ const x = {
3
4
  sm: "h-8 px-2.5 text-xs",
4
5
  md: "h-10 px-3 text-sm",
5
6
  lg: "h-12 px-4 text-base"
6
- }, e = {
7
- default: "",
8
- error: "border-danger focus-visible:border-danger focus-visible:ring-danger/20",
9
- warning: "border-warning focus-visible:border-warning focus-visible:ring-warning/20",
10
- success: "border-success focus-visible:border-success focus-visible:ring-success/20"
11
- };
7
+ }, _ = t;
12
8
  export {
13
- s as INPUT_SIZE_CLASS,
14
- e as INPUT_STATUS_BORDER_CLASS
9
+ x as INPUT_SIZE_CLASS,
10
+ _ as INPUT_STATUS_BORDER_CLASS
15
11
  };
@@ -1,14 +1,64 @@
1
- import { Radius } from '../../shared/radius';
2
- import { Color, Variant } from '../../shared/variant';
3
- import { LayoutName } from './keyboard-config';
4
- export interface OnScreenKeyboardProps {
1
+ import { KeyboardConfig, LayoutName } from './keyboard-config';
2
+ /**
3
+ * Props for the OnScreenKeyboard component.
4
+ */
5
+ export interface OnScreenKeyboardProps extends KeyboardConfig {
6
+ /**
7
+ * Extra CSS classes for the keyboard container.
8
+ */
5
9
  className?: string;
6
- heightClass?: string;
10
+ /**
11
+ * Initial layout to show when the keyboard opens.
12
+ */
7
13
  initialLayout?: LayoutName;
8
- variant?: Variant;
9
- color?: Color;
10
- radius?: Radius;
14
+ /**
15
+ * Extra CSS classes for individual keys.
16
+ */
11
17
  keyClassName?: string;
18
+ /**
19
+ * CSS height class for the keyboard container.
20
+ * Required to set the keyboard height.
21
+ */
22
+ heightClass: string;
12
23
  }
24
+ /**
25
+ * The on-screen virtual keyboard UI.
26
+ *
27
+ * OnScreenKeyboard renders a floating keyboard that appears at the bottom
28
+ * of the screen when an input is focused. It supports multiple layouts
29
+ * (default, shift, symbols, numeric), key press handling with cursor
30
+ * management, physical keyboard synchronization, and visual feedback
31
+ * for pressed keys.
32
+ *
33
+ * The component is controlled by the KeyboardContext and should be
34
+ * placed inside a KeyboardProvider. It automatically shows and hides
35
+ * based on the context state.
36
+ *
37
+ * @param props - OnScreenKeyboard configuration options.
38
+ * @param props.className - Extra CSS classes for the container.
39
+ * @param props.heightClass - CSS height class for the keyboard.
40
+ * @param props.initialLayout - Initial layout name.
41
+ * @param props.keyClassName - Extra CSS classes for keys.
42
+ * @param props.variant - Visual variant for keys.
43
+ * @param props.color - Theme color for keys.
44
+ * @param props.radius - Corner rounding for keys.
45
+ *
46
+ * @example
47
+ * ```tsx
48
+ * import { KeyboardProvider, OnScreenKeyboard, Input } from "asheeui";
49
+ *
50
+ * export function App() {
51
+ * return (
52
+ * <KeyboardProvider heightClass="h-56">
53
+ * <Input label="Search" enableVirtualKeyboard />
54
+ * <OnScreenKeyboard />
55
+ * </KeyboardProvider>
56
+ * );
57
+ * }
58
+ * ```
59
+ *
60
+ * @see KeyboardProvider - The provider that controls the keyboard state.
61
+ * @see useKeyboardField - Hook for connecting inputs to the keyboard.
62
+ */
13
63
  export declare function OnScreenKeyboard({ className, heightClass, initialLayout, variant: variantProp, color: colorProp, radius: radiusProp, keyClassName, }: OnScreenKeyboardProps): import("react").JSX.Element | null;
14
64
  //# sourceMappingURL=OnScreenKeyboard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OnScreenKeyboard.d.ts","sourceRoot":"","sources":["../../../src/components/keyboard/OnScreenKeyboard.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAuDpD,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,UAAU,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,SAAS,EACT,WAAW,EACX,aAAa,EACb,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,UAAU,EAClB,YAAY,GACb,EAAE,qBAAqB,sCA6MvB"}
1
+ {"version":3,"file":"OnScreenKeyboard.d.ts","sourceRoot":"","sources":["../../../src/components/keyboard/OnScreenKeyboard.tsx"],"names":[],"mappings":"AAeA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,UAAU,EAChB,MAAM,mBAAmB,CAAC;AAuE3B;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,cAAc;IAC3D;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,aAAa,CAAC,EAAE,UAAU,CAAC;IAE3B;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,SAAS,EACT,WAAW,EACX,aAAa,EACb,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,UAAU,EAClB,YAAY,GACb,EAAE,qBAAqB,sCAoNvB"}
@@ -1,53 +1,54 @@
1
1
  "use client";
2
2
  import { jsx as y } from "react/jsx-runtime";
3
- import { FloatingPortal as W } from "@floating-ui/react";
4
- import { useState as K, useEffect as k, useMemo as X, useCallback as O } from "react";
5
- import { useAsheeConfig as G } from "../../libs/context.js";
6
- import { Button as I } from "../button/Button.js";
7
- import { useKeyboard as J } from "./keyboard-context.js";
8
- import { cn as P } from "../../utils/cn.js";
9
- function Q(e) {
3
+ import { FloatingPortal as I } from "@floating-ui/react";
4
+ import { useState as C, useEffect as k, useMemo as U, useCallback as B } from "react";
5
+ import { useAsheeConfig as W } from "../../libs/context.js";
6
+ import { Button as X } from "../button/Button.js";
7
+ import { FALLBACK_KEYBOARD_CONFIG as L } from "./keyboard-config.js";
8
+ import { useKeyboard as Y } from "./keyboard-context.js";
9
+ import { cn as D } from "../../utils/cn.js";
10
+ function J(e) {
10
11
  return e === "{space}" ? "flex-[4]" : ["{bksp}", "{enter}", "{shift}", "{symbols}", "{abc}", "{clear}"].includes(
11
12
  e
12
13
  ) ? "flex-[1.6]" : "flex-1";
13
14
  }
14
- function T(e, o, i) {
15
+ function P(e, o, i) {
15
16
  var g;
16
- const h = Object.getPrototypeOf(e), w = (g = Object.getOwnPropertyDescriptor(h, "value")) == null ? void 0 : g.set;
17
+ const m = Object.getPrototypeOf(e), w = (g = Object.getOwnPropertyDescriptor(m, "value")) == null ? void 0 : g.set;
17
18
  w ? w.call(e, o) : e.value = o, e.dispatchEvent(new Event("input", { bubbles: !0 })), requestAnimationFrame(() => {
18
19
  e.focus(), e.setSelectionRange(i, i);
19
20
  });
20
21
  }
21
- function Y(e, o, i) {
22
+ function Q(e, o, i) {
22
23
  return o !== i ? { value: e.slice(0, o) + e.slice(i), cursor: o } : o === 0 ? { value: e, cursor: 0 } : {
23
24
  value: e.slice(0, o - 1) + e.slice(i),
24
25
  cursor: o - 1
25
26
  };
26
27
  }
27
- function $(e) {
28
- return (o, i, h) => ({
29
- value: o.slice(0, i) + e + o.slice(h),
28
+ function T(e) {
29
+ return (o, i, m) => ({
30
+ value: o.slice(0, i) + e + o.slice(m),
30
31
  cursor: i + e.length
31
32
  });
32
33
  }
33
- function oe({
34
+ function ce({
34
35
  className: e,
35
36
  heightClass: o,
36
37
  initialLayout: i,
37
- variant: h,
38
+ variant: m,
38
39
  color: w,
39
40
  radius: g,
40
- keyClassName: j
41
+ keyClassName: $
41
42
  }) {
42
- const E = J();
43
+ const E = Y();
43
44
  if (!E) return null;
44
- const { isOpen: m, activeElement: n, config: l, forceClose: S } = E, L = G(), b = l.layouts ?? {}, D = l.display ?? {}, B = o ?? l.heightClass, c = l.defaultLayout ?? "default", H = h ?? l.variant ?? L.defaultVariant ?? "solid", M = w ?? l.color ?? L.defaultColor ?? "primary", V = g ?? l.radius, [u, v] = K(
45
+ const { isOpen: h, activeElement: n, config: l, forceClose: S } = E, A = W(), b = l.layouts ?? {}, j = l.display ?? {}, F = o, c = l.defaultLayout ?? L.defaultLayout, H = m ?? l.variant ?? A.defaultVariant ?? L.variant, M = w ?? l.color ?? A.defaultColor ?? L.color, V = g ?? l.radius, [u, v] = C(
45
46
  i ?? c
46
- ), [F, R] = K(/* @__PURE__ */ new Set()), [q, A] = K(null);
47
+ ), [_, R] = C(/* @__PURE__ */ new Set()), [q, N] = C(null);
47
48
  k(() => {
48
- m && v(i ?? c);
49
- }, [m, i, c]);
50
- const z = X(() => (b[u] || b[c] || []).map((a, t) => ({
49
+ h && v(i ?? c);
50
+ }, [h, i, c]);
51
+ const z = U(() => (b[u] || b[c] || []).map((a, t) => ({
51
52
  id: `${u}-row-${t}`,
52
53
  keys: a.split(" ").map((f, d) => ({
53
54
  id: `${u}-r${t}-k${d}-${f}`,
@@ -55,33 +56,33 @@ function oe({
55
56
  }))
56
57
  })), [b, u, c]);
57
58
  k(() => {
58
- if (!m) return;
59
+ if (!h) return;
59
60
  const a = (b[u] || []).join(" ").split(" "), t = (s) => s === "Backspace" ? "{bksp}" : s === "Enter" ? "{enter}" : s === " " ? "{space}" : s === "Shift" ? "{shift}" : s.length === 1 && a.includes(s) ? s : null, f = (s) => {
60
61
  if (s.key === "Escape") {
61
62
  S();
62
63
  return;
63
64
  }
64
65
  const p = t(s.key);
65
- p && R((C) => new Set(C).add(p));
66
+ p && R((x) => new Set(x).add(p));
66
67
  }, d = (s) => {
67
68
  const p = t(s.key);
68
- p && R((C) => {
69
- const N = new Set(C);
70
- return N.delete(p), N;
69
+ p && R((x) => {
70
+ const O = new Set(x);
71
+ return O.delete(p), O;
71
72
  });
72
73
  };
73
74
  return window.addEventListener("keydown", f), window.addEventListener("keyup", d), () => {
74
75
  window.removeEventListener("keydown", f), window.removeEventListener("keyup", d);
75
76
  };
76
- }, [m, u, b, S]);
77
- const x = O(
77
+ }, [h, u, b, S]);
78
+ const K = B(
78
79
  (r) => {
79
80
  if (!n) return;
80
81
  const a = n.value, t = n.selectionStart ?? a.length, f = n.selectionEnd ?? a.length, { value: d, cursor: s } = r(a, t, f);
81
- T(n, d, s);
82
+ P(n, d, s);
82
83
  },
83
84
  [n]
84
- ), U = O(
85
+ ), G = B(
85
86
  (r) => {
86
87
  if (r === "{shift}") {
87
88
  v(
@@ -98,23 +99,23 @@ function oe({
98
99
  return;
99
100
  }
100
101
  if (r === "{clear}") {
101
- n && T(n, "", 0);
102
+ n && P(n, "", 0);
102
103
  return;
103
104
  }
104
105
  if (r === "{enter}") {
105
- (n == null ? void 0 : n.tagName) === "TEXTAREA" ? x($(`
106
+ (n == null ? void 0 : n.tagName) === "TEXTAREA" ? K(T(`
106
107
  `)) : n == null || n.blur();
107
108
  return;
108
109
  }
109
110
  if (r === "{bksp}") {
110
- x(Y);
111
+ K(Q);
111
112
  return;
112
113
  }
113
- x($(r === "{space}" ? " " : r)), u === "shift" && l.autoShiftBack && v(c);
114
+ K(T(r === "{space}" ? " " : r)), u === "shift" && l.autoShiftBack && v(c);
114
115
  },
115
- [n, x, u, l.autoShiftBack, c]
116
+ [n, K, u, l.autoShiftBack, c]
116
117
  );
117
- return m ? /* @__PURE__ */ y(W, { children: /* @__PURE__ */ y(
118
+ return h ? /* @__PURE__ */ y(I, { children: /* @__PURE__ */ y(
118
119
  "section",
119
120
  {
120
121
  "aria-label": "Virtual Keyboard",
@@ -123,26 +124,26 @@ function oe({
123
124
  children: /* @__PURE__ */ y(
124
125
  "div",
125
126
  {
126
- className: P(
127
+ className: D(
127
128
  "w-full bg-background border-t border-border shadow-2xl flex flex-col select-none",
128
- B,
129
+ F,
129
130
  e
130
131
  ),
131
132
  children: /* @__PURE__ */ y("div", { className: "flex flex-col gap-1.5 p-2 flex-1 min-h-0", children: z.map((r) => /* @__PURE__ */ y("div", { className: "flex gap-1.5 flex-1", children: r.keys.map(({ id: a, token: t }) => {
132
- const s = F.has(t) || q === t, p = D[t] ?? t;
133
+ const s = _.has(t) || q === t, p = j[t] ?? t;
133
134
  return /* @__PURE__ */ y(
134
- I,
135
+ X,
135
136
  {
136
137
  variant: H,
137
138
  color: s ? M : "secondary",
138
139
  radius: V,
139
- onClick: () => U(t),
140
- onMouseEnter: () => A(t),
141
- onMouseLeave: () => A(null),
142
- className: P(
140
+ onClick: () => G(t),
141
+ onMouseEnter: () => N(t),
142
+ onMouseLeave: () => N(null),
143
+ className: D(
143
144
  "h-full text-lg font-medium p-0 flex items-center justify-center",
144
- Q(t),
145
- j
145
+ J(t),
146
+ $
146
147
  ),
147
148
  children: p
148
149
  },
@@ -155,5 +156,5 @@ function oe({
155
156
  ) }) : null;
156
157
  }
157
158
  export {
158
- oe as OnScreenKeyboard
159
+ ce as OnScreenKeyboard
159
160
  };
@@ -1,4 +1,4 @@
1
1
  export * from "./OnScreenKeyboard.js";
2
- export * from "./default-keyboard-config.js";
2
+ export * from "./keyboard-config.js";
3
3
  export * from "./keyboard-context.js";
4
4
  export * from "./use-keyboard-field.js";
@@ -1,18 +1,103 @@
1
1
  import { ReactNode } from 'react';
2
- import { Radius } from '../../shared/radius';
3
- import { Color, Variant } from '../../shared/variant';
2
+ import { Color, Radius, Variant } from '../../shared';
3
+ /**
4
+ * Standard layout names for the virtual keyboard.
5
+ * - `default`: Lowercase alphabetic layout.
6
+ * - `shift`: Uppercase alphabetic layout.
7
+ * - `symbols`: Symbol and punctuation layout.
8
+ * - `numeric`: Numeric keypad layout.
9
+ */
4
10
  export type StandardLayoutName = "default" | "shift" | "symbols" | "numeric";
11
+ /**
12
+ * Layout name type that supports custom layouts.
13
+ * Can be either a StandardLayoutName or a custom string identifier.
14
+ */
5
15
  export type LayoutName = StandardLayoutName | (string & {});
16
+ /**
17
+ * Mapping of layout names to arrays of row strings.
18
+ * Each row string contains space-separated key tokens.
19
+ */
6
20
  export type KeyboardLayouts = Record<string, string[]>;
21
+ /**
22
+ * Mapping of key tokens to display React nodes.
23
+ * Used to render special keys with icons or custom labels.
24
+ */
7
25
  export type KeyDisplayMap = Record<string, ReactNode>;
26
+ /**
27
+ * Theme configuration options for the Keyboard component.
28
+ *
29
+ * Set under `components.keyboard` in the AsheeUI config. Values feed the
30
+ * component-level fallback tier of the theme cascade.
31
+ */
8
32
  export interface KeyboardConfig {
33
+ /**
34
+ * The layouts available for the keyboard.
35
+ * Maps layout names to arrays of row strings.
36
+ */
9
37
  layouts?: KeyboardLayouts;
38
+ /**
39
+ * Display mappings for special keys.
40
+ * Maps tokens like "{bksp}" to display labels.
41
+ */
10
42
  display?: KeyDisplayMap;
43
+ /**
44
+ * The default layout to show when the keyboard opens.
45
+ * @default "default"
46
+ */
11
47
  defaultLayout?: LayoutName;
12
- heightClass?: string;
48
+ /**
49
+ * Delay in milliseconds before closing the keyboard on blur.
50
+ * @default 500
51
+ */
52
+ closeDelay?: number;
53
+ /**
54
+ * Whether to automatically switch back from shift after a key press.
55
+ * @default true
56
+ */
13
57
  autoShiftBack?: boolean;
58
+ /**
59
+ * Visual style variant for keyboard keys.
60
+ * @default "solid"
61
+ */
14
62
  variant?: Variant;
63
+ /**
64
+ * Theme accent color for keyboard keys.
65
+ * @default "primary"
66
+ */
15
67
  color?: Color;
68
+ /**
69
+ * Corner rounding for keyboard keys.
70
+ */
16
71
  radius?: Radius;
17
72
  }
73
+ /**
74
+ * Default keyboard layouts.
75
+ * Provides alphabetic, shifted, symbols, and numeric layouts with
76
+ * special keys for backspace, enter, shift, layout switching, and space.
77
+ */
78
+ export declare const defaultKeyboardLayouts: KeyboardLayouts;
79
+ /**
80
+ * Default display mappings for special keys.
81
+ * Maps token names to their display labels or icons.
82
+ */
83
+ export declare const defaultKeyDisplay: KeyDisplayMap;
84
+ /**
85
+ * Default configuration values registered for the Keyboard component.
86
+ */
87
+ export declare const defaultKeyboardConfig: KeyboardConfig;
88
+ declare module "../../libs/registry" {
89
+ interface ComponentTypeConfigRegistry {
90
+ keyboard: KeyboardConfig;
91
+ }
92
+ }
93
+ /**
94
+ * Hard fallback values used when no config tier provides a value.
95
+ * These values are used when instance props, component config,
96
+ * and global defaults are all undefined.
97
+ */
98
+ export declare const FALLBACK_KEYBOARD_CONFIG: {
99
+ defaultLayout: string;
100
+ variant: Variant;
101
+ color: Color;
102
+ };
18
103
  //# sourceMappingURL=keyboard-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"keyboard-config.d.ts","sourceRoot":"","sources":["../../../src/components/keyboard/keyboard-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;AAC7E,MAAM,MAAM,UAAU,GAAG,kBAAkB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAE5D,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;AACvD,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAEtD,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,aAAa,CAAC,EAAE,UAAU,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
1
+ {"version":3,"file":"keyboard-config.d.ts","sourceRoot":"","sources":["../../../src/components/keyboard/keyboard-config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE3D;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;AAE7E;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,kBAAkB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAE5D;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;AAEvD;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC;IAE1B;;;OAGG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;IAExB;;;OAGG;IACH,aAAa,CAAC,EAAE,UAAU,CAAC;IAE3B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IAEd;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,eAuBpC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,aAQ/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,cAMnC,CAAC;AAEF,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,2BAA2B;QACnC,QAAQ,EAAE,cAAc,CAAC;KAC1B;CACF;AAID;;;;GAIG;AACH,eAAO,MAAM,wBAAwB;;aAEf,OAAO;WACP,KAAK;CAC1B,CAAC"}
@@ -35,11 +35,17 @@ const s = {
35
35
  layouts: s,
36
36
  display: t,
37
37
  defaultLayout: "default",
38
- heightClass: "h-[40vh] min-h-[18.75rem]",
38
+ closeDelay: 500,
39
39
  autoShiftBack: !0
40
40
  };
41
41
  e("keyboard", a);
42
+ const l = {
43
+ defaultLayout: "default",
44
+ variant: "solid",
45
+ color: "primary"
46
+ };
42
47
  export {
48
+ l as FALLBACK_KEYBOARD_CONFIG,
43
49
  t as defaultKeyDisplay,
44
50
  a as defaultKeyboardConfig,
45
51
  s as defaultKeyboardLayouts
@@ -1,31 +1,121 @@
1
1
  import { ReactNode } from 'react';
2
- import { Radius } from '../../shared/radius';
3
- import { Color, Variant } from '../../shared/variant';
4
- import { KeyboardConfig, KeyboardLayouts, KeyDisplayMap, LayoutName } from './keyboard-config';
2
+ import { KeyboardConfig, LayoutName } from './keyboard-config';
3
+ /**
4
+ * Type for keyboard input elements.
5
+ * The keyboard can attach to input and textarea elements.
6
+ */
5
7
  export type KeyboardElement = HTMLInputElement | HTMLTextAreaElement;
8
+ /**
9
+ * Context type for the keyboard state and controls.
10
+ */
6
11
  export interface KeyboardContextType {
12
+ /**
13
+ * Whether the keyboard is currently open.
14
+ */
7
15
  isOpen: boolean;
16
+ /**
17
+ * ID of the currently active input element.
18
+ */
8
19
  activeInputId: string | null;
20
+ /**
21
+ * The currently active input element reference.
22
+ */
9
23
  activeElement: KeyboardElement | null;
24
+ /**
25
+ * The merged keyboard configuration.
26
+ */
10
27
  config: KeyboardConfig;
28
+ /**
29
+ * Opens the keyboard for a specific input element.
30
+ * @param id - The ID of the input element.
31
+ * @param el - The input element reference.
32
+ */
11
33
  openKeyboard: (id: string, el: KeyboardElement) => void;
34
+ /**
35
+ * Requests to close the keyboard for a specific input.
36
+ * Uses a delay to prevent accidental closing on focus transitions.
37
+ * @param id - The ID of the input element.
38
+ */
12
39
  requestClose: (id: string) => void;
40
+ /**
41
+ * Immediately closes the keyboard regardless of state.
42
+ */
13
43
  forceClose: () => void;
14
44
  }
45
+ /**
46
+ * React context for the keyboard state.
47
+ */
15
48
  export declare const KeyboardContext: import('react').Context<KeyboardContextType | null>;
16
- export interface KeyboardProviderProps {
49
+ /**
50
+ * Props for the KeyboardProvider component.
51
+ */
52
+ export interface KeyboardProviderProps extends KeyboardConfig {
53
+ /**
54
+ * Child components that will have access to the keyboard context.
55
+ */
17
56
  children: ReactNode;
18
- config?: KeyboardConfig;
19
- layouts?: KeyboardLayouts;
20
- display?: KeyDisplayMap;
57
+ /**
58
+ * Default layout to show when the keyboard opens.
59
+ * @default "default"
60
+ */
21
61
  defaultLayout?: LayoutName;
62
+ /**
63
+ * CSS height class for the keyboard container.
64
+ */
22
65
  heightClass?: string;
23
- autoShiftBack?: boolean;
24
- closeDelay?: number;
25
- variant?: Variant;
26
- color?: Color;
27
- radius?: Radius;
28
66
  }
29
- export declare function KeyboardProvider({ children, config: propConfig, layouts, display, defaultLayout, heightClass, autoShiftBack, closeDelay, variant, color, radius, }: KeyboardProviderProps): import("react").JSX.Element;
67
+ /**
68
+ * Provider component for the virtual keyboard.
69
+ *
70
+ * KeyboardProvider wraps your application or a section of it to provide
71
+ * keyboard context. It manages the open/close state, active input tracking,
72
+ * and configuration merging. Input components using useKeyboardField or
73
+ * the KeyboardContext will automatically trigger the keyboard on focus.
74
+ *
75
+ * @param props - KeyboardProvider configuration options.
76
+ * @param props.children - Child components.
77
+ * @param props.layouts - Available keyboard layouts.
78
+ * @param props.display - Display mappings for special keys.
79
+ * @param props.defaultLayout - Default layout name. Defaults to "default".
80
+ * @param props.heightClass - CSS height class for the keyboard.
81
+ * @param props.autoShiftBack - Auto switch back from shift. Defaults to true.
82
+ * @param props.closeDelay - Close delay in milliseconds. Defaults to 120.
83
+ * @param props.variant - Visual variant for keys.
84
+ * @param props.color - Theme color for keys.
85
+ * @param props.radius - Corner rounding for keys.
86
+ *
87
+ * @example
88
+ * ```tsx
89
+ * import { KeyboardProvider, OnScreenKeyboard, Input } from "asheeui";
90
+ *
91
+ * export function App() {
92
+ * return (
93
+ * <KeyboardProvider heightClass="h-56">
94
+ * <Input
95
+ * label="Search"
96
+ * enableVirtualKeyboard
97
+ * />
98
+ * <OnScreenKeyboard />
99
+ * </KeyboardProvider>
100
+ * );
101
+ * }
102
+ * ```
103
+ *
104
+ * @see useKeyboard - Hook for accessing the keyboard context.
105
+ * @see OnScreenKeyboard - The keyboard UI component.
106
+ */
107
+ export declare function KeyboardProvider({ children, layouts, display, defaultLayout, heightClass, autoShiftBack, closeDelay, variant, color, radius, }: KeyboardProviderProps): import("react").JSX.Element;
108
+ /**
109
+ * Hook for accessing the keyboard context.
110
+ * Must be used within a KeyboardProvider.
111
+ *
112
+ * @returns The keyboard context value.
113
+ * @throws {Error} When used outside of a KeyboardProvider.
114
+ *
115
+ * @example
116
+ * ```tsx
117
+ * const { isOpen, openKeyboard, forceClose } = useKeyboard();
118
+ * ```
119
+ */
30
120
  export declare function useKeyboard(): KeyboardContextType;
31
121
  //# sourceMappingURL=keyboard-context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"keyboard-context.d.ts","sourceRoot":"","sources":["../../../src/components/keyboard/keyboard-context.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,SAAS,EAMf,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,aAAa,EACb,UAAU,EACX,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG,mBAAmB,CAAC;AAErE,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE,eAAe,GAAG,IAAI,CAAC;IACtC,MAAM,EAAE,cAAc,CAAC;IACvB,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,eAAe,KAAK,IAAI,CAAC;IACxD,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,eAAO,MAAM,eAAe,qDAAkD,CAAC;AAE/E,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,aAAa,CAAC,EAAE,UAAU,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,MAAM,EAAE,UAAU,EAClB,OAAO,EACP,OAAO,EACP,aAAa,EACb,WAAW,EACX,aAAa,EACb,UAAgB,EAChB,OAAO,EACP,KAAK,EACL,MAAM,GACP,EAAE,qBAAqB,+BA4HvB;AAED,wBAAgB,WAAW,wBAM1B"}
1
+ {"version":3,"file":"keyboard-context.d.ts","sourceRoot":"","sources":["../../../src/components/keyboard/keyboard-context.tsx"],"names":[],"mappings":"AASA,OAAO,EAEL,KAAK,SAAS,EAMf,MAAM,OAAO,CAAC;AAEf,OAAO,EAEL,KAAK,cAAc,EAEnB,KAAK,UAAU,EAChB,MAAM,mBAAmB,CAAC;AAE3B;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG,mBAAmB,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B;;OAEG;IACH,aAAa,EAAE,eAAe,GAAG,IAAI,CAAC;IAEtC;;OAEG;IACH,MAAM,EAAE,cAAc,CAAC;IAEvB;;;;OAIG;IACH,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,eAAe,KAAK,IAAI,CAAC;IAExD;;;;OAIG;IACH,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAEnC;;OAEG;IACH,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,qDAAkD,CAAC;AAE/E;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,cAAc;IAC3D;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;;OAGG;IACH,aAAa,CAAC,EAAE,UAAU,CAAC;IAE3B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,OAAO,EACP,OAAO,EACP,aAAa,EACb,WAAW,EACX,aAAa,EACb,UAAgB,EAChB,OAAO,EACP,KAAK,EACL,MAAM,GACP,EAAE,qBAAqB,+BAmHvB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,wBAM1B"}