@kalyx/react 0.2.0 → 0.2.1

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 (125) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +67 -58
  3. package/dist/index.cjs.map +1 -1
  4. package/dist/index.d.cts +160 -162
  5. package/dist/index.d.ts +742 -17
  6. package/dist/index.js +2137 -11
  7. package/dist/index.js.map +1 -1
  8. package/package.json +2 -2
  9. package/dist/components/DatePicker/Calendar.d.ts +0 -23
  10. package/dist/components/DatePicker/Calendar.d.ts.map +0 -1
  11. package/dist/components/DatePicker/Calendar.js +0 -127
  12. package/dist/components/DatePicker/Calendar.js.map +0 -1
  13. package/dist/components/DatePicker/Input.d.ts +0 -7
  14. package/dist/components/DatePicker/Input.d.ts.map +0 -1
  15. package/dist/components/DatePicker/Input.js +0 -73
  16. package/dist/components/DatePicker/Input.js.map +0 -1
  17. package/dist/components/DatePicker/MonthGrid.d.ts +0 -34
  18. package/dist/components/DatePicker/MonthGrid.d.ts.map +0 -1
  19. package/dist/components/DatePicker/MonthGrid.js +0 -54
  20. package/dist/components/DatePicker/MonthGrid.js.map +0 -1
  21. package/dist/components/DatePicker/Popover.d.ts +0 -6
  22. package/dist/components/DatePicker/Popover.d.ts.map +0 -1
  23. package/dist/components/DatePicker/Popover.js +0 -72
  24. package/dist/components/DatePicker/Popover.js.map +0 -1
  25. package/dist/components/DatePicker/Root.d.ts +0 -46
  26. package/dist/components/DatePicker/Root.d.ts.map +0 -1
  27. package/dist/components/DatePicker/Root.js +0 -90
  28. package/dist/components/DatePicker/Root.js.map +0 -1
  29. package/dist/components/DatePicker/Trigger.d.ts +0 -6
  30. package/dist/components/DatePicker/Trigger.d.ts.map +0 -1
  31. package/dist/components/DatePicker/Trigger.js +0 -21
  32. package/dist/components/DatePicker/Trigger.js.map +0 -1
  33. package/dist/components/DatePicker/YearGrid.d.ts +0 -29
  34. package/dist/components/DatePicker/YearGrid.d.ts.map +0 -1
  35. package/dist/components/DatePicker/YearGrid.js +0 -53
  36. package/dist/components/DatePicker/YearGrid.js.map +0 -1
  37. package/dist/components/DatePicker/index.d.ts +0 -48
  38. package/dist/components/DatePicker/index.d.ts.map +0 -1
  39. package/dist/components/DatePicker/index.js +0 -42
  40. package/dist/components/DatePicker/index.js.map +0 -1
  41. package/dist/components/DateTimePicker/Input.d.ts +0 -12
  42. package/dist/components/DateTimePicker/Input.d.ts.map +0 -1
  43. package/dist/components/DateTimePicker/Input.js +0 -41
  44. package/dist/components/DateTimePicker/Input.js.map +0 -1
  45. package/dist/components/DateTimePicker/Root.d.ts +0 -60
  46. package/dist/components/DateTimePicker/Root.d.ts.map +0 -1
  47. package/dist/components/DateTimePicker/Root.js +0 -140
  48. package/dist/components/DateTimePicker/Root.js.map +0 -1
  49. package/dist/components/DateTimePicker/index.d.ts +0 -55
  50. package/dist/components/DateTimePicker/index.d.ts.map +0 -1
  51. package/dist/components/DateTimePicker/index.js +0 -55
  52. package/dist/components/DateTimePicker/index.js.map +0 -1
  53. package/dist/components/RangePicker/Calendar.d.ts +0 -24
  54. package/dist/components/RangePicker/Calendar.d.ts.map +0 -1
  55. package/dist/components/RangePicker/Calendar.js +0 -134
  56. package/dist/components/RangePicker/Calendar.js.map +0 -1
  57. package/dist/components/RangePicker/Input.d.ts +0 -14
  58. package/dist/components/RangePicker/Input.d.ts.map +0 -1
  59. package/dist/components/RangePicker/Input.js +0 -38
  60. package/dist/components/RangePicker/Input.js.map +0 -1
  61. package/dist/components/RangePicker/Popover.d.ts +0 -6
  62. package/dist/components/RangePicker/Popover.d.ts.map +0 -1
  63. package/dist/components/RangePicker/Popover.js +0 -71
  64. package/dist/components/RangePicker/Popover.js.map +0 -1
  65. package/dist/components/RangePicker/Presets.d.ts +0 -49
  66. package/dist/components/RangePicker/Presets.d.ts.map +0 -1
  67. package/dist/components/RangePicker/Presets.js +0 -117
  68. package/dist/components/RangePicker/Presets.js.map +0 -1
  69. package/dist/components/RangePicker/Root.d.ts +0 -40
  70. package/dist/components/RangePicker/Root.d.ts.map +0 -1
  71. package/dist/components/RangePicker/Root.js +0 -138
  72. package/dist/components/RangePicker/Root.js.map +0 -1
  73. package/dist/components/RangePicker/index.d.ts +0 -48
  74. package/dist/components/RangePicker/index.d.ts.map +0 -1
  75. package/dist/components/RangePicker/index.js +0 -43
  76. package/dist/components/RangePicker/index.js.map +0 -1
  77. package/dist/components/TimePicker/AmPmToggle.d.ts +0 -15
  78. package/dist/components/TimePicker/AmPmToggle.d.ts.map +0 -1
  79. package/dist/components/TimePicker/AmPmToggle.js +0 -29
  80. package/dist/components/TimePicker/AmPmToggle.js.map +0 -1
  81. package/dist/components/TimePicker/HourList.d.ts +0 -18
  82. package/dist/components/TimePicker/HourList.d.ts.map +0 -1
  83. package/dist/components/TimePicker/HourList.js +0 -71
  84. package/dist/components/TimePicker/HourList.js.map +0 -1
  85. package/dist/components/TimePicker/Input.d.ts +0 -9
  86. package/dist/components/TimePicker/Input.d.ts.map +0 -1
  87. package/dist/components/TimePicker/Input.js +0 -37
  88. package/dist/components/TimePicker/Input.js.map +0 -1
  89. package/dist/components/TimePicker/MinuteList.d.ts +0 -15
  90. package/dist/components/TimePicker/MinuteList.d.ts.map +0 -1
  91. package/dist/components/TimePicker/MinuteList.js +0 -62
  92. package/dist/components/TimePicker/MinuteList.js.map +0 -1
  93. package/dist/components/TimePicker/Root.d.ts +0 -38
  94. package/dist/components/TimePicker/Root.d.ts.map +0 -1
  95. package/dist/components/TimePicker/Root.js +0 -40
  96. package/dist/components/TimePicker/Root.js.map +0 -1
  97. package/dist/components/TimePicker/index.d.ts +0 -32
  98. package/dist/components/TimePicker/index.d.ts.map +0 -1
  99. package/dist/components/TimePicker/index.js +0 -27
  100. package/dist/components/TimePicker/index.js.map +0 -1
  101. package/dist/context/DatePickerContext.d.ts +0 -49
  102. package/dist/context/DatePickerContext.d.ts.map +0 -1
  103. package/dist/context/DatePickerContext.js +0 -18
  104. package/dist/context/DatePickerContext.js.map +0 -1
  105. package/dist/context/RangePickerContext.d.ts +0 -53
  106. package/dist/context/RangePickerContext.d.ts.map +0 -1
  107. package/dist/context/RangePickerContext.js +0 -18
  108. package/dist/context/RangePickerContext.js.map +0 -1
  109. package/dist/context/TimePickerContext.d.ts +0 -29
  110. package/dist/context/TimePickerContext.d.ts.map +0 -1
  111. package/dist/context/TimePickerContext.js +0 -18
  112. package/dist/context/TimePickerContext.js.map +0 -1
  113. package/dist/hooks/useDatePicker.d.ts +0 -63
  114. package/dist/hooks/useDatePicker.d.ts.map +0 -1
  115. package/dist/hooks/useDatePicker.js +0 -82
  116. package/dist/hooks/useDatePicker.js.map +0 -1
  117. package/dist/hooks/useRangePicker.d.ts +0 -67
  118. package/dist/hooks/useRangePicker.d.ts.map +0 -1
  119. package/dist/hooks/useRangePicker.js +0 -116
  120. package/dist/hooks/useRangePicker.js.map +0 -1
  121. package/dist/hooks/useTimePicker.d.ts +0 -63
  122. package/dist/hooks/useTimePicker.d.ts.map +0 -1
  123. package/dist/hooks/useTimePicker.js +0 -69
  124. package/dist/hooks/useTimePicker.js.map +0 -1
  125. package/dist/index.d.ts.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # @kalyx/react
