@wheelhouse/ui 0.2.2 → 0.2.4

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 (236) hide show
  1. package/dist/blocks/columns/columns-types.d.ts +40 -0
  2. package/dist/blocks/columns/columns-types.d.ts.map +1 -0
  3. package/dist/blocks/columns/columns-types.js +10 -0
  4. package/dist/blocks/columns/columns-utils.d.ts +13 -0
  5. package/dist/blocks/columns/columns-utils.d.ts.map +1 -0
  6. package/dist/blocks/columns/columns-utils.js +85 -0
  7. package/dist/blocks/columns/columns.d.ts +3 -0
  8. package/dist/blocks/columns/columns.d.ts.map +1 -0
  9. package/dist/blocks/columns/columns.js +79 -0
  10. package/dist/blocks/columns/columns.stories.d.ts +12 -0
  11. package/dist/blocks/columns/columns.stories.d.ts.map +1 -0
  12. package/dist/blocks/columns/columns.stories.js +67 -0
  13. package/dist/blocks/columns/index.d.ts +6 -0
  14. package/dist/blocks/columns/index.d.ts.map +1 -0
  15. package/dist/blocks/columns/index.js +3 -0
  16. package/dist/blocks/date-selector/date-selector-context.d.ts.map +1 -0
  17. package/dist/blocks/date-selector/date-selector-default-i18n.d.ts +10 -0
  18. package/dist/blocks/date-selector/date-selector-default-i18n.d.ts.map +1 -0
  19. package/dist/blocks/date-selector/date-selector-default-i18n.js +29 -0
  20. package/dist/blocks/date-selector/date-selector-i18n-resources.d.ts +11 -0
  21. package/dist/blocks/date-selector/date-selector-i18n-resources.d.ts.map +1 -0
  22. package/dist/blocks/date-selector/date-selector-i18n-resources.js +248 -0
  23. package/dist/blocks/date-selector/date-selector-i18n.shared.d.ts +12 -0
  24. package/dist/blocks/date-selector/date-selector-i18n.shared.d.ts.map +1 -0
  25. package/dist/blocks/date-selector/date-selector-i18n.shared.js +84 -0
  26. package/dist/{components → blocks}/date-selector/date-selector-parts.d.ts +9 -0
  27. package/dist/blocks/date-selector/date-selector-parts.d.ts.map +1 -0
  28. package/dist/{components → blocks}/date-selector/date-selector-parts.js +21 -6
  29. package/dist/{components → blocks}/date-selector/date-selector-types.d.ts +70 -0
  30. package/dist/blocks/date-selector/date-selector-types.d.ts.map +1 -0
  31. package/dist/{components → blocks}/date-selector/date-selector-types.js +22 -0
  32. package/dist/blocks/date-selector/date-selector-value.d.ts +81 -0
  33. package/dist/blocks/date-selector/date-selector-value.d.ts.map +1 -0
  34. package/dist/blocks/date-selector/date-selector-value.js +423 -0
  35. package/dist/{components → blocks}/date-selector/date-selector.d.ts +1 -1
  36. package/dist/blocks/date-selector/date-selector.d.ts.map +1 -0
  37. package/dist/blocks/date-selector/date-selector.js +191 -0
  38. package/dist/{components → blocks}/date-selector/date-selector.stories.d.ts +14 -0
  39. package/dist/blocks/date-selector/date-selector.stories.d.ts.map +1 -0
  40. package/dist/blocks/date-selector/date-selector.stories.js +299 -0
  41. package/dist/blocks/date-selector/index.d.ts +11 -0
  42. package/dist/blocks/date-selector/index.d.ts.map +1 -0
  43. package/dist/blocks/date-selector/index.js +8 -0
  44. package/dist/{components → blocks}/date-selector/use-date-selector.d.ts +4 -3
  45. package/dist/blocks/date-selector/use-date-selector.d.ts.map +1 -0
  46. package/dist/{components → blocks}/date-selector/use-date-selector.js +14 -8
  47. package/dist/blocks/floating-menu-widget/floating-menu-widget.d.ts +26 -0
  48. package/dist/blocks/floating-menu-widget/floating-menu-widget.d.ts.map +1 -0
  49. package/dist/blocks/floating-menu-widget/floating-menu-widget.js +200 -0
  50. package/dist/blocks/floating-menu-widget/floating-menu-widget.stories.d.ts +15 -0
  51. package/dist/blocks/floating-menu-widget/floating-menu-widget.stories.d.ts.map +1 -0
  52. package/dist/blocks/floating-menu-widget/floating-menu-widget.stories.js +22 -0
  53. package/dist/blocks/floating-menu-widget/index.d.ts +3 -0
  54. package/dist/blocks/floating-menu-widget/index.d.ts.map +1 -0
  55. package/dist/blocks/floating-menu-widget/index.js +1 -0
  56. package/dist/blocks/index.d.ts +5 -0
  57. package/dist/blocks/index.d.ts.map +1 -0
  58. package/dist/blocks/index.js +4 -0
  59. package/dist/blocks/navigation/index.d.ts +5 -0
  60. package/dist/blocks/navigation/index.d.ts.map +1 -0
  61. package/dist/blocks/navigation/index.js +2 -0
  62. package/dist/blocks/navigation/navigation-types.d.ts +60 -0
  63. package/dist/blocks/navigation/navigation-types.d.ts.map +1 -0
  64. package/dist/blocks/navigation/navigation-types.js +1 -0
  65. package/dist/blocks/navigation/navigation.d.ts +9 -0
  66. package/dist/blocks/navigation/navigation.d.ts.map +1 -0
  67. package/dist/blocks/navigation/navigation.demo.d.ts +4 -0
  68. package/dist/blocks/navigation/navigation.demo.d.ts.map +1 -0
  69. package/dist/blocks/navigation/navigation.demo.js +46 -0
  70. package/dist/blocks/navigation/navigation.js +98 -0
  71. package/dist/blocks/navigation/navigation.stories.d.ts +14 -0
  72. package/dist/blocks/navigation/navigation.stories.d.ts.map +1 -0
  73. package/dist/blocks/navigation/navigation.stories.js +16 -0
  74. package/dist/components/accordion/accordion.stories.js +1 -1
  75. package/dist/components/alert/alert.stories.js +1 -1
  76. package/dist/components/alert-dialog/alert-dialog.stories.js +1 -1
  77. package/dist/components/aspect-ratio/aspect-ratio.stories.js +1 -1
  78. package/dist/components/avatar/avatar.stories.js +1 -1
  79. package/dist/components/badge/badge.stories.js +1 -1
  80. package/dist/components/breadcrumb/breadcrumb.stories.js +1 -1
  81. package/dist/components/button/button.d.ts +18 -11
  82. package/dist/components/button/button.d.ts.map +1 -1
  83. package/dist/components/button/button.js +27 -14
  84. package/dist/components/button/button.stories.d.ts +11 -0
  85. package/dist/components/button/button.stories.d.ts.map +1 -1
  86. package/dist/components/button/button.stories.js +85 -1
  87. package/dist/components/button-group/button-group.d.ts +10 -4
  88. package/dist/components/button-group/button-group.d.ts.map +1 -1
  89. package/dist/components/button-group/button-group.js +15 -3
  90. package/dist/components/button-group/button-group.stories.js +1 -1
  91. package/dist/components/button-group/index.d.ts +2 -2
  92. package/dist/components/button-group/index.d.ts.map +1 -1
  93. package/dist/components/button-group/index.js +1 -1
  94. package/dist/components/calendar/calendar.stories.js +1 -1
  95. package/dist/components/card/card.stories.js +1 -1
  96. package/dist/components/checkbox/checkbox.stories.js +1 -1
  97. package/dist/components/collapsible/collapsible.stories.js +1 -1
  98. package/dist/components/combobox/combobox.stories.js +1 -1
  99. package/dist/components/command/command.stories.js +1 -1
  100. package/dist/components/context-menu/context-menu.stories.js +1 -1
  101. package/dist/components/dialog/dialog.stories.js +1 -1
  102. package/dist/components/direction/direction.stories.js +1 -1
  103. package/dist/components/drawer/drawer.stories.js +1 -1
  104. package/dist/components/dropdown-menu/dropdown-menu.d.ts +9 -2
  105. package/dist/components/dropdown-menu/dropdown-menu.d.ts.map +1 -1
  106. package/dist/components/dropdown-menu/dropdown-menu.js +4 -1
  107. package/dist/components/dropdown-menu/dropdown-menu.stories.js +1 -1
  108. package/dist/components/dropdown-menu/index.d.ts +2 -2
  109. package/dist/components/dropdown-menu/index.d.ts.map +1 -1
  110. package/dist/components/dropdown-menu/index.js +1 -1
  111. package/dist/components/empty/empty.stories.js +1 -1
  112. package/dist/components/field/field.stories.js +1 -1
  113. package/dist/components/filters/filter-date-metric-value.d.ts +32 -0
  114. package/dist/components/filters/filter-date-metric-value.d.ts.map +1 -0
  115. package/dist/components/filters/filter-date-metric-value.js +406 -0
  116. package/dist/components/filters/filter-fields-listing-demo.d.ts +12 -0
  117. package/dist/components/filters/filter-fields-listing-demo.d.ts.map +1 -0
  118. package/dist/components/filters/filter-fields-listing-demo.js +565 -0
  119. package/dist/components/filters/filters-defaults.d.ts +4 -0
  120. package/dist/components/filters/filters-defaults.d.ts.map +1 -1
  121. package/dist/components/filters/filters-defaults.js +59 -1
  122. package/dist/components/filters/filters-i18n-resources.d.ts +277 -0
  123. package/dist/components/filters/filters-i18n-resources.d.ts.map +1 -0
  124. package/dist/components/filters/filters-i18n-resources.js +276 -0
  125. package/dist/components/filters/filters-i18n.shared.d.ts +16 -0
  126. package/dist/components/filters/filters-i18n.shared.d.ts.map +1 -0
  127. package/dist/components/filters/filters-i18n.shared.js +111 -0
  128. package/dist/components/filters/filters-types.d.ts +40 -1
  129. package/dist/components/filters/filters-types.d.ts.map +1 -1
  130. package/dist/components/filters/filters-utils.d.ts +28 -1
  131. package/dist/components/filters/filters-utils.d.ts.map +1 -1
  132. package/dist/components/filters/filters-utils.js +102 -0
  133. package/dist/components/filters/filters.d.ts +21 -3
  134. package/dist/components/filters/filters.d.ts.map +1 -1
  135. package/dist/components/filters/filters.js +493 -290
  136. package/dist/components/filters/filters.stories.d.ts +107 -2
  137. package/dist/components/filters/filters.stories.d.ts.map +1 -1
  138. package/dist/components/filters/filters.stories.js +224 -30
  139. package/dist/components/filters/index.d.ts +4 -1
  140. package/dist/components/filters/index.d.ts.map +1 -1
  141. package/dist/components/filters/index.js +4 -1
  142. package/dist/components/frame/frame.stories.js +1 -1
  143. package/dist/components/hover-card/hover-card.stories.js +1 -1
  144. package/dist/components/index.d.ts +2 -2
  145. package/dist/components/index.d.ts.map +1 -1
  146. package/dist/components/index.js +2 -2
  147. package/dist/components/input/input.stories.js +1 -1
  148. package/dist/components/input-group/input-group.stories.js +1 -1
  149. package/dist/components/item/item.stories.js +1 -1
  150. package/dist/components/kbd/kbd.stories.js +1 -1
  151. package/dist/components/label/label.stories.js +1 -1
  152. package/dist/components/menubar/menubar.stories.js +1 -1
  153. package/dist/components/native-select/native-select.stories.js +1 -1
  154. package/dist/components/navigation-menu/navigation-menu.stories.js +1 -1
  155. package/dist/components/pagination/pagination.stories.js +1 -1
  156. package/dist/components/popover/index.d.ts +1 -0
  157. package/dist/components/popover/index.d.ts.map +1 -1
  158. package/dist/components/popover/index.js +1 -0
  159. package/dist/components/popover/popover-handle.d.ts +6 -0
  160. package/dist/components/popover/popover-handle.d.ts.map +1 -0
  161. package/dist/components/popover/popover-handle.js +6 -0
  162. package/dist/components/popover/popover.d.ts +41 -7
  163. package/dist/components/popover/popover.d.ts.map +1 -1
  164. package/dist/components/popover/popover.js +50 -3
  165. package/dist/components/popover/popover.stories.js +1 -1
  166. package/dist/components/progress/progress.js +1 -1
  167. package/dist/components/progress/progress.stories.d.ts +11 -2
  168. package/dist/components/progress/progress.stories.d.ts.map +1 -1
  169. package/dist/components/progress/progress.stories.js +78 -5
  170. package/dist/components/radio-group/radio-group.stories.js +1 -1
  171. package/dist/components/resizable/resizable.stories.js +1 -1
  172. package/dist/components/scroll-area/scroll-area.stories.js +1 -1
  173. package/dist/components/select/select.stories.js +1 -1
  174. package/dist/components/separator/separator.stories.js +1 -1
  175. package/dist/components/sheet/sheet.stories.js +1 -1
  176. package/dist/components/sidebar/index.d.ts +2 -0
  177. package/dist/components/sidebar/index.d.ts.map +1 -0
  178. package/dist/components/sidebar/index.js +1 -0
  179. package/dist/components/sidebar/sidebar.d.ts +64 -0
  180. package/dist/components/sidebar/sidebar.d.ts.map +1 -0
  181. package/dist/components/sidebar/sidebar.js +255 -0
  182. package/dist/components/sidebar/sidebar.stories.d.ts +20 -0
  183. package/dist/components/sidebar/sidebar.stories.d.ts.map +1 -0
  184. package/dist/components/sidebar/sidebar.stories.js +184 -0
  185. package/dist/components/skeleton/index.d.ts +3 -0
  186. package/dist/components/skeleton/index.d.ts.map +1 -0
  187. package/dist/components/skeleton/index.js +1 -0
  188. package/dist/components/skeleton/skeleton.d.ts +7 -0
  189. package/dist/components/skeleton/skeleton.d.ts.map +1 -0
  190. package/dist/components/skeleton/skeleton.js +8 -0
  191. package/dist/components/slider/slider.stories.js +1 -1
  192. package/dist/components/sonner/sonner.stories.js +1 -1
  193. package/dist/components/sortable/sortable.stories.js +1 -1
  194. package/dist/components/spinner/spinner.stories.js +1 -1
  195. package/dist/components/status-indicator/status-indicator.stories.js +1 -1
  196. package/dist/components/switch/switch.stories.js +1 -1
  197. package/dist/components/tabs/tabs.stories.js +1 -1
  198. package/dist/components/text/text.stories.js +1 -1
  199. package/dist/components/textarea/textarea.stories.js +1 -1
  200. package/dist/components/toggle/toggle.stories.js +1 -1
  201. package/dist/components/toggle-group/toggle-group.stories.js +1 -1
  202. package/dist/components/tooltip/tooltip.stories.js +1 -1
  203. package/dist/index.d.ts +1 -0
  204. package/dist/index.d.ts.map +1 -1
  205. package/dist/index.js +1 -0
  206. package/dist/tsconfig.tsbuildinfo +1 -1
  207. package/llms.txt +10 -5
  208. package/package.json +8 -4
  209. package/dist/components/date-selector/date-selector-context.d.ts.map +0 -1
  210. package/dist/components/date-selector/date-selector-parts.d.ts.map +0 -1
  211. package/dist/components/date-selector/date-selector-types.d.ts.map +0 -1
  212. package/dist/components/date-selector/date-selector-value.d.ts +0 -47
  213. package/dist/components/date-selector/date-selector-value.d.ts.map +0 -1
  214. package/dist/components/date-selector/date-selector-value.js +0 -183
  215. package/dist/components/date-selector/date-selector.d.ts.map +0 -1
  216. package/dist/components/date-selector/date-selector.js +0 -144
  217. package/dist/components/date-selector/date-selector.stories.d.ts.map +0 -1
  218. package/dist/components/date-selector/date-selector.stories.js +0 -144
  219. package/dist/components/date-selector/index.d.ts +0 -7
  220. package/dist/components/date-selector/index.d.ts.map +0 -1
  221. package/dist/components/date-selector/index.js +0 -5
  222. package/dist/components/date-selector/use-date-selector.d.ts.map +0 -1
  223. package/dist/components/navigation-pattern-1/index.d.ts +0 -3
  224. package/dist/components/navigation-pattern-1/index.d.ts.map +0 -1
  225. package/dist/components/navigation-pattern-1/index.js +0 -1
  226. package/dist/components/navigation-pattern-1/pattern-1.config.d.ts +0 -47
  227. package/dist/components/navigation-pattern-1/pattern-1.config.d.ts.map +0 -1
  228. package/dist/components/navigation-pattern-1/pattern-1.config.js +0 -55
  229. package/dist/components/navigation-pattern-1/pattern-1.d.ts +0 -7
  230. package/dist/components/navigation-pattern-1/pattern-1.d.ts.map +0 -1
  231. package/dist/components/navigation-pattern-1/pattern-1.js +0 -83
  232. package/dist/components/navigation-pattern-1/pattern-1.stories.d.ts +0 -16
  233. package/dist/components/navigation-pattern-1/pattern-1.stories.d.ts.map +0 -1
  234. package/dist/components/navigation-pattern-1/pattern-1.stories.js +0 -20
  235. /package/dist/{components → blocks}/date-selector/date-selector-context.d.ts +0 -0
  236. /package/dist/{components → blocks}/date-selector/date-selector-context.js +0 -0
