@devalok/shilp-sutra 0.38.0 → 0.40.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (361) hide show
  1. package/AGENTS.md +151 -0
  2. package/MIGRATION.md +255 -0
  3. package/README.md +3 -0
  4. package/dist/_chunks/badge-group.js +76 -75
  5. package/dist/_chunks/badge-group.js.map +1 -1
  6. package/dist/_chunks/chart-container.js +50 -0
  7. package/dist/_chunks/chart-container.js.map +1 -0
  8. package/dist/_chunks/chat.js +236 -228
  9. package/dist/_chunks/chat.js.map +1 -1
  10. package/dist/_chunks/colors.js +30 -0
  11. package/dist/_chunks/colors.js.map +1 -0
  12. package/dist/_chunks/document-preview.js +2 -2
  13. package/dist/_chunks/document-preview.js.map +1 -1
  14. package/dist/_chunks/emoji-data.js +45 -0
  15. package/dist/_chunks/emoji-data.js.map +1 -0
  16. package/dist/_chunks/grid-lines.js +72 -0
  17. package/dist/_chunks/grid-lines.js.map +1 -0
  18. package/dist/_chunks/image-preview.js +2 -2
  19. package/dist/_chunks/image-preview.js.map +1 -1
  20. package/dist/_chunks/mention-suggestion.js +35 -263
  21. package/dist/_chunks/mention-suggestion.js.map +1 -1
  22. package/dist/_chunks/normalize-icon.js +18 -0
  23. package/dist/_chunks/normalize-icon.js.map +1 -0
  24. package/dist/_chunks/oauth-button.js +227 -0
  25. package/dist/_chunks/oauth-button.js.map +1 -0
  26. package/dist/_chunks/popover.js +3 -3
  27. package/dist/_chunks/popover.js.map +1 -1
  28. package/dist/_chunks/primitives.js +107 -107
  29. package/dist/_chunks/primitives.js.map +1 -1
  30. package/dist/_chunks/shared.js +5 -5
  31. package/dist/_chunks/shared.js.map +1 -1
  32. package/dist/_chunks/{text.js → success.js} +26 -63
  33. package/dist/_chunks/success.js.map +1 -0
  34. package/dist/_chunks/tiptap.js +1952 -1949
  35. package/dist/_chunks/tiptap.js.map +1 -1
  36. package/dist/_chunks/tooltip.js +58 -0
  37. package/dist/_chunks/tooltip.js.map +1 -0
  38. package/dist/_chunks/tree-view.js +101 -96
  39. package/dist/_chunks/tree-view.js.map +1 -1
  40. package/dist/_chunks/use-calendar.js +5 -5
  41. package/dist/_chunks/use-calendar.js.map +1 -1
  42. package/dist/ai/ai-command-provider.d.ts +3 -2
  43. package/dist/ai/ai-command-provider.d.ts.map +1 -1
  44. package/dist/ai/ai-command-provider.js.map +1 -1
  45. package/dist/ai/block-renderer.js +11 -9
  46. package/dist/ai/block-renderer.js.map +1 -1
  47. package/dist/ai/blocks/error.js +31 -0
  48. package/dist/ai/blocks/error.js.map +1 -0
  49. package/dist/ai/blocks/index.d.ts +0 -2
  50. package/dist/ai/blocks/index.d.ts.map +1 -1
  51. package/dist/ai/blocks/index.js +2 -2
  52. package/dist/ai/blocks/text.js +19 -0
  53. package/dist/ai/blocks/text.js.map +1 -0
  54. package/dist/ai/command-bar.d.ts.map +1 -1
  55. package/dist/ai/command-bar.js +198 -193
  56. package/dist/ai/command-bar.js.map +1 -1
  57. package/dist/ai/conversation.d.ts +2 -1
  58. package/dist/ai/conversation.d.ts.map +1 -1
  59. package/dist/ai/conversation.js +92 -87
  60. package/dist/ai/conversation.js.map +1 -1
  61. package/dist/ai/index.d.ts +0 -4
  62. package/dist/ai/index.d.ts.map +1 -1
  63. package/dist/ai/index.js +45 -46
  64. package/dist/ai/index.js.map +1 -1
  65. package/dist/composed/activity-feed.d.ts +2 -1
  66. package/dist/composed/activity-feed.d.ts.map +1 -1
  67. package/dist/composed/activity-feed.js +5 -5
  68. package/dist/composed/activity-feed.js.map +1 -1
  69. package/dist/composed/avatar-group.js +4 -4
  70. package/dist/composed/avatar-group.js.map +1 -1
  71. package/dist/composed/bulk-action-bar.d.ts +2 -2
  72. package/dist/composed/bulk-action-bar.d.ts.map +1 -1
  73. package/dist/composed/bulk-action-bar.js +12 -12
  74. package/dist/composed/bulk-action-bar.js.map +1 -1
  75. package/dist/composed/command-palette.d.ts +2 -1
  76. package/dist/composed/command-palette.d.ts.map +1 -1
  77. package/dist/composed/command-palette.js +106 -101
  78. package/dist/composed/command-palette.js.map +1 -1
  79. package/dist/composed/content-card.js +1 -1
  80. package/dist/composed/content-card.js.map +1 -1
  81. package/dist/composed/date-picker/index.js +747 -3
  82. package/dist/composed/date-picker/index.js.map +1 -0
  83. package/dist/composed/emoji-picker.js +4 -4
  84. package/dist/composed/emoji-picker.js.map +1 -1
  85. package/dist/composed/empty-state.d.ts +3 -3
  86. package/dist/composed/empty-state.d.ts.map +1 -1
  87. package/dist/composed/empty-state.js +40 -31
  88. package/dist/composed/empty-state.js.map +1 -1
  89. package/dist/composed/error-boundary.js +3 -3
  90. package/dist/composed/error-boundary.js.map +1 -1
  91. package/dist/composed/extensions/emoji-node.js +81 -0
  92. package/dist/composed/extensions/emoji-node.js.map +1 -0
  93. package/dist/composed/extensions/emoji-suggestion.js +117 -0
  94. package/dist/composed/extensions/emoji-suggestion.js.map +1 -0
  95. package/dist/composed/file-preview.js +498 -2
  96. package/dist/composed/file-preview.js.map +1 -0
  97. package/dist/composed/filter-bar.js +1 -1
  98. package/dist/composed/filter-bar.js.map +1 -1
  99. package/dist/composed/index.d.ts +0 -15
  100. package/dist/composed/index.d.ts.map +1 -1
  101. package/dist/composed/index.js +16 -24
  102. package/dist/composed/inline-edit.js +1 -1
  103. package/dist/composed/inline-edit.js.map +1 -1
  104. package/dist/composed/loading-skeleton.js +9 -9
  105. package/dist/composed/loading-skeleton.js.map +1 -1
  106. package/dist/composed/markdown-viewer.js +3 -3
  107. package/dist/composed/markdown-viewer.js.map +1 -1
  108. package/dist/composed/multi-select-popover.js +1 -1
  109. package/dist/composed/multi-select-popover.js.map +1 -1
  110. package/dist/composed/page-header.js +1 -1
  111. package/dist/composed/page-header.js.map +1 -1
  112. package/dist/composed/page-skeletons.js +15 -15
  113. package/dist/composed/page-skeletons.js.map +1 -1
  114. package/dist/composed/priority-indicator.js +3 -3
  115. package/dist/composed/priority-indicator.js.map +1 -1
  116. package/dist/composed/rich-chat-input.js +2073 -2
  117. package/dist/composed/rich-chat-input.js.map +1 -0
  118. package/dist/composed/rich-text-editor.js +75 -72
  119. package/dist/composed/rich-text-editor.js.map +1 -1
  120. package/dist/composed/schedule-view.js +3 -3
  121. package/dist/composed/schedule-view.js.map +1 -1
  122. package/dist/composed/status-badge.d.ts +3 -2
  123. package/dist/composed/status-badge.d.ts.map +1 -1
  124. package/dist/composed/status-badge.js +58 -53
  125. package/dist/composed/status-badge.js.map +1 -1
  126. package/dist/shell/app-command-palette.d.ts +2 -1
  127. package/dist/shell/app-command-palette.d.ts.map +1 -1
  128. package/dist/shell/app-command-palette.js.map +1 -1
  129. package/dist/shell/bottom-navbar.d.ts +3 -1
  130. package/dist/shell/bottom-navbar.d.ts.map +1 -1
  131. package/dist/shell/bottom-navbar.js +94 -86
  132. package/dist/shell/bottom-navbar.js.map +1 -1
  133. package/dist/shell/command-registry.d.ts +2 -1
  134. package/dist/shell/command-registry.d.ts.map +1 -1
  135. package/dist/shell/command-registry.js.map +1 -1
  136. package/dist/shell/notification-center.js +8 -8
  137. package/dist/shell/notification-center.js.map +1 -1
  138. package/dist/shell/notification-preferences.js +1 -1
  139. package/dist/shell/notification-preferences.js.map +1 -1
  140. package/dist/shell/sidebar.d.ts +7 -4
  141. package/dist/shell/sidebar.d.ts.map +1 -1
  142. package/dist/shell/sidebar.js +148 -134
  143. package/dist/shell/sidebar.js.map +1 -1
  144. package/dist/shell/top-bar.d.ts +4 -3
  145. package/dist/shell/top-bar.d.ts.map +1 -1
  146. package/dist/shell/top-bar.js +116 -108
  147. package/dist/shell/top-bar.js.map +1 -1
  148. package/dist/tokens/semantic.css +82 -9
  149. package/dist/ui/accordion.js +1 -1
  150. package/dist/ui/accordion.js.map +1 -1
  151. package/dist/ui/alert-dialog.js +3 -3
  152. package/dist/ui/alert-dialog.js.map +1 -1
  153. package/dist/ui/alert.js +2 -2
  154. package/dist/ui/alert.js.map +1 -1
  155. package/dist/ui/autocomplete.js +2 -2
  156. package/dist/ui/autocomplete.js.map +1 -1
  157. package/dist/ui/avatar.js +11 -11
  158. package/dist/ui/avatar.js.map +1 -1
  159. package/dist/ui/badge-indicator.js +1 -1
  160. package/dist/ui/badge-indicator.js.map +1 -1
  161. package/dist/ui/badge.d.ts +3 -2
  162. package/dist/ui/badge.d.ts.map +1 -1
  163. package/dist/ui/banner.js +1 -1
  164. package/dist/ui/banner.js.map +1 -1
  165. package/dist/ui/breadcrumb.js +1 -1
  166. package/dist/ui/breadcrumb.js.map +1 -1
  167. package/dist/ui/button.d.ts +5 -4
  168. package/dist/ui/button.d.ts.map +1 -1
  169. package/dist/ui/button.js +66 -65
  170. package/dist/ui/button.js.map +1 -1
  171. package/dist/ui/card.js +5 -5
  172. package/dist/ui/card.js.map +1 -1
  173. package/dist/ui/charts/area-chart.js +177 -0
  174. package/dist/ui/charts/area-chart.js.map +1 -0
  175. package/dist/ui/charts/bar-chart.js +127 -0
  176. package/dist/ui/charts/bar-chart.js.map +1 -0
  177. package/dist/ui/charts/chart-container.js +3 -0
  178. package/dist/ui/charts/gauge-chart.js +72 -0
  179. package/dist/ui/charts/gauge-chart.js.map +1 -0
  180. package/dist/ui/charts/index.js +10 -1035
  181. package/dist/ui/charts/line-chart.js +135 -0
  182. package/dist/ui/charts/line-chart.js.map +1 -0
  183. package/dist/ui/charts/pie-chart.js +111 -0
  184. package/dist/ui/charts/pie-chart.js.map +1 -0
  185. package/dist/ui/charts/radar-chart.js +170 -0
  186. package/dist/ui/charts/radar-chart.js.map +1 -0
  187. package/dist/ui/charts/sparkline.js +119 -0
  188. package/dist/ui/charts/sparkline.js.map +1 -0
  189. package/dist/ui/chat/message.d.ts +3 -3
  190. package/dist/ui/chat/message.d.ts.map +1 -1
  191. package/dist/ui/chat/system-message.d.ts +2 -1
  192. package/dist/ui/chat/system-message.d.ts.map +1 -1
  193. package/dist/ui/checkbox.js +1 -1
  194. package/dist/ui/checkbox.js.map +1 -1
  195. package/dist/ui/code.js +2 -2
  196. package/dist/ui/code.js.map +1 -1
  197. package/dist/ui/color-input.js +10 -10
  198. package/dist/ui/color-input.js.map +1 -1
  199. package/dist/ui/color-swatch.js +3 -3
  200. package/dist/ui/color-swatch.js.map +1 -1
  201. package/dist/ui/combobox.d.ts +2 -1
  202. package/dist/ui/combobox.d.ts.map +1 -1
  203. package/dist/ui/combobox.js +100 -95
  204. package/dist/ui/combobox.js.map +1 -1
  205. package/dist/ui/container.d.ts +6 -1
  206. package/dist/ui/container.d.ts.map +1 -1
  207. package/dist/ui/container.js +2 -1
  208. package/dist/ui/container.js.map +1 -1
  209. package/dist/ui/context-menu.js +6 -6
  210. package/dist/ui/context-menu.js.map +1 -1
  211. package/dist/ui/data-table-body.js +1 -1
  212. package/dist/ui/data-table-body.js.map +1 -1
  213. package/dist/ui/data-table-bulk-actions.js +2 -2
  214. package/dist/ui/data-table-bulk-actions.js.map +1 -1
  215. package/dist/ui/data-table-card.js +2 -2
  216. package/dist/ui/data-table-card.js.map +1 -1
  217. package/dist/ui/data-table-header.js +2 -2
  218. package/dist/ui/data-table-header.js.map +1 -1
  219. package/dist/ui/data-table-pagination.js +3 -3
  220. package/dist/ui/data-table-pagination.js.map +1 -1
  221. package/dist/ui/data-table-toolbar.js +1 -1
  222. package/dist/ui/data-table-toolbar.js.map +1 -1
  223. package/dist/ui/data-table.js +1 -1
  224. package/dist/ui/data-table.js.map +1 -1
  225. package/dist/ui/devalok-grain.d.ts +1 -1
  226. package/dist/ui/devalok-grain.js.map +1 -1
  227. package/dist/ui/dialog.js +2 -2
  228. package/dist/ui/dialog.js.map +1 -1
  229. package/dist/ui/dropdown-menu.js +6 -6
  230. package/dist/ui/dropdown-menu.js.map +1 -1
  231. package/dist/ui/file-upload.js +4 -4
  232. package/dist/ui/file-upload.js.map +1 -1
  233. package/dist/ui/hover-card.js +1 -1
  234. package/dist/ui/hover-card.js.map +1 -1
  235. package/dist/ui/icon-button.d.ts +9 -2
  236. package/dist/ui/icon-button.d.ts.map +1 -1
  237. package/dist/ui/icon-button.js +14 -13
  238. package/dist/ui/icon-button.js.map +1 -1
  239. package/dist/ui/index.d.ts +1 -3
  240. package/dist/ui/index.d.ts.map +1 -1
  241. package/dist/ui/index.js +31 -33
  242. package/dist/ui/index.js.map +1 -1
  243. package/dist/ui/input-otp.js +1 -1
  244. package/dist/ui/input-otp.js.map +1 -1
  245. package/dist/ui/input.js +2 -2
  246. package/dist/ui/input.js.map +1 -1
  247. package/dist/ui/lib/icon-input.d.ts +42 -0
  248. package/dist/ui/lib/icon-input.d.ts.map +1 -0
  249. package/dist/ui/lib/normalize-icon.d.ts +39 -0
  250. package/dist/ui/lib/normalize-icon.d.ts.map +1 -0
  251. package/dist/ui/link.js +1 -1
  252. package/dist/ui/link.js.map +1 -1
  253. package/dist/ui/menubar.js +8 -8
  254. package/dist/ui/menubar.js.map +1 -1
  255. package/dist/ui/navigation-menu.js +3 -3
  256. package/dist/ui/navigation-menu.js.map +1 -1
  257. package/dist/ui/number-input.js +3 -3
  258. package/dist/ui/number-input.js.map +1 -1
  259. package/dist/ui/oauth-button/index.d.ts +3 -0
  260. package/dist/ui/oauth-button/index.d.ts.map +1 -0
  261. package/dist/ui/oauth-button/index.js +3 -0
  262. package/dist/ui/oauth-button/oauth-button.d.ts +208 -0
  263. package/dist/ui/oauth-button/oauth-button.d.ts.map +1 -0
  264. package/dist/ui/pagination.js +1 -1
  265. package/dist/ui/pagination.js.map +1 -1
  266. package/dist/ui/progress.js +2 -2
  267. package/dist/ui/progress.js.map +1 -1
  268. package/dist/ui/radio.js +1 -1
  269. package/dist/ui/radio.js.map +1 -1
  270. package/dist/ui/segmented-control.d.ts +3 -4
  271. package/dist/ui/segmented-control.d.ts.map +1 -1
  272. package/dist/ui/segmented-control.js +53 -45
  273. package/dist/ui/segmented-control.js.map +1 -1
  274. package/dist/ui/select.js +3 -3
  275. package/dist/ui/select.js.map +1 -1
  276. package/dist/ui/sheet.js +2 -2
  277. package/dist/ui/sheet.js.map +1 -1
  278. package/dist/ui/sidebar.js +11 -11
  279. package/dist/ui/sidebar.js.map +1 -1
  280. package/dist/ui/skeleton.js +9 -9
  281. package/dist/ui/skeleton.js.map +1 -1
  282. package/dist/ui/slider.js +2 -2
  283. package/dist/ui/slider.js.map +1 -1
  284. package/dist/ui/split-button.js +7 -7
  285. package/dist/ui/split-button.js.map +1 -1
  286. package/dist/ui/stack.d.ts +6 -1
  287. package/dist/ui/stack.d.ts.map +1 -1
  288. package/dist/ui/stack.js +2 -1
  289. package/dist/ui/stack.js.map +1 -1
  290. package/dist/ui/stat-card.d.ts +2 -3
  291. package/dist/ui/stat-card.d.ts.map +1 -1
  292. package/dist/ui/stat-card.js +118 -116
  293. package/dist/ui/stat-card.js.map +1 -1
  294. package/dist/ui/status-dot.js +2 -2
  295. package/dist/ui/status-dot.js.map +1 -1
  296. package/dist/ui/stepper.d.ts +2 -1
  297. package/dist/ui/stepper.d.ts.map +1 -1
  298. package/dist/ui/stepper.js +74 -69
  299. package/dist/ui/stepper.js.map +1 -1
  300. package/dist/ui/switch.js +2 -2
  301. package/dist/ui/switch.js.map +1 -1
  302. package/dist/ui/tabs.js +3 -3
  303. package/dist/ui/tabs.js.map +1 -1
  304. package/dist/ui/text.d.ts +7 -2
  305. package/dist/ui/text.d.ts.map +1 -1
  306. package/dist/ui/text.js +2 -1
  307. package/dist/ui/text.js.map +1 -1
  308. package/dist/ui/textarea.js +1 -1
  309. package/dist/ui/textarea.js.map +1 -1
  310. package/dist/ui/toast.js +8 -8
  311. package/dist/ui/toast.js.map +1 -1
  312. package/dist/ui/toaster.d.ts +11 -2
  313. package/dist/ui/toaster.d.ts.map +1 -1
  314. package/dist/ui/toaster.js.map +1 -1
  315. package/dist/ui/toggle.js +1 -1
  316. package/dist/ui/toggle.js.map +1 -1
  317. package/dist/ui/tooltip.js +12 -12
  318. package/dist/ui/tooltip.js.map +1 -1
  319. package/dist/ui/tree-view/tree-item.d.ts +3 -2
  320. package/dist/ui/tree-view/tree-item.d.ts.map +1 -1
  321. package/dist/ui/tree-view/use-tree.d.ts +2 -1
  322. package/dist/ui/tree-view/use-tree.d.ts.map +1 -1
  323. package/docs/components/_header.md +90 -1
  324. package/docs/components/ui/oauth-button.md +86 -0
  325. package/docs/recipes/customize-brand.md +100 -4
  326. package/docs/recipes/index.md +5 -1
  327. package/docs/recipes/install-astro.md +15 -0
  328. package/docs/recipes/install-next-app-router.md +21 -5
  329. package/docs/recipes/install-next-pages.md +2 -0
  330. package/docs/recipes/install-remix.md +15 -0
  331. package/docs/recipes/install-tanstack-start.md +15 -0
  332. package/docs/recipes/install-vite.md +15 -0
  333. package/docs/recipes/troubleshoot.md +22 -0
  334. package/llms-full.txt +177 -2
  335. package/llms-quick.txt +247 -0
  336. package/llms.txt +116 -3
  337. package/package.json +80 -2
  338. package/scripts/welcome.mjs +219 -0
  339. package/skill/README.md +99 -0
  340. package/skill/SKILL.md +163 -0
  341. package/skill/install.sh +59 -0
  342. package/skill/references/components-full.md +7083 -0
  343. package/skill/references/components.md +778 -0
  344. package/skill/references/customize-brand.md +314 -0
  345. package/skill/references/server-components.md +211 -0
  346. package/skill/references/setup-astro.md +195 -0
  347. package/skill/references/setup-next-app-router.md +248 -0
  348. package/skill/references/setup-next-pages.md +127 -0
  349. package/skill/references/setup-remix.md +188 -0
  350. package/skill/references/setup-tanstack-start.md +160 -0
  351. package/skill/references/setup-vite.md +187 -0
  352. package/skill/references/troubleshoot.md +241 -0
  353. package/dist/_chunks/date-picker.js +0 -748
  354. package/dist/_chunks/date-picker.js.map +0 -1
  355. package/dist/_chunks/file-preview.js +0 -499
  356. package/dist/_chunks/file-preview.js.map +0 -1
  357. package/dist/_chunks/rich-chat-input.js +0 -2071
  358. package/dist/_chunks/rich-chat-input.js.map +0 -1
  359. package/dist/_chunks/text.js.map +0 -1
  360. package/dist/ui/charts/index.js.map +0 -1
  361. /package/{LICENSE → skill/LICENSE} +0 -0