2
2
 
3
+ ## 0.2.1
4
+
5
+ ### Patch Changes
6
+
7
+ - fe0e63e: Add full documentation site (Docusaurus, EN/KO), rewrite READMEs for npm, fix CI pnpm version to 10
8
+ - Updated dependencies [fe0e63e]
9
+ - @kalyx/core@0.2.1
10
+
3
11
  ## 0.2.0
4
12
 
5
13
  ### Minor Changes
package/README.md CHANGED
@@ -1,88 +1,97 @@
1
1
  # @kalyx/react
2
2
 
3
- > Headless, SSR-safe React DatePicker. Zero CSS. Composition API. < 8KB gzip.
3
+ > The headless React DatePicker, finally complete. Zero CSS · SSR-safe · under 12 KB gzip.
4
+
5
+ [![npm](https://img.shields.io/npm/v/@kalyx/react?color=5b4fe1)](https://www.npmjs.com/package/@kalyx/react)
6
+ [![Bundle](https://img.shields.io/badge/gzip-9.2KB-brightgreen)](https://kalyx-docs.vercel.app/docs/api/react#bundle-size)
7
+ [![TypeScript](https://img.shields.io/badge/TypeScript-strict-blue)](https://www.typescriptlang.org/)
8
+ [![License](https://img.shields.io/badge/license-MIT-green)](https://github.com/jiji-hoon96/kalyx/blob/main/LICENSE)
9
+
10
+ Composable React primitives for single dates, date ranges, time, and date + time. Radix-style dot notation. Pair with Tailwind, shadcn/ui, Chakra, or any CSS.
11
+
12
+ **📚 Full docs:** [kalyx-docs.vercel.app](https://kalyx-docs.vercel.app) · [한국어](https://kalyx-docs.vercel.app/ko)
4
13
 
5
14
  ## Install
6
15
 
7
16
  ```bash
8
17
  pnpm add @kalyx/react
18
+ # npm install @kalyx/react
19
+ # yarn add @kalyx/react
9
20
  ```
10
21
 
11
- **Peer dependencies:** `react >= 19.0.0`, `react-dom >= 19.0.0`
22
+ Requires React 19.
12
23
 
13
- ## Components
14
-
15
- ### DatePicker
24
+ ## Quick example
16
25
 
17
26
  ```tsx
18
- import { DatePicker } from '@kalyx/react';
19
-
20
- <DatePicker value={date} onChange={setDate}>
21
- <DatePicker.Input placeholder="Select date" />
22
- <DatePicker.Popover>
23
- <DatePicker.Calendar />
24
- </DatePicker.Popover>
25
- </DatePicker>
27
+ import { useState } from 'react';
28
+ import { DatePicker, type ISODateString } from '@kalyx/react';
29
+
30
+ export function BookingField() {
31
+ const [date, setDate] = useState<ISODateString | null>(null);
32
+ return (
33
+ <DatePicker value={date} onChange={setDate}>
34
+ <DatePicker.Input placeholder="YYYY-MM-DD" />
35
+ <DatePicker.Trigger />
36
+ <DatePicker.Popover>
37
+ <DatePicker.Calendar />
38
+ </DatePicker.Popover>
39
+ </DatePicker>
40
+ );
41
+ }
26
42
  ```
27
43
 
28
- ### RangePicker
29
-
30
- ```tsx
31
- import { RangePicker } from '@kalyx/react';
32
-
33
- <RangePicker value={range} onChange={setRange}>
34
- <RangePicker.Input part="start" />
35
- <RangePicker.Input part="end" />
36
- <RangePicker.Popover>
37
- <RangePicker.Calendar />
38
- </RangePicker.Popover>
39
- </RangePicker>
40
- ```
44
+ Value is always an `ISODateString | null` — UTC-safe, no `Date` objects.
41
45
 
42
- ### TimePicker
46
+ ## What you get
43
47
 
44
48
  ```tsx
45
- import { TimePicker } from '@kalyx/react';
46
-
47
- <TimePicker value={time} onChange={setTime} format="24h" step={15}>
48
- <TimePicker.Input />
49
- <TimePicker.HourList />
50
- <TimePicker.MinuteList />
51
- <TimePicker.AmPmToggle />
52
- </TimePicker>
49
+ import {
50
+ DatePicker, // single date
51
+ RangePicker, // date range + presets
52
+ TimePicker, // hour + minute (+ seconds)
53
+ DateTimePicker, // date + time combined
54
+ useDatePicker, // hook for custom UIs
55
+ useRangePicker,
56
+ useTimePicker,
57
+ DateFnsAdapter, // default adapter (re-exported from @kalyx/core)
58
+ } from '@kalyx/react';
53
59
  ```
54
60
 
55
- ### DateTimePicker
61
+ ## Features
56
62
 
57
- ```tsx
58
- import { DateTimePicker } from '@kalyx/react';
59
-
60
- <DateTimePicker value={dt} onChange={setDt} format="24h" step={15}>
61
- <DateTimePicker.Input />
62
- <DateTimePicker.Popover>
63
- <DateTimePicker.Calendar />
64
- <DateTimePicker.HourList />
65
- <DateTimePicker.MinuteList />
66
- </DateTimePicker.Popover>
67
- </DateTimePicker>
68
- ```
63
+ - **Zero CSS** — no stylesheets to import.
64
+ - **Composition** Radix-style `<DatePicker.Input />`, `<DatePicker.Calendar />`, etc.
65
+ - **SSR-safe** — tested on Next.js App Router.
66
+ - **ISO 8601 UTC strings** — eliminates `Date`-object footguns.
67
+ - **Accessible** — ARIA roles, keyboard navigation, axe-clean.
68
+ - **Tree-shakable** — pay only for the components you render.
69
+ - **TypeScript strict** — no `any`, full type exports.
69
70
 
70
- ## Hooks
71
+ ## Styling
71
72
 
72
- For fully custom UIs, use the equivalent hooks:
73
+ Every sub-component forwards `className`, `style`, and `ref`, and accepts a `classNames` slot map:
73
74
 
74
75
  ```tsx
75
- import { useDatePicker, useRangePicker, useTimePicker } from '@kalyx/react';
76
+ <DatePicker.Calendar
77
+ classNames={{
78
+ day: 'h-8 w-8 rounded hover:bg-neutral-100',
79
+ daySelected: 'bg-indigo-600 text-white',
80
+ dayToday: 'ring-1 ring-indigo-400',
81
+ }}
82
+ />
76
83
  ```
77
84
 
78
- ## Key Features
85
+ Full recipes: [Tailwind](https://kalyx-docs.vercel.app/docs/recipes/tailwind), [shadcn/ui](https://kalyx-docs.vercel.app/docs/recipes/shadcn), [React Hook Form](https://kalyx-docs.vercel.app/docs/recipes/react-hook-form).
86
+
87
+ ## Documentation
79
88
 
80
- - **Zero CSS** — Style with `classNames` prop or `data-*` attributes
81
- - **ISO 8601 UTC** — All values are UTC strings, no native Date objects
82
- - **SSR Safe** — Verified with Next.js 15 App Router
83
- - **Accessible** — WAI-ARIA patterns, keyboard navigation, axe tested
84
- - **7.71KB gzip** DatePicker + RangePicker + TimePicker + DateTimePicker
89
+ - [Introduction](https://kalyx-docs.vercel.app/docs/intro)
90
+ - [Quick Start](https://kalyx-docs.vercel.app/docs/getting-started/quick-start)
91
+ - [Components](https://kalyx-docs.vercel.app/docs/components/datepicker)
92
+ - [Hooks](https://kalyx-docs.vercel.app/docs/hooks/use-date-picker)
93
+ - [Migration from react-datepicker / react-day-picker / React Aria](https://kalyx-docs.vercel.app/docs/migration)
85
94
 
86
95
  ## License
87
96
 
88
- MIT
97
+ [MIT](https://github.com/jiji-hoon96/kalyx/blob/main/LICENSE)