package/llms.txt CHANGED
@@ -4,7 +4,7 @@
4
4
  Wheelhouse React component library: Base UI primitives, shadcn-style patterns, Tailwind CSS v4, CVA for variants. Published as ESM with TypeScript declarations (`dist/`).
5
5
 
6
6
  ## Package entry points (`package.json` → `exports`)
7
- - **`@wheelhouse/ui`** — components (primitives and composed patterns such as `NavigationPattern1`) and `cn` from `src/index.ts` (dev: TS sources; prod: `dist/index.js` + `.d.ts`).
7
+ - **`@wheelhouse/ui`** — primitives from `src/components/`, composed **blocks** from `src/blocks/` (e.g. `DateSelector`, `Navigation`), and `cn` from `src/index.ts` (dev: TS sources; prod: `dist/index.js` + `.d.ts`).
8
8
  - **`@wheelhouse/ui/globals.css`** — CSS entry for tokens, Tailwind, and theme wiring (`src/styles/globals.css`).
9
9
 
10
10
  ## Stack & peers
@@ -15,12 +15,17 @@ Wheelhouse React component library: Base UI primitives, shadcn-style patterns, T
15
15
  ## Consuming apps
16
16
  1. `@import '@wheelhouse/ui/globals.css';`
17
17
  2. With Tailwind v4, `@source` the published bundle (see `README.md`).