@@ -1,748 +0,0 @@
1
- "use client";
2
- import { cn as e } from "../ui/lib/utils.js";
3
- import { Icon as t } from "../ui/icon.js";
4
- import { i as n, r, t as i } from "./popover.js";
5
- import { n as a } from "./use-calendar.js";
6
- import * as o from "react";
7
- import { jsx as s, jsxs as c } from "react/jsx-runtime";
8
- import { IconCalendarClock as l, IconCalendarEvent as u, IconClock as d } from "@tabler/icons-react";
9
- import { addMonths as f, endOfDay as p, endOfMonth as m, format as h, isAfter as g, isBefore as _, setHours as v, setMinutes as y, setMonth as b, setSeconds as x, setYear as S, startOfDay as C, startOfMonth as w, startOfYear as T, subDays as E, subMonths as D } from "date-fns";
10
- //#region src/composed/date-picker/month-picker.tsx
11
- var O = [
12
- "Jan",
13
- "Feb",
14
- "Mar",
15
- "Apr",
16
- "May",
17
- "Jun",
18
- "Jul",
19
- "Aug",
20
- "Sep",
21
- "Oct",
22
- "Nov",
23
- "Dec"
24
- ], k = o.forwardRef(function({ currentYear: t, selectedMonth: n, onMonthSelect: r, minDate: i, maxDate: a, className: l, ...u }, d) {
25
- let [f, p] = o.useState(n ?? 0), m = o.useRef([]), h = (e) => i != null && (t < i.getFullYear() || t === i.getFullYear() && e < i.getMonth()) || a != null && (t > a.getFullYear() || t === a.getFullYear() && e > a.getMonth()), g = (e) => {
26
- let t = f;
27
- switch (e.key) {
28
- case "ArrowRight":
29
- t = Math.min(11, f + 1);
30
- break;
31
- case "ArrowLeft":
32
- t = Math.max(0, f - 1);
33
- break;
34
- case "ArrowDown":
35
- t = Math.min(11, f + 4);
36
- break;
37
- case "ArrowUp":
38
- t = Math.max(0, f - 4);
39
- break;
40
- case "Home":
41
- t = 0;
42
- break;
43
- case "End":
44
- t = 11;
45
- break;
46
- default: return;
47
- }
48
- for (e.preventDefault(); t !== f && h(t);) if (t += e.key === "ArrowLeft" || e.key === "ArrowUp" ? -1 : 1, t < 0 || t > 11) return;
49
- p(t), m.current[t]?.focus();
50
- };
51
- return /* @__PURE__ */ c("div", {
52
- ref: d,
53
- ...u,
54
- className: e("w-[252px]", l),
55
- children: [/* @__PURE__ */ s("div", {
56
- className: "text-center pb-ds-04 text-ds-md font-semibold text-surface-fg",
57
- children: t
58
- }), /* @__PURE__ */ s("div", {
59
- role: "grid",
60
- "aria-label": "Month picker",
61
- tabIndex: -1,
62
- onKeyDown: g,
63
- children: [
64
- 0,
65
- 1,
66
- 2
67
- ].map((t) => /* @__PURE__ */ s("div", {
68
- role: "row",
69
- className: "grid grid-cols-4 gap-ds-02 mb-ds-02 last:mb-0",
70
- children: O.slice(t * 4, t * 4 + 4).map((i, a) => {
71
- let o = t * 4 + a, c = o === n, l = h(o);
72
- return /* @__PURE__ */ s("button", {
73
- ref: (e) => {
74
- m.current[o] = e;
75
- },
76
- type: "button",
77
- role: "gridcell",
78
- tabIndex: o === f ? 0 : -1,
79
- disabled: l || !1,
80
- onClick: () => !l && r(o),
81
- className: e("h-ds-sm-plus rounded-ds-md text-ds-md transition-colors focus-visible:ring-2 focus-visible:ring-accent-9 focus-visible:ring-offset-2", l && "opacity-action-disabled pointer-events-none cursor-not-allowed", c && "bg-accent-9 text-accent-fg", !c && !l && "hover:bg-surface-raised-hover text-surface-fg"),
82
- children: i
83
- }, i);
84
- })
85
- }, t))
86
- })]
87
- });
88
- });
89
- k.displayName = "MonthPicker";
90
- //#endregion
91
- //#region src/composed/date-picker/year-picker.tsx
92
- var A = o.forwardRef(function({ currentYear: t, selectedYear: n, onYearSelect: r, minDate: i, maxDate: a, className: l, ...u }, d) {
93
- let f = Math.floor(t / 10) * 10, p = Array.from({ length: 12 }, (e, t) => f + t), [m, h] = o.useState(() => {
94
- let e = p.indexOf(n ?? t);
95
- return e >= 0 ? e : 0;
96
- }), g = o.useRef([]), _ = (e) => i != null && e < i.getFullYear() || a != null && e > a.getFullYear(), v = (e) => {
97
- let t = m;
98
- switch (e.key) {
99
- case "ArrowRight":
100
- t = Math.min(11, m + 1);
101
- break;
102
- case "ArrowLeft":
103
- t = Math.max(0, m - 1);
104
- break;
105
- case "ArrowDown":
106
- t = Math.min(11, m + 3);
107
- break;
108
- case "ArrowUp":
109
- t = Math.max(0, m - 3);
110
- break;
111
- case "Home":
112
- t = 0;
113
- break;
114
- case "End":
115
- t = 11;
116
- break;
117
- default: return;
118
- }
119
- for (e.preventDefault(); t !== m && _(p[t]);) if (t += e.key === "ArrowLeft" || e.key === "ArrowUp" ? -1 : 1, t < 0 || t > 11) return;
120
- h(t), g.current[t]?.focus();
121
- };
122
- return /* @__PURE__ */ c("div", {
123
- ref: d,
124
- ...u,
125
- className: e("w-[252px]", l),
126
- children: [/* @__PURE__ */ c("div", {
127
- className: "text-center pb-ds-04 text-ds-md font-semibold text-surface-fg",
128
- children: [
129
- f,
130
- " – ",
131
- f + 11
132
- ]
133
- }), /* @__PURE__ */ s("div", {
134
- role: "grid",
135
- "aria-label": "Year picker",
136
- tabIndex: -1,
137
- onKeyDown: v,
138
- children: [
139
- 0,
140
- 1,
141
- 2,
142
- 3
143
- ].map((t) => /* @__PURE__ */ s("div", {
144
- role: "row",
145
- className: "grid grid-cols-3 gap-ds-02 mb-ds-02 last:mb-0",
146
- children: p.slice(t * 3, t * 3 + 3).map((t) => {
147
- let i = p.indexOf(t), a = t === n, o = _(t);
148
- return /* @__PURE__ */ s("button", {
149
- ref: (e) => {
150
- g.current[i] = e;
151
- },
152
- type: "button",
153
- role: "gridcell",
154
- tabIndex: i === m ? 0 : -1,
155
- disabled: o || !1,
156
- onClick: () => !o && r(t),
157
- className: e("h-ds-sm-plus rounded-ds-md text-ds-md transition-colors focus-visible:ring-2 focus-visible:ring-accent-9 focus-visible:ring-offset-2", o && "opacity-action-disabled pointer-events-none cursor-not-allowed", a && "bg-accent-9 text-accent-fg", !a && !o && "hover:bg-surface-raised-hover text-surface-fg"),
158
- children: t
159
- }, t);
160
- })
161
- }, t))
162
- })]
163
- });
164
- });
165
- A.displayName = "YearPicker";
166
- //#endregion
167
- //#region src/composed/date-picker/date-picker.tsx
168
- var j = o.forwardRef(function({ value: l, onChange: d, placeholder: f = "Pick a date", className: p, formatStr: m = "MMM d, yyyy", minDate: g, maxDate: _, disabledDates: v, ...y }, x) {
169
- let [C, w] = o.useState(!1), [T, E] = o.useState(l ?? /* @__PURE__ */ new Date()), [D, O] = o.useState("days");
170
- o.useEffect(() => {
171
- C || O("days");
172
- }, [C]);
173
- let j = (e) => {
174
- d?.(e), w(!1);
175
- }, M = () => {
176
- O((e) => e === "days" ? "months" : "years");
177
- }, N = (e) => {
178
- E((t) => b(t, e)), O("days");
179
- }, P = (e) => {
180
- E((t) => S(t, e)), O("months");
181
- }, F = () => {
182
- switch (D) {
183
- case "years": return /* @__PURE__ */ s(A, {
184
- currentYear: T.getFullYear(),
185
- selectedYear: l?.getFullYear(),
186
- onYearSelect: P,
187
- minDate: g,
188
- maxDate: _
189
- });
190
- case "months": return /* @__PURE__ */ s(k, {
191
- currentYear: T.getFullYear(),
192
- selectedMonth: l?.getMonth(),
193
- onMonthSelect: N,
194
- minDate: g,
195
- maxDate: _
196
- });
197
- default: return /* @__PURE__ */ s(a, {
198
- currentMonth: T,
199
- selected: l,
200
- onSelect: j,
201
- onMonthChange: E,
202
- onHeaderClick: M,
203
- disabledDates: v,
204
- minDate: g,
205
- maxDate: _
206
- });
207
- }
208
- };
209
- return /* @__PURE__ */ c(i, {
210
- open: C,
211
- onOpenChange: w,
212
- children: [/* @__PURE__ */ s(n, {
213
- asChild: !0,
214
- children: /* @__PURE__ */ c("button", {
215
- ref: x,
216
- type: "button",
217
- "aria-label": l ? `Change date, ${h(l, m)}` : f,
218
- ...y,
219
- className: e("inline-flex h-ds-sm-plus items-center gap-ds-03 rounded-ds-lg border border-surface-border-strong bg-surface-overlay px-ds-04 text-left transition-colors duration-fast-01 ease-productive-standard", "hover:border-surface-border-strong", "focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-accent-9 focus-visible:ring-offset-2", p),
220
- children: [/* @__PURE__ */ s(t, {
221
- icon: u,
222
- size: "sm",
223
- stroke: "light",
224
- className: "text-surface-fg-subtle"
225
- }), /* @__PURE__ */ s("span", {
226
- className: e("text-ds-md", l ? "text-surface-fg" : "text-surface-fg-subtle"),
227
- children: l ? h(l, m) : f
228
- })]
229
- })
230
- }), /* @__PURE__ */ s(r, {
231
- className: "w-auto border-surface-border-strong bg-surface-overlay p-ds-04",
232
- align: "start",
233
- sideOffset: 4,
234
- children: F()
235
- })]
236
- });
237
- });
238
- j.displayName = "DatePicker";
239
- //#endregion
240
- //#region src/composed/date-picker/presets.tsx
241
- var M = {
242
- today: {
243
- label: "Today",
244
- getRange: () => {
245
- let e = /* @__PURE__ */ new Date();
246
- return {
247
- start: C(e),
248
- end: p(e)
249
- };
250
- }
251
- },
252
- yesterday: {
253
- label: "Yesterday",
254
- getRange: () => {
255
- let e = E(/* @__PURE__ */ new Date(), 1);
256
- return {
257
- start: C(e),
258
- end: p(e)
259
- };
260
- }
261
- },
262
- last7days: {
263
- label: "Last 7 days",
264
- getRange: () => {
265
- let e = /* @__PURE__ */ new Date();
266
- return {
267
- start: C(E(e, 6)),
268
- end: p(e)
269
- };
270
- }
271
- },
272
- last30days: {
273
- label: "Last 30 days",
274
- getRange: () => {
275
- let e = /* @__PURE__ */ new Date();
276
- return {
277
- start: C(E(e, 29)),
278
- end: p(e)
279
- };
280
- }
281
- },
282
- thisMonth: {
283
- label: "This month",
284
- getRange: () => {
285
- let e = /* @__PURE__ */ new Date();
286
- return {
287
- start: w(e),
288
- end: m(e)
289
- };
290
- }
291
- },
292
- lastMonth: {
293
- label: "Last month",
294
- getRange: () => {
295
- let e = D(/* @__PURE__ */ new Date(), 1);
296
- return {
297
- start: w(e),
298
- end: m(e)
299
- };
300
- }
301
- },
302
- thisYear: {
303
- label: "This year",
304
- getRange: () => {
305
- let e = /* @__PURE__ */ new Date();
306
- return {
307
- start: T(e),
308
- end: p(e)
309
- };
310
- }
311
- }
312
- }, N = o.forwardRef(function({ presets: t, onSelect: n, className: r, ...i }, a) {
313
- return /* @__PURE__ */ s("div", {
314
- ref: a,
315
- ...i,
316
- className: e("flex flex-col gap-ds-01", r),
317
- children: t.map((t) => {
318
- let r = M[t];
319
- return r ? /* @__PURE__ */ s("button", {
320
- type: "button",
321
- onClick: () => {
322
- let { start: e, end: t } = r.getRange();
323
- n(e, t);
324
- },
325
- className: e("h-ds-sm w-full rounded-ds-md px-ds-03 text-left text-ds-sm", "text-surface-fg transition-colors", "hover:bg-surface-raised-hover", "focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-accent-9"),
326
- children: r.label
327
- }, t) : null;
328
- })
329
- });
330
- });
331
- N.displayName = "Presets";
332
- //#endregion
333
- //#region src/composed/date-picker/date-range-picker.tsx
334
- var P = o.forwardRef(function({ startDate: l, endDate: d, onChange: p, placeholder: m = "Pick a date range", className: v, formatStr: y = "MMM d, yyyy", minDate: x, maxDate: C, disabledDates: w, presets: T, numberOfMonths: E = 1, ...D }, O) {
335
- let [j, M] = o.useState(!1), [P, F] = o.useState(l ?? /* @__PURE__ */ new Date()), [I, L] = o.useState(l ?? null), [R, z] = o.useState(d ?? null), [B, V] = o.useState(null), [H, U] = o.useState("days"), W = Math.max(1, E);
336
- o.useEffect(() => {
337
- L(l ?? null), z(d ?? null);
338
- }, [l, d]), o.useEffect(() => {
339
- j || U("days");
340
- }, [j]);
341
- let G = (e) => {
342
- if (!I || I && R) L(e), z(null);
343
- else {
344
- let t = _(e, I) ? e : I, n = g(e, I) ? e : I;
345
- L(t), z(n), p?.({
346
- start: t,
347
- end: n
348
- }), M(!1);
349
- }
350
- }, K = (e, t) => {
351
- L(e), z(t), p?.({
352
- start: e,
353
- end: t
354
- }), M(!1);
355
- }, q = () => {
356
- U((e) => e === "days" ? "months" : "years");
357
- }, J = (e) => {
358
- F((t) => b(t, e)), U("days");
359
- }, Y = (e) => {
360
- F((t) => S(t, e)), U("months");
361
- }, X = () => I && R ? `${h(I, y)} - ${h(R, y)}` : m, Z = () => W === 1 ? /* @__PURE__ */ s(a, {
362
- currentMonth: P,
363
- rangeStart: I,
364
- rangeEnd: R,
365
- hoverDate: B,
366
- onSelect: G,
367
- onHover: V,
368
- onMonthChange: F,
369
- onHeaderClick: q,
370
- disabledDates: w,
371
- minDate: x,
372
- maxDate: C
373
- }) : /* @__PURE__ */ s("div", {
374
- className: "flex flex-row gap-ds-04",
375
- children: Array.from({ length: W }, (e, t) => /* @__PURE__ */ s(a, {
376
- currentMonth: f(P, t),
377
- rangeStart: I,
378
- rangeEnd: R,
379
- hoverDate: B,
380
- onSelect: G,
381
- onHover: V,
382
- onMonthChange: (e) => {
383
- F(f(e, -t));
384
- },
385
- onHeaderClick: q,
386
- disabledDates: w,
387
- minDate: x,
388
- maxDate: C,
389
- hidePrevNav: t > 0,
390
- hideNextNav: t < W - 1
391
- }, t))
392
- }), Q = () => {
393
- switch (H) {
394
- case "years": return /* @__PURE__ */ s(A, {
395
- currentYear: P.getFullYear(),
396
- selectedYear: I?.getFullYear(),
397
- onYearSelect: Y,
398
- minDate: x,
399
- maxDate: C
400
- });
401
- case "months": return /* @__PURE__ */ s(k, {
402
- currentYear: P.getFullYear(),
403
- selectedMonth: I?.getMonth(),
404
- onMonthSelect: J,
405
- minDate: x,
406
- maxDate: C
407
- });
408
- default: return Z();
409
- }
410
- }, $ = T && T.length > 0;
411
- return /* @__PURE__ */ c(i, {
412
- open: j,
413
- onOpenChange: M,
414
- children: [/* @__PURE__ */ s(n, {
415
- asChild: !0,
416
- children: /* @__PURE__ */ c("button", {
417
- ref: O,
418
- type: "button",
419
- "aria-label": I && R ? `Change date range, ${X()}` : m,
420
- ...D,
421
- className: e("inline-flex h-ds-sm-plus items-center gap-ds-03 rounded-ds-lg border border-surface-border-strong bg-surface-overlay px-ds-04 text-left transition-colors duration-fast-01 ease-productive-standard", "hover:border-surface-border-strong", "focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-accent-9 focus-visible:ring-offset-2", v),
422
- children: [/* @__PURE__ */ s(t, {
423
- icon: u,
424
- size: "sm",
425
- stroke: "light",
426
- className: "text-surface-fg-subtle"
427
- }), /* @__PURE__ */ s("span", {
428
- className: e("text-ds-md", I && R ? "text-surface-fg" : "text-surface-fg-subtle"),
429
- children: X()
430
- })]
431
- })
432
- }), /* @__PURE__ */ s(r, {
433
- className: "w-auto border-surface-border-strong bg-surface-overlay p-ds-04",
434
- align: "start",
435
- sideOffset: 4,
436
- children: $ ? /* @__PURE__ */ c("div", {
437
- className: "flex flex-row gap-ds-04",
438
- children: [/* @__PURE__ */ s("div", {
439
- className: "min-w-[140px] border-r border-surface-border-strong pr-ds-04",
440
- children: /* @__PURE__ */ s(N, {
441
- presets: T,
442
- onSelect: K
443
- })
444
- }), /* @__PURE__ */ s("div", { children: Q() })]
445
- }) : Q()
446
- })]
447
- });
448
- });
449
- P.displayName = "DateRangePicker";
450
- //#endregion
451
- //#region src/composed/date-picker/date-time-picker.tsx
452
- function F(e) {
453
- return e.toString().padStart(2, "0");
454
- }
455
- function I(e, t, n) {
456
- let r = [];
457
- for (let i = e; i <= t; i += n) r.push(i);
458
- return r;
459
- }
460
- var L = o.forwardRef(function({ value: u, onChange: d, minDate: f, maxDate: p, disabledDates: m, timeFormat: g = "12h", minuteStep: _ = 1, placeholder: x = "Pick date & time", className: C, ...w }, T) {
461
- let [E, D] = o.useState(!1), [O, j] = o.useState(u ?? /* @__PURE__ */ new Date()), [M, N] = o.useState("days");
462
- o.useEffect(() => {
463
- E || N("days");
464
- }, [E]);
465
- let P = u ? u.getHours() : 0, L = u ? u.getMinutes() : 0, R = P >= 12 ? "PM" : "AM", z = P === 0 ? 12 : P > 12 ? P - 12 : P, B = g === "12h" ? I(1, 12, 1) : I(0, 23, 1), V = I(0, 59, _), H = g === "12h" ? z : P, U = (e) => {
466
- let t = v(e, u ? u.getHours() : P);
467
- t = y(t, u ? u.getMinutes() : L), d?.(t);
468
- }, W = () => {
469
- N((e) => e === "days" ? "months" : "years");
470
- }, G = (e) => {
471
- j((t) => b(t, e)), N("days");
472
- }, K = (e) => {
473
- j((t) => S(t, e)), N("months");
474
- }, q = (e) => {
475
- let t = u ? new Date(u) : /* @__PURE__ */ new Date(), n = e;
476
- g === "12h" && (n = (u ? R : "AM") === "AM" ? e === 12 ? 0 : e : e === 12 ? 12 : e + 12);
477
- let r = v(t, n);
478
- d?.(r);
479
- }, J = (e) => {
480
- let t = y(u ? new Date(u) : /* @__PURE__ */ new Date(), e);
481
- d?.(t);
482
- }, Y = (e) => {
483
- let t = u ? new Date(u) : /* @__PURE__ */ new Date(), n = t.getHours(), r;
484
- r = e === "AM" ? n >= 12 ? n - 12 : n : n < 12 ? n + 12 : n, d?.(v(t, r));
485
- }, X = o.useMemo(() => u ? h(u, g === "12h" ? "MMM d, yyyy h:mm a" : "MMM d, yyyy HH:mm") : null, [u, g]), Z = () => {
486
- switch (M) {
487
- case "years": return /* @__PURE__ */ s(A, {
488
- currentYear: O.getFullYear(),
489
- selectedYear: u?.getFullYear(),
490
- onYearSelect: K,
491
- minDate: f,
492
- maxDate: p
493
- });
494
- case "months": return /* @__PURE__ */ s(k, {
495
- currentYear: O.getFullYear(),
496
- selectedMonth: u?.getMonth(),
497
- onMonthSelect: G,
498
- minDate: f,
499
- maxDate: p
500
- });
501
- default: return /* @__PURE__ */ s(a, {
502
- currentMonth: O,
503
- selected: u,
504
- onSelect: U,
505
- onMonthChange: j,
506
- onHeaderClick: W,
507
- disabledDates: m,
508
- minDate: f,
509
- maxDate: p
510
- });
511
- }
512
- }, Q = "h-ds-sm rounded-ds-md border border-surface-border-strong bg-surface-overlay px-ds-02 text-ds-md text-surface-fg transition-colors duration-fast-01 ease-productive-standard hover:border-surface-border-strong focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-accent-9 cursor-pointer appearance-none";
513
- return /* @__PURE__ */ c(i, {
514
- open: E,
515
- onOpenChange: D,
516
- children: [/* @__PURE__ */ s(n, {
517
- asChild: !0,
518
- children: /* @__PURE__ */ c("button", {
519
- ref: T,
520
- type: "button",
521
- ...w,
522
- className: e("inline-flex h-ds-sm-plus items-center gap-ds-03 rounded-ds-lg border border-surface-border-strong bg-surface-overlay px-ds-04 text-left transition-colors duration-fast-01 ease-productive-standard", "hover:border-surface-border-strong", "focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-accent-9 focus-visible:ring-offset-2", C),
523
- "aria-label": X ? `Selected: ${X}` : x,
524
- children: [/* @__PURE__ */ s(t, {
525
- icon: l,
526
- size: "sm",
527
- stroke: "light",
528
- className: "text-surface-fg-subtle"
529
- }), /* @__PURE__ */ s("span", {
530
- className: e("text-ds-md", X ? "text-surface-fg" : "text-surface-fg-subtle"),
531
- children: X ?? x
532
- })]
533
- })
534
- }), /* @__PURE__ */ s(r, {
535
- className: "w-auto border-surface-border-strong bg-surface-overlay p-ds-04",
536
- align: "start",
537
- sideOffset: 4,
538
- children: /* @__PURE__ */ c("div", {
539
- className: "flex flex-col gap-ds-04",
540
- children: [Z(), M === "days" && /* @__PURE__ */ c("div", {
541
- className: "flex items-center gap-ds-02 border-t border-surface-border-strong pt-ds-04",
542
- children: [
543
- /* @__PURE__ */ s("span", {
544
- className: "text-ds-xs font-semibold uppercase tracking-wider text-surface-fg-subtle",
545
- children: "Time"
546
- }),
547
- /* @__PURE__ */ c("select", {
548
- value: H ?? "",
549
- onChange: (e) => q(Number(e.target.value)),
550
- className: Q,
551
- "aria-label": "Hour",
552
- children: [!u && /* @__PURE__ */ s("option", {
553
- value: "",
554
- children: "--"
555
- }), B.map((e) => /* @__PURE__ */ s("option", {
556
- value: e,
557
- children: g === "24h" ? F(e) : e
558
- }, e))]
559
- }),
560
- /* @__PURE__ */ s("span", {
561
- className: "text-ds-md font-semibold text-surface-fg-subtle",
562
- children: ":"
563
- }),
564
- /* @__PURE__ */ c("select", {
565
- value: u ? L : "",
566
- onChange: (e) => J(Number(e.target.value)),
567
- className: Q,
568
- "aria-label": "Minute",
569
- children: [!u && /* @__PURE__ */ s("option", {
570
- value: "",
571
- children: "--"
572
- }), V.map((e) => /* @__PURE__ */ s("option", {
573
- value: e,
574
- children: F(e)
575
- }, e))]
576
- }),
577
- g === "12h" && /* @__PURE__ */ c("select", {
578
- value: u ? R : "",
579
- onChange: (e) => Y(e.target.value),
580
- className: Q,
581
- "aria-label": "AM or PM",
582
- children: [
583
- !u && /* @__PURE__ */ s("option", {
584
- value: "",
585
- children: "--"
586
- }),
587
- /* @__PURE__ */ s("option", {
588
- value: "AM",
589
- children: "AM"
590
- }),
591
- /* @__PURE__ */ s("option", {
592
- value: "PM",
593
- children: "PM"
594
- })
595
- ]
596
- })
597
- ]
598
- })]
599
- })
600
- })]
601
- });
602
- });
603
- L.displayName = "DateTimePicker";
604
- //#endregion
605
- //#region src/composed/date-picker/time-picker.tsx
606
- function R(e, t, n) {
607
- let r = [];
608
- for (let i = e; i <= t; i += n) r.push(i);
609
- return r;
610
- }
611
- function z(e) {
612
- return e.toString().padStart(2, "0");
613
- }
614
- var B = o.forwardRef(function({ value: a, onChange: l, format: u = "12h", minuteStep: f = 1, secondStep: p = 1, showSeconds: m = !1, placeholder: g = "Pick a time", className: _, disabled: b = !1, ...S }, C) {
615
- let [w, T] = o.useState(!1), E = a ? a.getHours() : null, D = a ? a.getMinutes() : null, O = a ? a.getSeconds() : null, k = E === null ? null : E >= 12 ? "PM" : "AM", A = E === null ? null : E === 0 ? 12 : E > 12 ? E - 12 : E, j = u === "12h" ? R(1, 12, 1) : R(0, 23, 1), M = R(0, 59, f), N = R(0, 59, p), P = (e) => {
616
- let t = a ? new Date(a) : /* @__PURE__ */ new Date(), n = e.hours ?? t.getHours(), r = e.minutes ?? t.getMinutes(), i = e.seconds ?? t.getSeconds();
617
- u === "12h" && e.hours !== void 0 && (n = (e.ampm ?? k ?? "AM") === "AM" ? e.hours === 12 ? 0 : e.hours : e.hours === 12 ? 12 : e.hours + 12);
618
- let o = v(t, n);
619
- return o = y(o, r), o = x(o, i), o;
620
- }, F = (e) => {
621
- let t = P({ hours: e });
622
- l?.(t);
623
- }, I = (e) => {
624
- let t = P({ minutes: e });
625
- l?.(t);
626
- }, L = (e) => {
627
- let t = P({ seconds: e });
628
- l?.(t);
629
- }, B = (e) => {
630
- if (!a) {
631
- let t = e === "AM" ? 0 : 12, n = /* @__PURE__ */ new Date();
632
- n = v(n, t), n = y(n, 0), n = x(n, 0), l?.(n);
633
- return;
634
- }
635
- let t = a.getHours(), n;
636
- n = e === "AM" ? t >= 12 ? t - 12 : t : t < 12 ? t + 12 : t, l?.(v(new Date(a), n));
637
- }, V = o.useMemo(() => a ? u === "12h" ? h(a, m ? "h:mm:ss a" : "h:mm a") : h(a, m ? "HH:mm:ss" : "HH:mm") : null, [
638
- a,
639
- u,
640
- m
641
- ]), H = u === "12h" ? A : E, U = "flex flex-col gap-ds-01 overflow-y-auto max-h-[200px] px-ds-01", W = "flex h-ds-sm w-full items-center justify-center rounded-ds-md text-ds-md transition-colors duration-fast-01 ease-productive-standard cursor-pointer", G = "bg-accent-9 text-accent-fg", K = "text-surface-fg hover:bg-surface-raised-hover";
642
- return /* @__PURE__ */ c(i, {
643
- open: w,
644
- onOpenChange: T,
645
- children: [/* @__PURE__ */ s(n, {
646
- asChild: !0,
647
- children: /* @__PURE__ */ c("button", {
648
- ref: C,
649
- type: "button",
650
- disabled: b,
651
- ...S,
652
- className: e("inline-flex h-ds-sm-plus items-center gap-ds-03 rounded-ds-lg border border-surface-border-strong bg-surface-overlay px-ds-04 text-left transition-colors duration-fast-01 ease-productive-standard", "hover:border-surface-border-strong", "focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-accent-9 focus-visible:ring-offset-2", b && "opacity-action-disabled pointer-events-none", _),
653
- "aria-label": V ? `Selected time: ${V}` : g,
654
- children: [/* @__PURE__ */ s(t, {
655
- icon: d,
656
- size: "sm",
657
- stroke: "light",
658
- className: "text-surface-fg-subtle"
659
- }), /* @__PURE__ */ s("span", {
660
- className: e("text-ds-md", V ? "text-surface-fg" : "text-surface-fg-subtle"),
661
- children: V ?? g
662
- })]
663
- })
664
- }), /* @__PURE__ */ s(r, {
665
- className: "w-auto border-surface-border-strong bg-surface-overlay p-ds-04",
666
- align: "start",
667
- sideOffset: 4,
668
- children: /* @__PURE__ */ c("div", {
669
- className: "flex gap-ds-03",
670
- role: "group",
671
- "aria-label": "Time picker",
672
- children: [
673
- /* @__PURE__ */ c("div", {
674
- className: "flex flex-col items-center gap-ds-02",
675
- children: [/* @__PURE__ */ s("span", {
676
- className: "text-ds-xs font-semibold uppercase tracking-wider text-surface-fg-subtle",
677
- children: "Hr"
678
- }), /* @__PURE__ */ s("div", {
679
- className: e(U, "min-w-[48px]"),
680
- children: j.map((t) => /* @__PURE__ */ s("button", {
681
- type: "button",
682
- onClick: () => F(t),
683
- className: e(W, H === t ? G : K),
684
- "aria-label": `${t} hours`,
685
- "aria-selected": H === t || void 0,
686
- children: u === "24h" ? z(t) : t
687
- }, t))
688
- })]
689
- }),
690
- /* @__PURE__ */ c("div", {
691
- className: "flex flex-col items-center gap-ds-02",
692
- children: [/* @__PURE__ */ s("span", {
693
- className: "text-ds-xs font-semibold uppercase tracking-wider text-surface-fg-subtle",
694
- children: "Min"
695
- }), /* @__PURE__ */ s("div", {
696
- className: e(U, "min-w-[48px]"),
697
- children: M.map((t) => /* @__PURE__ */ s("button", {
698
- type: "button",
699
- onClick: () => I(t),
700
- className: e(W, D === t ? G : K),
701
- "aria-label": `${z(t)} minutes`,
702
- "aria-selected": D === t || void 0,
703
- children: z(t)
704
- }, t))
705
- })]
706
- }),
707
- m && /* @__PURE__ */ c("div", {
708
- className: "flex flex-col items-center gap-ds-02",
709
- children: [/* @__PURE__ */ s("span", {
710
- className: "text-ds-xs font-semibold uppercase tracking-wider text-surface-fg-subtle",
711
- children: "Sec"
712
- }), /* @__PURE__ */ s("div", {
713
- className: e(U, "min-w-[48px]"),
714
- children: N.map((t) => /* @__PURE__ */ s("button", {
715
- type: "button",
716
- onClick: () => L(t),
717
- className: e(W, O === t ? G : K),
718
- "aria-label": `${z(t)} seconds`,
719
- "aria-selected": O === t || void 0,
720
- children: z(t)
721
- }, t))
722
- })]
723
- }),
724
- u === "12h" && /* @__PURE__ */ c("div", {
725
- className: "flex flex-col items-center gap-ds-02",
726
- children: [/* @__PURE__ */ s("span", {
727
- className: "text-ds-xs font-semibold uppercase tracking-wider text-surface-fg-subtle",
728
- children: "\xA0"
729
- }), /* @__PURE__ */ s("div", {
730
- className: "flex flex-col gap-ds-01 px-ds-01",
731
- children: ["AM", "PM"].map((t) => /* @__PURE__ */ s("button", {
732
- type: "button",
733
- onClick: () => B(t),
734
- className: e(W, "min-w-[44px] font-semibold", k === t ? G : K),
735
- "aria-label": t,
736
- "aria-selected": k === t || void 0,
737
- children: t
738
- }, t))
739
- })]
740
- })
741
- ]
742
- })
743
- })]
744
- });
745
- });
746
- B.displayName = "TimePicker";
747
- //#endregion
748
- export { j as a, N as i, L as n, A as o, P as r, k as s, B as t };