18
- 3. `import { Button, NavigationPattern1 } from '@wheelhouse/ui'` (and other named exports from component barrels).
18
+ 3. `import { Button, Navigation } from '@wheelhouse/ui'` (named exports from `src/components/index.ts` and `src/blocks/index.ts`).
19
19
 
20
20
  ## Full documentation (LLM-friendly)
21
21
  Canonical narrative, examples, and props live in the **Wheelhouse docs** app (`apps/docs` in this monorepo). When deployed, it exposes `/llms.txt` (page index), `/llms-full.txt` (concatenated markdown), and `/llms-raw.mdx/...` (per-page markdown). Use your docs base URL or run the docs app locally — this file is only a short offline pointer.
22
22
 
23
- ## Component modules (barrels under `src/components/`)
24
- Named exports are grouped by folder. Alphabetical list of barrels re-exported from `@wheelhouse/ui`:
23
+ ## Blocks (`src/blocks/`)
24
+ Composed UI built from primitives re-exported from the package root alongside components:
25
25
 
26
- accordion, alert, alert-dialog, aspect-ratio, avatar, badge, breadcrumb, button, button-group, calendar, card, checkbox, collapsible, command, combobox, context-menu, date-selector, dialog, direction, drawer, dropdown-menu, empty, field, filters, frame, hover-card, input, input-group, item, kbd, label, menubar, native-select, navigation-menu, navigation-pattern-1 (`NavigationPattern1`; nav data in `pattern-1.config.ts`), pagination, popover, progress, radio-group, resizable, scroll-area, select, separator, sheet, slider, sonner, sortable, spinner, status-indicator, switch, tabs, text, textarea, toggle, toggle-group, tooltip
26
+ date-selector (`DateSelector`, `useDateSelector`, …), navigation (`Navigation`; pass `primary` and ordered `secondary` optional `search` / `notifications`, `menu`, `account`)
27
+
28
+ ## Component modules (`src/components/`)
29
+ Primitives and smaller patterns. Alphabetical list of barrels re-exported from `@wheelhouse/ui`:
30
+
31
+ accordion, alert, alert-dialog, aspect-ratio, avatar, badge, breadcrumb, button, button-group, calendar, card, checkbox, collapsible, command, combobox, context-menu, dialog, direction, drawer, dropdown-menu, empty, field, filters, frame, hover-card, input, input-group, item, kbd, label, menubar, native-select, navigation-menu, pagination, popover, progress, radio-group, resizable, scroll-area, select, separator, sheet, sidebar, skeleton, slider, sonner, sortable, spinner, status-indicator, switch, tabs, text, textarea, toggle, toggle-group, tooltip
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wheelhouse/ui",
3
- "version": "0.2.2",
3
+ "version": "0.2.4",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "publishConfig": {
@@ -10,11 +10,11 @@
10
10
  "@dnd-kit/core": "^6.3.1",
11
11
  "@dnd-kit/sortable": "^10.0.0",
12
12
  "@dnd-kit/utilities": "^3.2.2",
13
- "lucide-react": "^0.469.0",
14
13
  "class-variance-authority": "^0.7.1",
15
14
  "clsx": "^2.1.1",
16
15
  "cmdk": "^1.1.1",
17
16
  "date-fns": "^4.1.0",
17
+ "lucide-react": "^0.469.0",
18
18
  "react-day-picker": "^9.14.0",
19
19
  "react-resizable-panels": "^4.9.0",
20
20
  "shadcn": "^4.1.0",
@@ -27,8 +27,10 @@
27
27
  },
28
28
  "peerDependencies": {
29
29
  "@base-ui/react": ">=1.0.0",
30
+ "i18next": ">=23.0.0",
30
31
  "react": ">=19.0.0",
31
32
  "react-dom": ">=19.0.0",
33
+ "react-i18next": ">=15.0.0",
32
34
  "tailwindcss": ">=4.0.0"
33
35
  },
34
36
  "devDependencies": {
@@ -47,16 +49,18 @@
47
49
  "eslint-plugin-react-hooks": "^7.0.1",
48
50
  "eslint-plugin-react-refresh": "^0.4.24",
49
51
  "globals": "^17.2.0",
52
+ "i18next": "^26.0.5",
50
53
  "jsdom": "^27.0.0",
51
54
  "react": "^19.2.4",
55
+ "react-i18next": "^17.0.4",
52
56
  "react-dom": "^19.2.4",
53
57
  "tailwindcss": "^4.1.18",
54
58
  "typescript": "^5.9.3",
55
59
  "typescript-eslint": "^8.54.0",
56
60
  "vite": "^7.2.4",
57
61
  "vitest": "^3.0.0",
58
- "@wheelhouse/tsconfig": "0.0.0",
59
- "@wheelhouse/eslint-config": "0.0.0"
62
+ "@wheelhouse/eslint-config": "0.0.0",
63
+ "@wheelhouse/tsconfig": "0.0.0"
60
64
  },
61
65
  "exports": {
62
66
  ".": {
@@ -1 +0,0 @@
1
- {"version":3,"file":"date-selector-context.d.ts","sourceRoot":"","sources":["../../../src/components/date-selector/date-selector-context.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,wBAAwB,EAA8B,MAAM,uBAAuB,CAAC;AAElG,QAAA,MAAM,mBAAmB,mDAIvB,CAAC;AAEH,iFAAiF;AACjF,eAAO,MAAM,sBAAsB,gCAAwC,CAAC;AAE5E,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"date-selector-parts.d.ts","sourceRoot":"","sources":["../../../src/components/date-selector/date-selector-parts.tsx"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"date-selector-types.d.ts","sourceRoot":"","sources":["../../../src/components/date-selector/date-selector-types.ts"],"names":[],"mappings":"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"}
@@ -1,47 +0,0 @@
1
- import { type DateSelectorFilterType, type DateSelectorI18nConfig, type DateSelectorPeriodType, type DateSelectorRollingDays, type DateSelectorSelectionMode, type DateSelectorValue } from './date-selector-types';
2
- /**
3
- * Computes inclusive calendar date bounds for rolling windows. “Next N” includes today and spans N calendar days.
4
- * “Last N” includes today and goes back N − 1 days before today (N days total).
5
- */
6
- export declare function computeRollingDateRange(mode: 'rolling-next' | 'rolling-last', days: number, now?: Date): {
7
- startDate: Date;
8
- endDate: Date;
9
- };
10
- /**
11
- * Formats a {@link DateSelectorValue} for display using the same rules as the selector’s summary text.
12
- */
13
- export declare function formatDateValue(value: DateSelectorValue, i18n?: DateSelectorI18nConfig, dayDateFormat?: string): string;
14
- /** Stable fingerprint for a {@link DateSelectorValue} (for sync keys and onChange deduplication). */
15
- export declare function dateSelectorDataKey(value: DateSelectorValue | undefined): string;
16
- export declare function computeStateSyncKey(value: DateSelectorValue | undefined, presetMode: DateSelectorFilterType | undefined, defaultFilterType: DateSelectorFilterType, validDefaultPeriodType: DateSelectorPeriodType): string;
17
- /** Full local UI state for {@link useDateSelector} (calendar month / hover are not part of {@link DateSelectorValue}). */
18
- export interface DateSelectorInternalState {
19
- periodType: DateSelectorPeriodType;
20
- filterType: DateSelectorFilterType;
21
- selectedDate: Date | undefined;
22
- selectedEndDate: Date | undefined;
23
- calendarMonth: Date;
24
- selectedYear: number | undefined;
25
- selectedMonth: number | undefined;
26
- selectedQuarter: number | undefined;
27
- rangeStart: {
28
- year: number;
29
- value: number;
30
- } | undefined;
31
- rangeEnd: {
32
- year: number;
33
- value: number;
34
- } | undefined;
35
- hoverDate: Date | undefined;
36
- selectionMode: DateSelectorSelectionMode;
37
- rollingDays: DateSelectorRollingDays | undefined;
38
- }
39
- export declare function createInitialInternalState(value: DateSelectorValue | undefined, validDefaultPeriodType: DateSelectorPeriodType, defaultFilterType: DateSelectorFilterType, presetMode: DateSelectorFilterType | undefined): DateSelectorInternalState;
40
- export declare function buildRollingValueFromState(selectionMode: DateSelectorSelectionMode, rollingDays: DateSelectorRollingDays | undefined): DateSelectorValue | undefined;
41
- export declare function buildCurrentValueFromInternal(s: DateSelectorInternalState, presetMode: DateSelectorFilterType | undefined): DateSelectorValue;
42
- /** Combined UI state + last emitted value fingerprint for `onChange` deduplication. */
43
- export interface DateSelectorHookState {
44
- internal: DateSelectorInternalState;
45
- lastEmittedDataKey: string;
46
- }
47
- //# sourceMappingURL=date-selector-value.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"date-selector-value.d.ts","sourceRoot":"","sources":["../../../src/components/date-selector/date-selector-value.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,iBAAiB,EAEzB,MAAM,uBAAuB,CAAC;AAE/B;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,GAAE,IAAiB,GAAG;IAAE,SAAS,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,IAAI,CAAA;CAAE,CAYvJ;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC3B,KAAK,EAAE,iBAAiB,EACxB,IAAI,GAAE,sBAAmD,EACzD,aAAa,GAAE,MAAqB,GACrC,MAAM,CAuDR;AAED,qGAAqG;AACrG,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,iBAAiB,GAAG,SAAS,GAAG,MAAM,CAgBhF;AAED,wBAAgB,mBAAmB,CAC/B,KAAK,EAAE,iBAAiB,GAAG,SAAS,EACpC,UAAU,EAAE,sBAAsB,GAAG,SAAS,EAC9C,iBAAiB,EAAE,sBAAsB,EACzC,sBAAsB,EAAE,sBAAsB,GAC/C,MAAM,CAER;AAED,0HAA0H;AAC1H,MAAM,WAAW,yBAAyB;IACtC,UAAU,EAAE,sBAAsB,CAAC;IACnC,UAAU,EAAE,sBAAsB,CAAC;IACnC,YAAY,EAAE,IAAI,GAAG,SAAS,CAAC;IAC/B,eAAe,EAAE,IAAI,GAAG,SAAS,CAAC;IAClC,aAAa,EAAE,IAAI,CAAC;IACpB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IACxD,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IACtD,SAAS,EAAE,IAAI,GAAG,SAAS,CAAC;IAC5B,aAAa,EAAE,yBAAyB,CAAC;IACzC,WAAW,EAAE,uBAAuB,GAAG,SAAS,CAAC;CACpD;AAED,wBAAgB,0BAA0B,CACtC,KAAK,EAAE,iBAAiB,GAAG,SAAS,EACpC,sBAAsB,EAAE,sBAAsB,EAC9C,iBAAiB,EAAE,sBAAsB,EACzC,UAAU,EAAE,sBAAsB,GAAG,SAAS,GAC/C,yBAAyB,CAoD3B;AAED,wBAAgB,0BAA0B,CACtC,aAAa,EAAE,yBAAyB,EACxC,WAAW,EAAE,uBAAuB,GAAG,SAAS,GACjD,iBAAiB,GAAG,SAAS,CAoB/B;AAED,wBAAgB,6BAA6B,CAAC,CAAC,EAAE,yBAAyB,EAAE,UAAU,EAAE,sBAAsB,GAAG,SAAS,GAAG,iBAAiB,CAc7I;AAED,uFAAuF;AACvF,MAAM,WAAW,qBAAqB;IAClC,QAAQ,EAAE,yBAAyB,CAAC;IACpC,kBAAkB,EAAE,MAAM,CAAC;CAC9B"}
@@ -1,183 +0,0 @@
1
- import { addDays, format, startOfDay, subDays } from 'date-fns';
2
- import { DEFAULT_DATE_SELECTOR_I18N, } from './date-selector-types';
3
- /**
4
- * Computes inclusive calendar date bounds for rolling windows. “Next N” includes today and spans N calendar days.
5
- * “Last N” includes today and goes back N − 1 days before today (N days total).
6
- */
7
- export function computeRollingDateRange(mode, days, now = new Date()) {
8
- const today = startOfDay(now);
9
- if (mode === 'rolling-next') {
10
- return {
11
- startDate: today,
12
- endDate: startOfDay(addDays(today, days - 1)),
13
- };
14
- }
15
- return {
16
- startDate: startOfDay(subDays(today, days - 1)),
17
- endDate: today,
18
- };
19
- }
20
- /**
21
- * Formats a {@link DateSelectorValue} for display using the same rules as the selector’s summary text.
22
- */
23
- export function formatDateValue(value, i18n = DEFAULT_DATE_SELECTOR_I18N, dayDateFormat = 'MM/dd/yyyy') {
24
- const { period, selectionMode, rollingDays, startDate, endDate, year, month, quarter, rangeStart, rangeEnd } = value;
25
- if ((selectionMode === 'rolling-next' || selectionMode === 'rolling-last') && rollingDays !== undefined) {
26
- const label = selectionMode === 'rolling-next'
27
- ? i18n.rollingSummaryNext.replace('{{count}}', String(rollingDays))
28
- : i18n.rollingSummaryLast.replace('{{count}}', String(rollingDays));
29
- if (startDate && endDate) {
30
- return `${label} (${format(startDate, dayDateFormat)} – ${format(endDate, dayDateFormat)})`;
31
- }
32
- return label;
33
- }
34
- if (period === 'day') {
35
- if (startDate && endDate) {
36
- return `${format(startDate, dayDateFormat)} - ${format(endDate, dayDateFormat)}`;
37
- }
38
- if (startDate) {
39
- return format(startDate, dayDateFormat);
40
- }
41
- return '';
42
- }
43
- if (period === 'month') {
44
- if (rangeStart && rangeEnd) {
45
- return `${i18n.monthsShort[rangeStart.value]} ${rangeStart.year} - ${i18n.monthsShort[rangeEnd.value]} ${rangeEnd.year}`;
46
- }
47
- if (year !== undefined && month !== undefined) {
48
- return `${i18n.monthsShort[month]} ${year}`;
49
- }
50
- return '';
51
- }
52
- if (period === 'quarter') {
53
- if (rangeStart && rangeEnd) {
54
- return `${i18n.quarters[rangeStart.value]} ${rangeStart.year} - ${i18n.quarters[rangeEnd.value]} ${rangeEnd.year}`;
55
- }
56
- if (year !== undefined && quarter !== undefined) {
57
- return `${i18n.quarters[quarter]} ${year}`;
58
- }
59
- return '';
60
- }
61
- if (period === 'year') {
62
- if (rangeStart && rangeEnd) {
63
- return `${rangeStart.year} - ${rangeEnd.year}`;
64
- }
65
- if (year !== undefined) {
66
- return `${year}`;
67
- }
68
- return '';
69
- }
70
- return '';
71
- }
72
- /** Stable fingerprint for a {@link DateSelectorValue} (for sync keys and onChange deduplication). */
73
- export function dateSelectorDataKey(value) {
74
- if (value === undefined)
75
- return '__uc__';
76
- const v = value;
77
- return [
78
- v.period,
79
- v.operator,
80
- v.selectionMode ?? '',
81
- v.rollingDays ?? '',
82
- v.year ?? '',
83
- v.month ?? '',
84
- v.quarter ?? '',
85
- v.startDate?.getTime() ?? '',
86
- v.endDate?.getTime() ?? '',
87
- v.rangeStart ? `${v.rangeStart.year}-${v.rangeStart.value}` : '',
88
- v.rangeEnd ? `${v.rangeEnd.year}-${v.rangeEnd.value}` : '',
89
- ].join('|');
90
- }
91
- export function computeStateSyncKey(value, presetMode, defaultFilterType, validDefaultPeriodType) {
92
- return `${dateSelectorDataKey(value)}|${presetMode ?? ''}|${defaultFilterType}|${validDefaultPeriodType}`;
93
- }
94
- export function createInitialInternalState(value, validDefaultPeriodType, defaultFilterType, presetMode) {
95
- const calendarMonth = value?.startDate ?? new Date();
96
- if (!value) {
97
- return {
98
- periodType: validDefaultPeriodType,
99
- filterType: presetMode ?? defaultFilterType,
100
- selectedDate: undefined,
101
- selectedEndDate: undefined,
102
- calendarMonth,
103
- selectedYear: undefined,
104
- selectedMonth: undefined,
105
- selectedQuarter: undefined,
106
- rangeStart: undefined,
107
- rangeEnd: undefined,
108
- hoverDate: undefined,
109
- selectionMode: 'custom',
110
- rollingDays: undefined,
111
- };
112
- }
113
- const filterType = presetMode ?? value.operator ?? defaultFilterType;
114
- if (value.selectionMode === 'rolling-next' || value.selectionMode === 'rolling-last') {
115
- return {
116
- periodType: value.period || validDefaultPeriodType,
117
- filterType,
118
- selectedDate: undefined,
119
- selectedEndDate: undefined,
120
- calendarMonth,
121
- selectedYear: value.year,
122
- selectedMonth: value.month,
123
- selectedQuarter: value.quarter,
124
- rangeStart: value.rangeStart,
125
- rangeEnd: value.rangeEnd,
126
- hoverDate: undefined,
127
- selectionMode: value.selectionMode,
128
- rollingDays: value.rollingDays,
129
- };
130
- }
131
- return {
132
- periodType: value.period || validDefaultPeriodType,
133
- filterType,
134
- selectedYear: value.year,
135
- selectedMonth: value.month,
136
- selectedQuarter: value.quarter,
137
- rangeStart: value.rangeStart,
138
- rangeEnd: value.rangeEnd,
139
- hoverDate: undefined,
140
- selectionMode: 'custom',
141
- rollingDays: undefined,
142
- selectedDate: value.startDate,
143
- selectedEndDate: value.endDate,
144
- calendarMonth,
145
- };
146
- }
147
- export function buildRollingValueFromState(selectionMode, rollingDays) {
148
- if (selectionMode !== 'rolling-next' && selectionMode !== 'rolling-last') {
149
- return undefined;
150
- }
151
- if (rollingDays === undefined) {
152
- return {
153
- period: 'day',
154
- operator: 'between',
155
- selectionMode,
156
- };
157
- }
158
- const { startDate: rs, endDate: re } = computeRollingDateRange(selectionMode === 'rolling-next' ? 'rolling-next' : 'rolling-last', rollingDays, new Date());
159
- return {
160
- period: 'day',
161
- operator: 'between',
162
- selectionMode,
163
- rollingDays,
164
- startDate: rs,
165
- endDate: re,
166
- };
167
- }
168
- export function buildCurrentValueFromInternal(s, presetMode) {
169
- const rolling = buildRollingValueFromState(s.selectionMode, s.rollingDays);
170
- if (rolling)
171
- return rolling;
172
- return {
173
- period: s.periodType,
174
- operator: presetMode ?? s.filterType,
175
- startDate: s.selectedDate,
176
- endDate: s.selectedEndDate,
177
- year: s.selectedYear,
178
- month: s.selectedMonth,
179
- quarter: s.selectedQuarter,
180
- rangeStart: s.rangeStart,
181
- rangeEnd: s.rangeEnd,
182
- };
183
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"date-selector.d.ts","sourceRoot":"","sources":["../../../src/components/date-selector/date-selector.tsx"],"names":[],"mappings":"AAsBA,OAAO,EAAqC,KAAK,iBAAiB,EAAsD,MAAM,uBAAuB,CAAC;AAItJ;;GAEG;AACH,wBAAgB,YAAY,CAAC,EACzB,KAAK,EACL,QAAQ,EACR,UAAiB,EACjB,WAAW,EACX,iBAAyB,EACzB,iBAAwB,EACxB,UAAU,EACV,SAAgB,EAChB,aAAoB,EACpB,aAAqB,EACrB,KAAK,EACL,SAAS,EACT,SAAa,EACb,QAAQ,EACR,OAAc,EACd,OAAc,EACd,WAAW,EACX,IAAI,EAAE,YAAY,EAClB,SAAS,EACT,aAA4B,EAC5B,cAAc,EACd,YAAY,EACZ,kBAA0B,EAC1B,iBAAqD,GACxD,EAAE,iBAAiB,2CA6TnB"}
@@ -1,144 +0,0 @@
1
- 'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- /**
4
- * Rich date / period filter: day through year granularity, filter operators (is / before / after / between), optional free-text input,
5
- * and shared state via {@link useDateSelector}. Built on `Calendar`, tabs, and `ScrollArea`.
6
- *
7
- * Implementation is split across `date-selector-types`, `date-selector-value`, `use-date-selector`, `date-selector-context`,
8
- * and `date-selector-parts` for maintainability.
9
- */
10
- import { useCallback, useMemo, useState } from 'react';
11
- import { parse } from 'date-fns';
12
- import { cn } from '../../lib/utils';
13
- import { Button } from '../button';
14
- import { Input } from '../input';
15
- import { ScrollArea } from '../scroll-area';
16
- import { Tabs, TabsList, TabsTrigger } from '../tabs';
17
- import { X } from 'lucide-react';
18
- import { DateSelectorContext } from './date-selector-context';
19
- import { DateSelectorDayPicker, DateSelectorFilterToggle, DateSelectorPeriodGrid, DateSelectorPeriodTabs, DateSelectorYearList } from './date-selector-parts';
20
- import { DATE_SELECTOR_ROLLING_DAY_OPTIONS, DEFAULT_DATE_SELECTOR_I18N } from './date-selector-types';
21
- import { formatDateValue } from './date-selector-value';
22
- import { useDateSelector } from './use-date-selector';
23
- /**
24
- * Composite filter control for dates and calendar periods. Root element sets `data-slot="date-selector"`.
25
- */
26
- export function DateSelector({ value, onChange, allowRange = true, periodTypes, defaultPeriodType = 'day', defaultFilterType = 'is', presetMode, showInput = true, showOperators = true, showTwoMonths = false, label, className, yearRange = 5, baseYear, minYear = 2024, maxYear = 2028, yearOptions, i18n: i18nOverride, inputHint, dayDateFormat = 'MM/dd/yyyy', dayDateFormats, weekStartsOn, showRollingPresets = false, rollingDayOptions = DATE_SELECTOR_ROLLING_DAY_OPTIONS, }) {
27
- const mergedI18n = useMemo(() => ({ ...DEFAULT_DATE_SELECTOR_I18N, ...i18nOverride }), [i18nOverride]);
28
- const selector = useDateSelector({
29
- value,
30
- onChange,
31
- defaultPeriodType,
32
- defaultFilterType,
33
- presetMode,
34
- allowRange,
35
- yearRange,
36
- baseYear,
37
- minYear,
38
- maxYear,
39
- yearOptions,
40
- periodTypes,
41
- });
42
- const { periodType, filterType, selectedDate, selectedEndDate, calendarMonth, selectedYear, selectedMonth, selectedQuarter, rangeStart, rangeEnd, hoverDate, years, currentValue, setPeriodType, setFilterType, setCalendarMonth, setHoverDate, clearSelection, handleDayClick, handlePeriodSelect, handleYearSelect, isInRange, isYearInRange, selectionMode, rollingDays, applyRollingPreset, enterCustomRange, syncInternalFromParsedValue, } = selector;
43
- const defaultRollingDay = useMemo(() => {
44
- if (rollingDays !== undefined && rollingDayOptions.includes(rollingDays))
45
- return rollingDays;
46
- return rollingDayOptions[0];
47
- }, [rollingDays, rollingDayOptions]);
48
- const hideOperatorsForRolling = showRollingPresets && periodType === 'day' && (selectionMode === 'rolling-next' || selectionMode === 'rolling-last');
49
- const showDayCalendar = periodType === 'day' && selectionMode === 'custom';
50
- const displayValue = formatDateValue(currentValue, mergedI18n, dayDateFormat);
51
- const [draftInput, setDraftInput] = useState('');
52
- const [isInputFocused, setIsInputFocused] = useState(false);
53
- const summaryInputValue = inputHint ? (isInputFocused ? draftInput : displayValue) : displayValue;
54
- const dateFormats = useMemo(() => {
55
- if (dayDateFormats && dayDateFormats.length > 0) {
56
- const formats = [...dayDateFormats];
57
- if (!formats.includes(dayDateFormat)) {
58
- formats.unshift(dayDateFormat);
59
- }
60
- return formats;
61
- }
62
- const defaultFormats = [dayDateFormat, 'dd/MM/yyyy', 'yyyy-MM-dd', 'MM-dd-yyyy', 'dd-MM-yyyy'];
63
- return Array.from(new Set(defaultFormats));
64
- }, [dayDateFormat, dayDateFormats]);
65
- const parseInputValue = useCallback((text) => {
66
- if (!text.trim())
67
- return null;
68
- const trimmed = text.trim();
69
- const yearMatch = trimmed.match(/^\d{4}$/);
70
- if (yearMatch) {
71
- const year = parseInt(yearMatch[0]);
72
- if (year >= 1900 && year <= 2100) {
73
- return {
74
- period: 'year',
75
- operator: presetMode ?? filterType,
76
- year,
77
- };
78
- }
79
- }
80
- const quarterMatch = trimmed.match(/^Q([1-4])(?:\s+(\d{4}))?$/i);
81
- if (quarterMatch) {
82
- const quarter = parseInt(quarterMatch[1]) - 1;
83
- const year = quarterMatch[2] ? parseInt(quarterMatch[2]) : new Date().getFullYear();
84
- if (year >= 1900 && year <= 2100) {
85
- return {
86
- period: 'quarter',
87
- operator: presetMode ?? filterType,
88
- year,
89
- quarter,
90
- };
91
- }
92
- }
93
- for (const dateFormat of dateFormats) {
94
- try {
95
- const parsed = parse(trimmed, dateFormat, new Date());
96
- if (!isNaN(parsed.getTime())) {
97
- return {
98
- period: 'day',
99
- operator: presetMode ?? filterType,
100
- startDate: parsed,
101
- };
102
- }
103
- }
104
- catch {
105
- // Continue to next format
106
- }
107
- }
108
- return null;
109
- }, [filterType, presetMode, dateFormats]);
110
- const handleInputChange = useCallback((e) => {
111
- const newValue = e.target.value;
112
- setDraftInput(newValue);
113
- const parsed = parseInputValue(newValue);
114
- if (parsed) {
115
- onChange?.(parsed);
116
- if (value === undefined) {
117
- syncInternalFromParsedValue(parsed);
118
- }
119
- }
120
- }, [onChange, parseInputValue, syncInternalFromParsedValue, value]);
121
- const handleInputBlur = useCallback(() => {
122
- setIsInputFocused(false);
123
- if (!parseInputValue(draftInput)) {
124
- setDraftInput(displayValue);
125
- }
126
- }, [draftInput, displayValue, parseInputValue]);
127
- const summaryInput = showInput ? (_jsxs("div", { className: "relative", "data-slot": "date-selector-summary-input", children: [_jsx(Input, { type: "text", value: summaryInputValue, readOnly: !inputHint, placeholder: isInputFocused && inputHint ? inputHint : mergedI18n.placeholder, onFocus: () => {
128
- setIsInputFocused(true);
129
- setDraftInput(displayValue);
130
- }, onBlur: handleInputBlur, onChange: handleInputChange }), summaryInputValue && (_jsx("button", { type: "button", onClick: clearSelection, className: cn('absolute end-2.5 top-1/2 size-4 -translate-y-1/2 cursor-pointer rounded-xs', 'opacity-70 transition-opacity hover:opacity-100', 'ring-offset-background focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-none'), children: _jsx(X, { className: "size-4" }) }))] })) : null;
131
- return (_jsx(DateSelectorContext.Provider, { value: { i18n: mergedI18n, variant: 'outline', size: 'default' }, children: _jsxs("div", { "data-slot": "date-selector", className: cn('w-full max-w-[20rem] space-y-4', className), children: [label && (_jsx("h3", { className: "text-sm font-medium", "data-slot": "data-selector-label", children: label })), showRollingPresets && (_jsxs("div", { className: "space-y-2", "data-slot": "date-selector-rolling", children: [_jsx(Tabs, { className: "w-full", value: selectionMode === 'rolling-next' ? 'rolling-next' : selectionMode === 'rolling-last' ? 'rolling-last' : 'custom', onValueChange: (newValue) => {
132
- if (!newValue)
133
- return;
134
- if (newValue === 'rolling-next')
135
- applyRollingPreset('rolling-next', defaultRollingDay);
136
- else if (newValue === 'rolling-last')
137
- applyRollingPreset('rolling-last', defaultRollingDay);
138
- else if (newValue === 'custom')
139
- enterCustomRange();
140
- }, children: _jsxs(TabsList, { className: "flex h-9 w-full min-w-0 gap-1 bg-muted/80 p-[3px]", children: [_jsx(TabsTrigger, { value: "rolling-next", "aria-label": mergedI18n.rollingWindowTabs.next, className: "min-w-0 flex-1 px-2 py-1 text-center font-normal", children: mergedI18n.rollingWindowTabs.next }), _jsx(TabsTrigger, { value: "rolling-last", "aria-label": mergedI18n.rollingWindowTabs.last, className: "min-w-0 flex-1 px-2 py-1 text-center font-normal", children: mergedI18n.rollingWindowTabs.last }), _jsx(TabsTrigger, { value: "custom", "aria-label": mergedI18n.rollingWindowTabs.custom, className: "min-w-0 flex-1 px-2 py-1 text-center font-normal", children: mergedI18n.rollingWindowTabs.custom })] }) }), showInput && summaryInput, (selectionMode === 'rolling-next' || selectionMode === 'rolling-last') && (_jsx("div", { className: "grid grid-cols-3 gap-2", "data-slot": "date-selector-rolling-value", children: rollingDayOptions.map((d) => {
141
- const chipLabel = mergedI18n.rollingDaysChip.replace('{{count}}', String(d));
142
- return (_jsx(Button, { type: "button", size: "sm", className: "w-full min-w-0", variant: rollingDays === d ? 'default' : 'outline', onClick: () => applyRollingPreset(selectionMode === 'rolling-last' ? 'rolling-last' : 'rolling-next', d), children: chipLabel }, d));
143
- }) }))] })), showOperators && !hideOperatorsForRolling && (_jsx(DateSelectorFilterToggle, { value: filterType, onChange: setFilterType, showBetween: allowRange, presetMode: presetMode })), showInput && !showRollingPresets && summaryInput, (!showRollingPresets || selectionMode === 'custom') && (_jsx(DateSelectorPeriodTabs, { value: periodType, onChange: setPeriodType, periodTypes: periodTypes })), periodType === 'day' && showDayCalendar && (_jsx("div", { className: "w-full pb-1", children: _jsx(DateSelectorDayPicker, { currentMonth: calendarMonth, selectedDate: selectedDate, selectedEndDate: selectedEndDate, onDayClick: handleDayClick, isRange: filterType === 'between' && allowRange, onDayHover: setHoverDate, hoverDate: hoverDate, showTwoMonths: showTwoMonths, weekStartsOn: weekStartsOn, onMonthChange: setCalendarMonth }) })), periodType !== 'day' && (_jsx("div", { className: "-mr-3 w-full", children: _jsxs(ScrollArea, { className: "h-[200px] w-full pe-3", children: [periodType === 'month' && (_jsx(DateSelectorPeriodGrid, { years: years, items: mergedI18n.monthsShort, selectedYear: selectedYear, selectedValue: selectedMonth, rangeStart: rangeStart, rangeEnd: rangeEnd, isInRange: isInRange, onSelect: handlePeriodSelect, columns: 3 })), periodType === 'quarter' && (_jsx(DateSelectorPeriodGrid, { className: "space-y-3", years: years, items: mergedI18n.quarters, selectedYear: selectedYear, selectedValue: selectedQuarter, rangeStart: rangeStart, rangeEnd: rangeEnd, isInRange: isInRange, onSelect: handlePeriodSelect, columns: 4 })), periodType === 'year' && (_jsx(DateSelectorYearList, { years: years, selectedYear: selectedYear, rangeStart: rangeStart, rangeEnd: rangeEnd, isYearInRange: isYearInRange, onSelect: handleYearSelect }))] }, periodType) }))] }) }));
144
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"date-selector.stories.d.ts","sourceRoot":"","sources":["../../../src/components/date-selector/date-selector.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,KAAK,EAAE,sBAAsB,EAA0B,iBAAiB,EAAqB,MAAM,GAAG,CAAC;AAG9G,QAAA,MAAM,mBAAmB;;;;;;;CAOgD,CAAC;AAE1E,KAAK,iBAAiB,GAAG,MAAM,OAAO,mBAAmB,CAAC;AAE1D,4FAA4F;AAC5F,KAAK,qBAAqB,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,aAAa,GAAG,YAAY,GAAG,cAAc,CAAC,GAAG;IAClI,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,UAAU,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC;IAC9C,YAAY,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,CAAC;CAC3E,CAAC;AAYF,gGAAgG;AAChG,iBAAS,qBAAqB,CAAC,IAAI,EAAE,qBAAqB,2CAIzD;AAED,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAoD+C,iBAAiB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoB9B,CAAC;AAE/C,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,eAAO,MAAM,OAAO,EAAE,KAerB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAM3B,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAMzB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAM5B,CAAC"}
@@ -1,144 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useState } from 'react';
3
- import { DateSelector } from '.';
4
- const PERIOD_TYPE_PRESETS = {
5
- all: undefined,
6
- day: ['day'],
7
- 'day-month': ['day', 'month'],
8
- month: ['month'],
9
- quarter: ['quarter'],
10
- year: ['year'],
11
- };
12
- function storyArgsToProps(args) {
13
- const { periodTypesPreset = 'all', presetMode, weekStartsOn, ...rest } = args;
14
- return {
15
- ...rest,
16
- periodTypes: PERIOD_TYPE_PRESETS[periodTypesPreset],
17
- presetMode: presetMode === 'unset' ? undefined : presetMode,
18
- weekStartsOn: weekStartsOn === 'unset' ? undefined : weekStartsOn,
19
- };
20
- }
21
- /** Storybook-only shell: maps story args to {@link DateSelector} and wires controlled state. */
22
- function DateSelectorStorybook(args) {
23
- const [value, setValue] = useState();
24
- const props = storyArgsToProps(args);
25
- return _jsx(DateSelector, { ...props, value: value, onChange: setValue });
26
- }
27
- const meta = {
28
- title: 'UI/DateSelector',
29
- component: DateSelectorStorybook,
30
- tags: ['autodocs'],
31
- parameters: {
32
- layout: 'padded',
33
- docs: {
34
- story: {
35
- height: '720px',
36
- },
37
- },
38
- },
39
- args: {
40
- label: '',
41
- showInput: true,
42
- showOperators: true,
43
- showTwoMonths: false,
44
- allowRange: true,
45
- showRollingPresets: false,
46
- defaultPeriodType: 'day',
47
- defaultFilterType: 'is',
48
- presetMode: 'unset',
49
- periodTypesPreset: 'all',
50
- minYear: 2024,
51
- maxYear: 2028,
52
- yearRange: 10,
53
- weekStartsOn: 'unset',
54
- inputHint: '',
55
- dayDateFormat: 'MM/dd/yyyy',
56
- },
57
- argTypes: {
58
- label: { control: 'text' },
59
- showInput: { control: 'boolean' },
60
- showOperators: { control: 'boolean' },
61
- showTwoMonths: { control: 'boolean' },
62
- allowRange: { control: 'boolean' },
63
- showRollingPresets: { control: 'boolean' },
64
- defaultPeriodType: {
65
- control: 'select',
66
- options: ['day', 'month', 'quarter', 'year'],
67
- },
68
- defaultFilterType: {
69
- control: 'select',
70
- options: ['is', 'before', 'after', 'between'],
71
- },
72
- presetMode: {
73
- control: 'select',
74
- options: ['unset', 'is', 'before', 'after', 'between'],
75
- description: 'Use “unset” to clear (same as leaving `presetMode` undefined).',
76
- },
77
- periodTypesPreset: {
78
- control: 'select',
79
- options: Object.keys(PERIOD_TYPE_PRESETS),
80
- description: 'Maps to the `periodTypes` prop (which tabs are enabled).',
81
- },
82
- minYear: { control: 'number' },
83
- maxYear: { control: 'number' },
84
- yearRange: { control: 'number' },
85
- baseYear: { control: 'number' },
86
- weekStartsOn: {
87
- control: 'select',
88
- options: ['unset', 0, 1, 2, 3, 4, 5, 6],
89
- description: 'Use “unset” for the default (Sunday in most locales).',
90
- },
91
- inputHint: { control: 'text' },
92
- dayDateFormat: { control: 'text' },
93
- className: { control: false },
94
- i18n: { control: false },
95
- yearOptions: { control: false },
96
- dayDateFormats: { control: false },
97
- rollingDayOptions: { control: false },
98
- },
99
- };
100
- export default meta;
101
- export const Default = {};
102
- export const DayOnly = {
103
- args: {
104
- label: 'Date',
105
- periodTypesPreset: 'day',
106
- defaultPeriodType: 'day',
107
- },
108
- render: function DayOnlyStory(args) {
109
- const [value, setValue] = useState({
110
- period: 'day',
111
- operator: 'is',
112
- startDate: new Date(2026, 3, 13),
113
- });
114
- const props = storyArgsToProps(args);
115
- return _jsx(DateSelector, { ...props, value: value, onChange: setValue });
116
- },
117
- };
118
- export const PresetBetween = {
119
- args: {
120
- label: 'In range',
121
- presetMode: 'between',
122
- defaultFilterType: 'between',
123
- },
124
- };
125
- export const NoInput = {
126
- args: {
127
- label: 'Pick in calendar',
128
- showInput: false,
129
- },
130
- };
131
- export const NoOperators = {
132
- args: {
133
- label: 'Period only (operator fixed to is)',
134
- showOperators: false,
135
- defaultFilterType: 'is',
136
- },
137
- };
138
- export const RollingPresets = {
139
- args: {
140
- label: 'Rolling window',
141
- showRollingPresets: true,
142
- defaultFilterType: 'between',
143
- },
144
- };
@@ -1,7 +0,0 @@
1
- export { computeRollingDateRange, formatDateValue } from './date-selector-value';
2
- export { DATE_SELECTOR_ROLLING_DAY_OPTIONS, DEFAULT_DATE_SELECTOR_I18N } from './date-selector-types';
3
- export { DateSelector } from './date-selector';
4
- export { useDateSelector } from './use-date-selector';
5
- export { useDateSelectorContext } from './date-selector-context';
6
- export type { DateSelectorContextValue, DateSelectorFilterType, DateSelectorI18nConfig, DateSelectorPeriodType, DateSelectorProps, DateSelectorRollingDays, DateSelectorSelectionMode, DateSelectorValue, UseDateSelectorOptions, } from './date-selector-types';
7
- //# sourceMappingURL=index.d.ts.map