@heymantle/litho 0.0.3 → 0.0.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 (353) hide show
  1. package/dist/cjs/components/ActionList.js +50 -16
  2. package/dist/cjs/components/AnnouncementBar.js +10 -3
  3. package/dist/cjs/components/AppProvider.js +10 -1
  4. package/dist/cjs/components/Autocomplete.js +33 -11
  5. package/dist/cjs/components/Badge.js +2 -1
  6. package/dist/cjs/components/Banner.js +35 -31
  7. package/dist/cjs/components/Box.js +5 -3
  8. package/dist/cjs/components/Button.js +34 -12
  9. package/dist/cjs/components/Card.js +5 -45
  10. package/dist/cjs/components/Checkbox.js +16 -6
  11. package/dist/cjs/components/ChoiceList.js +7 -4
  12. package/dist/cjs/components/ColorField.js +8 -3
  13. package/dist/cjs/components/DatePicker.js +13 -8
  14. package/dist/cjs/components/DropZone.js +33 -18
  15. package/dist/cjs/components/EmptyState.js +15 -7
  16. package/dist/cjs/components/Filters.js +32 -20
  17. package/dist/cjs/components/FooterHelp.js +7 -2
  18. package/dist/cjs/components/Form.js +18 -3
  19. package/dist/cjs/components/Frame.js +40 -15
  20. package/dist/cjs/components/FrameSaveBar.js +21 -12
  21. package/dist/cjs/components/Layout.js +3 -3
  22. package/dist/cjs/components/LayoutSection.js +2 -2
  23. package/dist/cjs/components/Link.js +6 -2
  24. package/dist/cjs/components/List.js +1 -0
  25. package/dist/cjs/components/Listbox.js +9 -4
  26. package/dist/cjs/components/Modal.js +26 -17
  27. package/dist/cjs/components/Navigation.js +30 -20
  28. package/dist/cjs/components/Page.js +8 -3
  29. package/dist/cjs/components/Pagination.js +11 -4
  30. package/dist/cjs/components/Pane.js +118 -35
  31. package/dist/cjs/components/Popover.js +59 -6
  32. package/dist/cjs/components/RangeSlider.js +11 -4
  33. package/dist/cjs/components/ResourceList.js +9 -3
  34. package/dist/cjs/components/Select.js +2 -0
  35. package/dist/cjs/components/Table.js +32 -19
  36. package/dist/cjs/components/Text.js +8 -5
  37. package/dist/cjs/components/TextField.js +23 -13
  38. package/dist/cjs/components/Thumbnail.js +7 -2
  39. package/dist/cjs/components/TimePicker.js +7 -2
  40. package/dist/cjs/components/Tip.js +10 -4
  41. package/dist/cjs/components/Tooltip.js +16 -8
  42. package/dist/cjs/components/TopBar.js +17 -9
  43. package/dist/cjs/dev/verify-publish.js +37 -4
  44. package/dist/cjs/postcss.config.js +21 -0
  45. package/dist/cjs/stories/ActionList.stories.js +365 -0
  46. package/dist/cjs/stories/AnnouncementBar.stories.js +244 -0
  47. package/dist/cjs/stories/Autocomplete.stories.js +871 -0
  48. package/dist/cjs/stories/Badge.stories.js +183 -0
  49. package/dist/cjs/stories/Banner.stories.js +201 -0
  50. package/dist/cjs/stories/Box.stories.js +599 -0
  51. package/dist/cjs/stories/Button.stories.js +325 -0
  52. package/dist/cjs/stories/ButtonGroup.stories.js +404 -0
  53. package/dist/cjs/stories/Card.stories.js +278 -0
  54. package/dist/cjs/stories/Checkbox.stories.js +266 -0
  55. package/dist/cjs/stories/ChoiceList.stories.js +884 -0
  56. package/dist/cjs/stories/Collapsible.stories.js +905 -0
  57. package/dist/cjs/stories/ColorField.stories.js +883 -0
  58. package/dist/cjs/stories/ContextualSaveBar.stories.js +970 -0
  59. package/dist/cjs/stories/DatePicker.stories.js +584 -0
  60. package/dist/cjs/stories/Divider.stories.js +759 -0
  61. package/dist/cjs/stories/DropZone.stories.js +1205 -0
  62. package/dist/cjs/stories/EmptyState.stories.js +296 -0
  63. package/dist/cjs/stories/Filters.stories.js +1353 -0
  64. package/dist/cjs/stories/FooterHelp.stories.js +869 -0
  65. package/dist/cjs/stories/Form.stories.js +940 -0
  66. package/dist/cjs/stories/Grid.stories.js +1199 -0
  67. package/dist/cjs/stories/HorizontalStack.stories.js +1064 -0
  68. package/dist/cjs/stories/Icon.stories.js +596 -0
  69. package/dist/cjs/stories/Image.stories.js +883 -0
  70. package/dist/cjs/stories/InlineError.stories.js +710 -0
  71. package/dist/cjs/stories/Label.stories.js +665 -0
  72. package/dist/cjs/stories/Layout.stories.js +685 -0
  73. package/dist/cjs/stories/LayoutSection.stories.js +1267 -0
  74. package/dist/cjs/stories/Link.stories.js +423 -0
  75. package/dist/cjs/stories/List.stories.js +1031 -0
  76. package/dist/cjs/stories/Listbox.stories.js +820 -0
  77. package/dist/cjs/stories/Loading.stories.js +900 -0
  78. package/dist/cjs/stories/Modal.stories.js +363 -0
  79. package/dist/cjs/stories/Navigation.stories.js +605 -0
  80. package/dist/cjs/stories/Page.stories.js +318 -0
  81. package/dist/cjs/stories/Pagination.stories.js +438 -0
  82. package/dist/cjs/stories/Pane.stories.js +1535 -0
  83. package/dist/cjs/stories/Popover.stories.js +637 -0
  84. package/dist/cjs/stories/PopoverManager.stories.js +1225 -0
  85. package/dist/cjs/stories/ProgressBar.stories.js +506 -0
  86. package/dist/cjs/stories/RadioButton.stories.js +642 -0
  87. package/dist/cjs/stories/RadioButtonCard.stories.js +816 -0
  88. package/dist/cjs/stories/RangeSlider.stories.js +892 -0
  89. package/dist/cjs/stories/ResourceList.stories.js +1067 -0
  90. package/dist/cjs/stories/Select.stories.js +413 -0
  91. package/dist/cjs/stories/SkeletonText.stories.js +776 -0
  92. package/dist/cjs/stories/Spinner.stories.js +396 -0
  93. package/dist/cjs/stories/Table.stories.js +628 -0
  94. package/dist/cjs/stories/Tabs.stories.js +723 -0
  95. package/dist/cjs/stories/Tag.stories.js +620 -0
  96. package/dist/cjs/stories/Text.stories.js +262 -0
  97. package/dist/cjs/stories/TextField.stories.js +377 -0
  98. package/dist/cjs/stories/Thumbnail.stories.js +859 -0
  99. package/dist/cjs/stories/TimePicker.stories.js +966 -0
  100. package/dist/cjs/stories/Tip.stories.js +753 -0
  101. package/dist/cjs/stories/Tooltip.stories.js +357 -0
  102. package/dist/cjs/stories/TopBar.stories.js +155 -0
  103. package/dist/cjs/stories/VerticalStack.stories.js +1287 -0
  104. package/dist/cjs/tailwind.config.js +17 -0
  105. package/dist/cjs/utilities/transformers.js +66 -0
  106. package/dist/cjs/vite.config.js +35 -0
  107. package/dist/esm/components/ActionList.js +41 -12
  108. package/dist/esm/components/AnnouncementBar.js +3 -1
  109. package/dist/esm/components/AppProvider.js +10 -1
  110. package/dist/esm/components/Autocomplete.js +21 -4
  111. package/dist/esm/components/Badge.js +2 -2
  112. package/dist/esm/components/Banner.js +20 -21
  113. package/dist/esm/components/Box.js +5 -4
  114. package/dist/esm/components/Button.js +24 -7
  115. package/dist/esm/components/Card.js +5 -4
  116. package/dist/esm/components/Checkbox.js +6 -1
  117. package/dist/esm/components/ChoiceList.js +7 -4
  118. package/dist/esm/components/ColorField.js +1 -1
  119. package/dist/esm/components/DatePicker.js +6 -1
  120. package/dist/esm/components/DropZone.js +14 -4
  121. package/dist/esm/components/EmptyState.js +4 -1
  122. package/dist/esm/components/Filters.js +10 -3
  123. package/dist/esm/components/FooterHelp.js +1 -1
  124. package/dist/esm/components/Form.js +18 -3
  125. package/dist/esm/components/Frame.js +18 -6
  126. package/dist/esm/components/FrameSaveBar.js +10 -6
  127. package/dist/esm/components/InlineError.js +1 -1
  128. package/dist/esm/components/Layout.js +4 -4
  129. package/dist/esm/components/LayoutSection.js +2 -2
  130. package/dist/esm/components/Link.js +6 -2
  131. package/dist/esm/components/List.js +1 -0
  132. package/dist/esm/components/Listbox.js +4 -4
  133. package/dist/esm/components/Modal.js +8 -4
  134. package/dist/esm/components/Navigation.js +16 -11
  135. package/dist/esm/components/Page.js +9 -4
  136. package/dist/esm/components/Pagination.js +3 -1
  137. package/dist/esm/components/Pane.js +114 -36
  138. package/dist/esm/components/Popover.js +18 -6
  139. package/dist/esm/components/RangeSlider.js +3 -1
  140. package/dist/esm/components/ResourceList.js +2 -1
  141. package/dist/esm/components/Select.js +2 -0
  142. package/dist/esm/components/Table.js +16 -3
  143. package/dist/esm/components/Text.js +8 -6
  144. package/dist/esm/components/TextField.js +6 -1
  145. package/dist/esm/components/Thumbnail.js +1 -1
  146. package/dist/esm/components/TimePicker.js +1 -1
  147. package/dist/esm/components/Tip.js +3 -2
  148. package/dist/esm/components/Tooltip.js +4 -1
  149. package/dist/esm/components/TopBar.js +7 -4
  150. package/dist/esm/dev/verify-publish.js +37 -4
  151. package/dist/esm/postcss.config.js +6 -0
  152. package/dist/esm/stories/ActionList.stories.js +327 -0
  153. package/dist/esm/stories/AnnouncementBar.stories.js +212 -0
  154. package/dist/esm/stories/Autocomplete.stories.js +833 -0
  155. package/dist/esm/stories/Badge.stories.js +138 -0
  156. package/dist/esm/stories/Banner.stories.js +159 -0
  157. package/dist/esm/stories/Box.stories.js +558 -0
  158. package/dist/esm/stories/Button.stories.js +277 -0
  159. package/dist/esm/stories/ButtonGroup.stories.js +357 -0
  160. package/dist/esm/stories/Card.stories.js +240 -0
  161. package/dist/esm/stories/Checkbox.stories.js +219 -0
  162. package/dist/esm/stories/ChoiceList.stories.js +834 -0
  163. package/dist/esm/stories/Collapsible.stories.js +867 -0
  164. package/dist/esm/stories/ColorField.stories.js +842 -0
  165. package/dist/esm/stories/ContextualSaveBar.stories.js +938 -0
  166. package/dist/esm/stories/DatePicker.stories.js +537 -0
  167. package/dist/esm/stories/Divider.stories.js +715 -0
  168. package/dist/esm/stories/DropZone.stories.js +1161 -0
  169. package/dist/esm/stories/EmptyState.stories.js +246 -0
  170. package/dist/esm/stories/Filters.stories.js +1315 -0
  171. package/dist/esm/stories/FooterHelp.stories.js +813 -0
  172. package/dist/esm/stories/Form.stories.js +905 -0
  173. package/dist/esm/stories/Grid.stories.js +1152 -0
  174. package/dist/esm/stories/HorizontalStack.stories.js +1011 -0
  175. package/dist/esm/stories/Icon.stories.js +555 -0
  176. package/dist/esm/stories/Image.stories.js +836 -0
  177. package/dist/esm/stories/InlineError.stories.js +666 -0
  178. package/dist/esm/stories/Label.stories.js +612 -0
  179. package/dist/esm/stories/Layout.stories.js +647 -0
  180. package/dist/esm/stories/LayoutSection.stories.js +1226 -0
  181. package/dist/esm/stories/Link.stories.js +379 -0
  182. package/dist/esm/stories/List.stories.js +975 -0
  183. package/dist/esm/stories/Listbox.stories.js +776 -0
  184. package/dist/esm/stories/Loading.stories.js +850 -0
  185. package/dist/esm/stories/Modal.stories.js +322 -0
  186. package/dist/esm/stories/Navigation.stories.js +567 -0
  187. package/dist/esm/stories/Page.stories.js +276 -0
  188. package/dist/esm/stories/Pagination.stories.js +394 -0
  189. package/dist/esm/stories/Pane.stories.js +1497 -0
  190. package/dist/esm/stories/Popover.stories.js +605 -0
  191. package/dist/esm/stories/PopoverManager.stories.js +1193 -0
  192. package/dist/esm/stories/ProgressBar.stories.js +465 -0
  193. package/dist/esm/stories/RadioButton.stories.js +598 -0
  194. package/dist/esm/stories/RadioButtonCard.stories.js +772 -0
  195. package/dist/esm/stories/RangeSlider.stories.js +845 -0
  196. package/dist/esm/stories/ResourceList.stories.js +1029 -0
  197. package/dist/esm/stories/Select.stories.js +363 -0
  198. package/dist/esm/stories/SkeletonText.stories.js +717 -0
  199. package/dist/esm/stories/Spinner.stories.js +355 -0
  200. package/dist/esm/stories/Table.stories.js +584 -0
  201. package/dist/esm/stories/Tabs.stories.js +685 -0
  202. package/dist/esm/stories/Tag.stories.js +573 -0
  203. package/dist/esm/stories/Text.stories.js +217 -0
  204. package/dist/esm/stories/TextField.stories.js +332 -0
  205. package/dist/esm/stories/Thumbnail.stories.js +806 -0
  206. package/dist/esm/stories/TimePicker.stories.js +910 -0
  207. package/dist/esm/stories/Tip.stories.js +706 -0
  208. package/dist/esm/stories/Tooltip.stories.js +313 -0
  209. package/dist/esm/stories/TopBar.stories.js +114 -0
  210. package/dist/esm/stories/VerticalStack.stories.js +1240 -0
  211. package/dist/esm/tailwind.config.js +7 -0
  212. package/dist/esm/utilities/transformers.js +47 -0
  213. package/dist/esm/vite.config.js +20 -0
  214. package/dist/types/components/ActionList.d.ts +122 -0
  215. package/dist/types/components/ActionList.d.ts.map +1 -0
  216. package/dist/types/components/AnnouncementBar.d.ts +21 -0
  217. package/dist/types/components/AnnouncementBar.d.ts.map +1 -0
  218. package/dist/types/components/AppProvider.d.ts +61 -0
  219. package/dist/types/components/AppProvider.d.ts.map +1 -0
  220. package/dist/types/components/Autocomplete.d.ts +130 -0
  221. package/dist/types/components/Autocomplete.d.ts.map +1 -0
  222. package/dist/types/components/Badge.d.ts +21 -0
  223. package/dist/types/components/Badge.d.ts.map +1 -0
  224. package/dist/types/components/Banner.d.ts +78 -0
  225. package/dist/types/components/Banner.d.ts.map +1 -0
  226. package/dist/types/components/Box.d.ts +70 -0
  227. package/dist/types/components/Box.d.ts.map +1 -0
  228. package/dist/types/components/Button.d.ts +123 -0
  229. package/dist/types/components/Button.d.ts.map +1 -0
  230. package/dist/types/components/ButtonGroup.d.ts +26 -0
  231. package/dist/types/components/ButtonGroup.d.ts.map +1 -0
  232. package/dist/types/components/Card.d.ts +139 -0
  233. package/dist/types/components/Card.d.ts.map +1 -0
  234. package/dist/types/components/Checkbox.d.ts +56 -0
  235. package/dist/types/components/Checkbox.d.ts.map +1 -0
  236. package/dist/types/components/ChoiceList.d.ts +69 -0
  237. package/dist/types/components/ChoiceList.d.ts.map +1 -0
  238. package/dist/types/components/Collapsible.d.ts +17 -0
  239. package/dist/types/components/Collapsible.d.ts.map +1 -0
  240. package/dist/types/components/ColorField.d.ts +36 -0
  241. package/dist/types/components/ColorField.d.ts.map +1 -0
  242. package/dist/types/components/ContextualSaveBar.d.ts +22 -0
  243. package/dist/types/components/ContextualSaveBar.d.ts.map +1 -0
  244. package/dist/types/components/DatePicker.d.ts +66 -0
  245. package/dist/types/components/DatePicker.d.ts.map +1 -0
  246. package/dist/types/components/Divider.d.ts +21 -0
  247. package/dist/types/components/Divider.d.ts.map +1 -0
  248. package/dist/types/components/DropZone.d.ts +108 -0
  249. package/dist/types/components/DropZone.d.ts.map +1 -0
  250. package/dist/types/components/EmptyState.d.ts +52 -0
  251. package/dist/types/components/EmptyState.d.ts.map +1 -0
  252. package/dist/types/components/Filters.d.ts +166 -0
  253. package/dist/types/components/Filters.d.ts.map +1 -0
  254. package/dist/types/components/FooterHelp.d.ts +21 -0
  255. package/dist/types/components/FooterHelp.d.ts.map +1 -0
  256. package/dist/types/components/Form.d.ts +39 -0
  257. package/dist/types/components/Form.d.ts.map +1 -0
  258. package/dist/types/components/Frame.d.ts +51 -0
  259. package/dist/types/components/Frame.d.ts.map +1 -0
  260. package/dist/types/components/FrameSaveBar.d.ts +8 -0
  261. package/dist/types/components/FrameSaveBar.d.ts.map +1 -0
  262. package/dist/types/components/Grid.d.ts +39 -0
  263. package/dist/types/components/Grid.d.ts.map +1 -0
  264. package/dist/types/components/HorizontalStack.d.ts +36 -0
  265. package/dist/types/components/HorizontalStack.d.ts.map +1 -0
  266. package/dist/types/components/Icon.d.ts +43 -0
  267. package/dist/types/components/Icon.d.ts.map +1 -0
  268. package/dist/types/components/Image.d.ts +45 -0
  269. package/dist/types/components/Image.d.ts.map +1 -0
  270. package/dist/types/components/InlineError.d.ts +22 -0
  271. package/dist/types/components/InlineError.d.ts.map +1 -0
  272. package/dist/types/components/Label.d.ts +28 -0
  273. package/dist/types/components/Label.d.ts.map +1 -0
  274. package/dist/types/components/Layout.d.ts +44 -0
  275. package/dist/types/components/Layout.d.ts.map +1 -0
  276. package/dist/types/components/LayoutSection.d.ts +24 -0
  277. package/dist/types/components/LayoutSection.d.ts.map +1 -0
  278. package/dist/types/components/Link.d.ts +38 -0
  279. package/dist/types/components/Link.d.ts.map +1 -0
  280. package/dist/types/components/List.d.ts +33 -0
  281. package/dist/types/components/List.d.ts.map +1 -0
  282. package/dist/types/components/Listbox.d.ts +34 -0
  283. package/dist/types/components/Listbox.d.ts.map +1 -0
  284. package/dist/types/components/Loading.d.ts +13 -0
  285. package/dist/types/components/Loading.d.ts.map +1 -0
  286. package/dist/types/components/Modal.d.ts +75 -0
  287. package/dist/types/components/Modal.d.ts.map +1 -0
  288. package/dist/types/components/Navigation.d.ts +105 -0
  289. package/dist/types/components/Navigation.d.ts.map +1 -0
  290. package/dist/types/components/Page.d.ts +59 -0
  291. package/dist/types/components/Page.d.ts.map +1 -0
  292. package/dist/types/components/Pagination.d.ts +39 -0
  293. package/dist/types/components/Pagination.d.ts.map +1 -0
  294. package/dist/types/components/Pane.d.ts +11 -0
  295. package/dist/types/components/Pane.d.ts.map +1 -0
  296. package/dist/types/components/Popover.d.ts +56 -0
  297. package/dist/types/components/Popover.d.ts.map +1 -0
  298. package/dist/types/components/PopoverManager.d.ts +3 -0
  299. package/dist/types/components/PopoverManager.d.ts.map +1 -0
  300. package/dist/types/components/ProgressBar.d.ts +24 -0
  301. package/dist/types/components/ProgressBar.d.ts.map +1 -0
  302. package/dist/types/components/RadioButton.d.ts +39 -0
  303. package/dist/types/components/RadioButton.d.ts.map +1 -0
  304. package/dist/types/components/RadioButtonCard.d.ts +41 -0
  305. package/dist/types/components/RadioButtonCard.d.ts.map +1 -0
  306. package/dist/types/components/RangeSlider.d.ts +44 -0
  307. package/dist/types/components/RangeSlider.d.ts.map +1 -0
  308. package/dist/types/components/ResourceList.d.ts +54 -0
  309. package/dist/types/components/ResourceList.d.ts.map +1 -0
  310. package/dist/types/components/Select.d.ts +48 -0
  311. package/dist/types/components/Select.d.ts.map +1 -0
  312. package/dist/types/components/SkeletonText.d.ts +28 -0
  313. package/dist/types/components/SkeletonText.d.ts.map +1 -0
  314. package/dist/types/components/Spinner.d.ts +18 -0
  315. package/dist/types/components/Spinner.d.ts.map +1 -0
  316. package/dist/types/components/Table.d.ts +197 -0
  317. package/dist/types/components/Table.d.ts.map +1 -0
  318. package/dist/types/components/Tabs.d.ts +41 -0
  319. package/dist/types/components/Tabs.d.ts.map +1 -0
  320. package/dist/types/components/Tag.d.ts +26 -0
  321. package/dist/types/components/Tag.d.ts.map +1 -0
  322. package/dist/types/components/Text.d.ts +32 -0
  323. package/dist/types/components/Text.d.ts.map +1 -0
  324. package/dist/types/components/TextField.d.ts +109 -0
  325. package/dist/types/components/TextField.d.ts.map +1 -0
  326. package/dist/types/components/Thumbnail.d.ts +18 -0
  327. package/dist/types/components/Thumbnail.d.ts.map +1 -0
  328. package/dist/types/components/TimePicker.d.ts +3 -0
  329. package/dist/types/components/TimePicker.d.ts.map +1 -0
  330. package/dist/types/components/Tip.d.ts +23 -0
  331. package/dist/types/components/Tip.d.ts.map +1 -0
  332. package/dist/types/components/Tooltip.d.ts +84 -0
  333. package/dist/types/components/Tooltip.d.ts.map +1 -0
  334. package/dist/types/components/TopBar.d.ts +43 -0
  335. package/dist/types/components/TopBar.d.ts.map +1 -0
  336. package/dist/types/components/VerticalStack.d.ts +27 -0
  337. package/dist/types/components/VerticalStack.d.ts.map +1 -0
  338. package/dist/types/index.d.ts +62 -0
  339. package/dist/types/index.d.ts.map +1 -0
  340. package/dist/types/styles/Table.d.ts +1570 -0
  341. package/dist/types/styles/Table.d.ts.map +1 -0
  342. package/dist/types/utilities/dates.d.ts +46 -0
  343. package/dist/types/utilities/dates.d.ts.map +1 -0
  344. package/dist/types/utilities/transformers.d.ts +4 -0
  345. package/dist/types/utilities/transformers.d.ts.map +1 -0
  346. package/dist/types/utilities/useIndexResourceState.d.ts +21 -0
  347. package/dist/types/utilities/useIndexResourceState.d.ts.map +1 -0
  348. package/dist/types/utilities/useMounted.d.ts +2 -0
  349. package/dist/types/utilities/useMounted.d.ts.map +1 -0
  350. package/dist/types/utilities/useTableScrollState.d.ts +29 -0
  351. package/dist/types/utilities/useTableScrollState.d.ts.map +1 -0
  352. package/index.css +6 -0
  353. package/package.json +37 -6
@@ -0,0 +1,910 @@
1
+ function _array_like_to_array(arr, len) {
2
+ if (len == null || len > arr.length) len = arr.length;
3
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
4
+ return arr2;
5
+ }
6
+ function _array_with_holes(arr) {
7
+ if (Array.isArray(arr)) return arr;
8
+ }
9
+ function _array_without_holes(arr) {
10
+ if (Array.isArray(arr)) return _array_like_to_array(arr);
11
+ }
12
+ function _define_property(obj, key, value) {
13
+ if (key in obj) {
14
+ Object.defineProperty(obj, key, {
15
+ value: value,
16
+ enumerable: true,
17
+ configurable: true,
18
+ writable: true
19
+ });
20
+ } else {
21
+ obj[key] = value;
22
+ }
23
+ return obj;
24
+ }
25
+ function _iterable_to_array(iter) {
26
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
27
+ }
28
+ function _iterable_to_array_limit(arr, i) {
29
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
30
+ if (_i == null) return;
31
+ var _arr = [];
32
+ var _n = true;
33
+ var _d = false;
34
+ var _s, _e;
35
+ try {
36
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
37
+ _arr.push(_s.value);
38
+ if (i && _arr.length === i) break;
39
+ }
40
+ } catch (err) {
41
+ _d = true;
42
+ _e = err;
43
+ } finally{
44
+ try {
45
+ if (!_n && _i["return"] != null) _i["return"]();
46
+ } finally{
47
+ if (_d) throw _e;
48
+ }
49
+ }
50
+ return _arr;
51
+ }
52
+ function _non_iterable_rest() {
53
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
54
+ }
55
+ function _non_iterable_spread() {
56
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
57
+ }
58
+ function _object_spread(target) {
59
+ for(var i = 1; i < arguments.length; i++){
60
+ var source = arguments[i] != null ? arguments[i] : {};
61
+ var ownKeys = Object.keys(source);
62
+ if (typeof Object.getOwnPropertySymbols === "function") {
63
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
64
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
65
+ }));
66
+ }
67
+ ownKeys.forEach(function(key) {
68
+ _define_property(target, key, source[key]);
69
+ });
70
+ }
71
+ return target;
72
+ }
73
+ function ownKeys(object, enumerableOnly) {
74
+ var keys = Object.keys(object);
75
+ if (Object.getOwnPropertySymbols) {
76
+ var symbols = Object.getOwnPropertySymbols(object);
77
+ if (enumerableOnly) {
78
+ symbols = symbols.filter(function(sym) {
79
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
80
+ });
81
+ }
82
+ keys.push.apply(keys, symbols);
83
+ }
84
+ return keys;
85
+ }
86
+ function _object_spread_props(target, source) {
87
+ source = source != null ? source : {};
88
+ if (Object.getOwnPropertyDescriptors) {
89
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
90
+ } else {
91
+ ownKeys(Object(source)).forEach(function(key) {
92
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
93
+ });
94
+ }
95
+ return target;
96
+ }
97
+ function _sliced_to_array(arr, i) {
98
+ return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
99
+ }
100
+ function _to_consumable_array(arr) {
101
+ return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
102
+ }
103
+ function _unsupported_iterable_to_array(o, minLen) {
104
+ if (!o) return;
105
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
106
+ var n = Object.prototype.toString.call(o).slice(8, -1);
107
+ if (n === "Object" && o.constructor) n = o.constructor.name;
108
+ if (n === "Map" || n === "Set") return Array.from(n);
109
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
110
+ }
111
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
112
+ import { useState } from "react";
113
+ import { transformStorySource } from "../utilities/transformers.js";
114
+ import TimePicker from "../components/TimePicker.js";
115
+ import Text from "../components/Text.js";
116
+ import Card from "../components/Card.js";
117
+ import Button from "../components/Button.js";
118
+ import VerticalStack from "../components/VerticalStack.js";
119
+ import HorizontalStack from "../components/HorizontalStack.js";
120
+ import Grid from "../components/Grid.js";
121
+ import Box from "../components/Box.js";
122
+ export default {
123
+ title: 'Litho/TimePicker',
124
+ component: TimePicker,
125
+ parameters: {
126
+ layout: 'padded',
127
+ docs: {
128
+ description: {
129
+ component: "A TimePicker component that allows users to select specific times using an intuitive interface. TimePickers support various time formats and can be configured for different use cases."
130
+ },
131
+ source: {
132
+ transform: transformStorySource
133
+ }
134
+ }
135
+ },
136
+ args: {
137
+ label: 'Select time',
138
+ value: null
139
+ },
140
+ tags: [
141
+ 'autodocs'
142
+ ],
143
+ argTypes: {
144
+ label: {
145
+ control: 'text',
146
+ description: 'Label for the time picker'
147
+ },
148
+ value: {
149
+ control: 'text',
150
+ description: 'Selected time value'
151
+ },
152
+ placeholder: {
153
+ control: 'text',
154
+ description: 'Placeholder text for the input'
155
+ },
156
+ disabled: {
157
+ control: 'boolean',
158
+ description: 'Whether the time picker is disabled'
159
+ },
160
+ error: {
161
+ control: 'text',
162
+ description: 'Error message to display'
163
+ },
164
+ helpText: {
165
+ control: 'text',
166
+ description: 'Additional descriptive text'
167
+ },
168
+ format: {
169
+ control: 'select',
170
+ options: [
171
+ '12h',
172
+ '24h'
173
+ ],
174
+ description: 'Time format (12-hour or 24-hour)'
175
+ },
176
+ minuteStep: {
177
+ control: 'number',
178
+ description: 'Step increment for minutes'
179
+ },
180
+ onChange: {
181
+ action: 'timeChanged',
182
+ description: 'Callback when time selection changes'
183
+ }
184
+ }
185
+ };
186
+ export var Default = {
187
+ render: function(args) {
188
+ var _useState = _sliced_to_array(useState(args.value), 2), selectedTime = _useState[0], setSelectedTime = _useState[1];
189
+ return /*#__PURE__*/ _jsx(TimePicker, _object_spread_props(_object_spread({}, args), {
190
+ value: selectedTime,
191
+ onChange: function(time) {
192
+ var _args_onChange;
193
+ setSelectedTime(time);
194
+ (_args_onChange = args.onChange) === null || _args_onChange === void 0 ? void 0 : _args_onChange.call(args, time);
195
+ }
196
+ }));
197
+ }
198
+ };
199
+ export var WithPlaceholder = {
200
+ args: {
201
+ placeholder: 'Choose a time...'
202
+ },
203
+ render: function(args) {
204
+ var _useState = _sliced_to_array(useState(null), 2), selectedTime = _useState[0], setSelectedTime = _useState[1];
205
+ return /*#__PURE__*/ _jsx(TimePicker, _object_spread_props(_object_spread({}, args), {
206
+ value: selectedTime,
207
+ onChange: setSelectedTime
208
+ }));
209
+ },
210
+ parameters: {
211
+ docs: {
212
+ description: {
213
+ story: 'Time picker with placeholder text when no time is selected.'
214
+ }
215
+ }
216
+ }
217
+ };
218
+ export var WithHelpText = {
219
+ args: {
220
+ label: 'Meeting time',
221
+ helpText: 'Select the time when the meeting will start'
222
+ },
223
+ render: function(args) {
224
+ var _useState = _sliced_to_array(useState(null), 2), selectedTime = _useState[0], setSelectedTime = _useState[1];
225
+ return /*#__PURE__*/ _jsx(TimePicker, _object_spread_props(_object_spread({}, args), {
226
+ value: selectedTime,
227
+ onChange: setSelectedTime
228
+ }));
229
+ },
230
+ parameters: {
231
+ docs: {
232
+ description: {
233
+ story: 'Time picker with additional help text for context.'
234
+ }
235
+ }
236
+ }
237
+ };
238
+ export var WithError = {
239
+ args: {
240
+ label: 'Appointment time',
241
+ error: 'Please select a valid time',
242
+ value: 'invalid-time'
243
+ },
244
+ render: function(args) {
245
+ var _useState = _sliced_to_array(useState(args.value), 2), selectedTime = _useState[0], setSelectedTime = _useState[1];
246
+ return /*#__PURE__*/ _jsx(TimePicker, _object_spread_props(_object_spread({}, args), {
247
+ value: selectedTime,
248
+ onChange: setSelectedTime
249
+ }));
250
+ },
251
+ parameters: {
252
+ docs: {
253
+ description: {
254
+ story: 'Time picker with error state for validation.'
255
+ }
256
+ }
257
+ }
258
+ };
259
+ export var Disabled = {
260
+ args: {
261
+ label: 'Disabled time picker',
262
+ disabled: true,
263
+ value: '14:30'
264
+ },
265
+ parameters: {
266
+ docs: {
267
+ description: {
268
+ story: 'Disabled time picker that cannot be interacted with.'
269
+ }
270
+ }
271
+ }
272
+ };
273
+ export var TwentyFourHourFormat = {
274
+ args: {
275
+ label: 'Time (24-hour format)',
276
+ format: '24h',
277
+ helpText: 'Use 24-hour format (e.g., 14:30)'
278
+ },
279
+ render: function(args) {
280
+ var _useState = _sliced_to_array(useState('09:00'), 2), selectedTime = _useState[0], setSelectedTime = _useState[1];
281
+ return /*#__PURE__*/ _jsx(TimePicker, _object_spread_props(_object_spread({}, args), {
282
+ value: selectedTime,
283
+ onChange: setSelectedTime
284
+ }));
285
+ },
286
+ parameters: {
287
+ docs: {
288
+ description: {
289
+ story: 'Time picker configured for 24-hour time format.'
290
+ }
291
+ }
292
+ }
293
+ };
294
+ export var TwelveHourFormat = {
295
+ args: {
296
+ label: 'Time (12-hour format)',
297
+ format: '12h',
298
+ helpText: 'Use 12-hour format with AM/PM'
299
+ },
300
+ render: function(args) {
301
+ var _useState = _sliced_to_array(useState('2:30 PM'), 2), selectedTime = _useState[0], setSelectedTime = _useState[1];
302
+ return /*#__PURE__*/ _jsx(TimePicker, _object_spread_props(_object_spread({}, args), {
303
+ value: selectedTime,
304
+ onChange: setSelectedTime
305
+ }));
306
+ },
307
+ parameters: {
308
+ docs: {
309
+ description: {
310
+ story: 'Time picker configured for 12-hour time format with AM/PM.'
311
+ }
312
+ }
313
+ }
314
+ };
315
+ export var CustomMinuteStep = {
316
+ args: {
317
+ label: 'Appointment slot',
318
+ minuteStep: 15,
319
+ helpText: 'Available in 15-minute intervals'
320
+ },
321
+ render: function(args) {
322
+ var _useState = _sliced_to_array(useState(null), 2), selectedTime = _useState[0], setSelectedTime = _useState[1];
323
+ return /*#__PURE__*/ _jsx(TimePicker, _object_spread_props(_object_spread({}, args), {
324
+ value: selectedTime,
325
+ onChange: setSelectedTime
326
+ }));
327
+ },
328
+ parameters: {
329
+ docs: {
330
+ description: {
331
+ story: 'Time picker with custom minute step for scheduling appointments.'
332
+ }
333
+ }
334
+ }
335
+ };
336
+ export var SchedulingForm = {
337
+ render: function() {
338
+ var _useState = _sliced_to_array(useState('09:00'), 2), startTime = _useState[0], setStartTime = _useState[1];
339
+ var _useState1 = _sliced_to_array(useState('17:00'), 2), endTime = _useState1[0], setEndTime = _useState1[1];
340
+ var _useState2 = _sliced_to_array(useState('12:00'), 2), breakStart = _useState2[0], setBreakStart = _useState2[1];
341
+ var _useState3 = _sliced_to_array(useState('13:00'), 2), breakEnd = _useState3[0], setBreakEnd = _useState3[1];
342
+ return /*#__PURE__*/ _jsx(Card, {
343
+ title: "Work Schedule",
344
+ padded: true,
345
+ children: /*#__PURE__*/ _jsxs(VerticalStack, {
346
+ gap: "6",
347
+ children: [
348
+ /*#__PURE__*/ _jsxs(Grid, {
349
+ columns: 2,
350
+ gap: "4",
351
+ children: [
352
+ /*#__PURE__*/ _jsx(TimePicker, {
353
+ label: "Start time",
354
+ value: startTime,
355
+ onChange: setStartTime,
356
+ format: "24h",
357
+ helpText: "When do you start work?"
358
+ }),
359
+ /*#__PURE__*/ _jsx(TimePicker, {
360
+ label: "End time",
361
+ value: endTime,
362
+ onChange: setEndTime,
363
+ format: "24h",
364
+ helpText: "When do you finish work?"
365
+ })
366
+ ]
367
+ }),
368
+ /*#__PURE__*/ _jsxs(Grid, {
369
+ columns: 2,
370
+ gap: "4",
371
+ children: [
372
+ /*#__PURE__*/ _jsx(TimePicker, {
373
+ label: "Break start",
374
+ value: breakStart,
375
+ onChange: setBreakStart,
376
+ format: "24h",
377
+ helpText: "When does your break start?"
378
+ }),
379
+ /*#__PURE__*/ _jsx(TimePicker, {
380
+ label: "Break end",
381
+ value: breakEnd,
382
+ onChange: setBreakEnd,
383
+ format: "24h",
384
+ helpText: "When does your break end?"
385
+ })
386
+ ]
387
+ }),
388
+ /*#__PURE__*/ _jsx(Box, {
389
+ background: "subdued",
390
+ padding: "4",
391
+ borderRadius: "default",
392
+ paddingBlockStart: "4",
393
+ children: /*#__PURE__*/ _jsxs(VerticalStack, {
394
+ gap: "2",
395
+ children: [
396
+ /*#__PURE__*/ _jsx(Text, {
397
+ variant: "headingSm",
398
+ children: "Schedule Summary"
399
+ }),
400
+ /*#__PURE__*/ _jsxs(Text, {
401
+ children: [
402
+ "Work hours: ",
403
+ startTime,
404
+ " - ",
405
+ endTime
406
+ ]
407
+ }),
408
+ /*#__PURE__*/ _jsxs(Text, {
409
+ children: [
410
+ "Break time: ",
411
+ breakStart,
412
+ " - ",
413
+ breakEnd
414
+ ]
415
+ }),
416
+ /*#__PURE__*/ _jsxs(Text, {
417
+ children: [
418
+ "Total work time: ",
419
+ function() {
420
+ var start = parseInt(startTime.split(':')[0]);
421
+ var end = parseInt(endTime.split(':')[0]);
422
+ var breakDuration = parseInt(breakEnd.split(':')[0]) - parseInt(breakStart.split(':')[0]);
423
+ return end - start - breakDuration;
424
+ }(),
425
+ " hours"
426
+ ]
427
+ })
428
+ ]
429
+ })
430
+ }),
431
+ /*#__PURE__*/ _jsx(Box, {
432
+ paddingBlockStart: "4",
433
+ borderBlockStart: "divider",
434
+ children: /*#__PURE__*/ _jsx(Button, {
435
+ primary: true,
436
+ children: "Save Schedule"
437
+ })
438
+ })
439
+ ]
440
+ })
441
+ });
442
+ },
443
+ parameters: {
444
+ docs: {
445
+ description: {
446
+ story: 'Work schedule form using multiple time pickers with automatic calculation.'
447
+ }
448
+ }
449
+ }
450
+ };
451
+ export var EventPlanning = {
452
+ render: function() {
453
+ var _useState = _sliced_to_array(useState([
454
+ {
455
+ id: 1,
456
+ name: 'Opening Ceremony',
457
+ startTime: '09:00',
458
+ endTime: '10:00'
459
+ },
460
+ {
461
+ id: 2,
462
+ name: 'Keynote Speech',
463
+ startTime: '10:30',
464
+ endTime: '11:30'
465
+ },
466
+ {
467
+ id: 3,
468
+ name: 'Lunch Break',
469
+ startTime: '12:00',
470
+ endTime: '13:00'
471
+ }
472
+ ]), 2), events = _useState[0], setEvents = _useState[1];
473
+ var updateEventTime = function(eventId, field, time) {
474
+ setEvents(events.map(function(event) {
475
+ return event.id === eventId ? _object_spread_props(_object_spread({}, event), _define_property({}, field, time)) : event;
476
+ }));
477
+ };
478
+ var addEvent = function() {
479
+ var newEvent = {
480
+ id: Date.now(),
481
+ name: 'New Event',
482
+ startTime: '14:00',
483
+ endTime: '15:00'
484
+ };
485
+ setEvents(_to_consumable_array(events).concat([
486
+ newEvent
487
+ ]));
488
+ };
489
+ return /*#__PURE__*/ _jsx(Card, {
490
+ title: "Event Timeline",
491
+ padded: true,
492
+ children: /*#__PURE__*/ _jsxs(VerticalStack, {
493
+ gap: "6",
494
+ children: [
495
+ events.map(function(event) {
496
+ return /*#__PURE__*/ _jsx(Box, {
497
+ padding: "4",
498
+ border: "default",
499
+ borderRadius: "default",
500
+ background: "subdued",
501
+ children: /*#__PURE__*/ _jsxs(VerticalStack, {
502
+ gap: "4",
503
+ children: [
504
+ /*#__PURE__*/ _jsx(Text, {
505
+ variant: "headingSm",
506
+ children: event.name
507
+ }),
508
+ /*#__PURE__*/ _jsxs(Grid, {
509
+ columns: 2,
510
+ gap: "4",
511
+ children: [
512
+ /*#__PURE__*/ _jsx(TimePicker, {
513
+ label: "Start time",
514
+ value: event.startTime,
515
+ onChange: function(time) {
516
+ return updateEventTime(event.id, 'startTime', time);
517
+ },
518
+ format: "24h"
519
+ }),
520
+ /*#__PURE__*/ _jsx(TimePicker, {
521
+ label: "End time",
522
+ value: event.endTime,
523
+ onChange: function(time) {
524
+ return updateEventTime(event.id, 'endTime', time);
525
+ },
526
+ format: "24h"
527
+ })
528
+ ]
529
+ })
530
+ ]
531
+ })
532
+ }, event.id);
533
+ }),
534
+ /*#__PURE__*/ _jsx(Box, {
535
+ paddingBlockStart: "4",
536
+ borderBlockStart: "divider",
537
+ children: /*#__PURE__*/ _jsxs(HorizontalStack, {
538
+ gap: "2",
539
+ children: [
540
+ /*#__PURE__*/ _jsx(Button, {
541
+ onClick: addEvent,
542
+ children: "Add Event"
543
+ }),
544
+ /*#__PURE__*/ _jsx(Button, {
545
+ primary: true,
546
+ children: "Save Timeline"
547
+ })
548
+ ]
549
+ })
550
+ })
551
+ ]
552
+ })
553
+ });
554
+ },
555
+ parameters: {
556
+ docs: {
557
+ description: {
558
+ story: 'Event planning interface with multiple time pickers for scheduling.'
559
+ }
560
+ }
561
+ }
562
+ };
563
+ export var AppointmentBooking = {
564
+ render: function() {
565
+ var _useState = _sliced_to_array(useState('2024-03-15'), 2), selectedDate = _useState[0], setSelectedDate = _useState[1];
566
+ var _useState1 = _sliced_to_array(useState(null), 2), selectedTime = _useState1[0], setSelectedTime = _useState1[1];
567
+ var _useState2 = _sliced_to_array(useState('30'), 2), duration = _useState2[0], setDuration = _useState2[1];
568
+ var availableSlots = [
569
+ '09:00',
570
+ '09:30',
571
+ '10:00',
572
+ '10:30',
573
+ '11:00',
574
+ '11:30',
575
+ '14:00',
576
+ '14:30',
577
+ '15:00',
578
+ '15:30',
579
+ '16:00',
580
+ '16:30'
581
+ ];
582
+ var bookedSlots = [
583
+ '10:30',
584
+ '15:00',
585
+ '16:00'
586
+ ];
587
+ return /*#__PURE__*/ _jsx(Card, {
588
+ title: "Book Appointment",
589
+ padded: true,
590
+ children: /*#__PURE__*/ _jsxs(VerticalStack, {
591
+ gap: "8",
592
+ children: [
593
+ /*#__PURE__*/ _jsxs(Grid, {
594
+ columns: 2,
595
+ gap: "4",
596
+ children: [
597
+ /*#__PURE__*/ _jsxs(VerticalStack, {
598
+ gap: "2",
599
+ children: [
600
+ /*#__PURE__*/ _jsx(Text, {
601
+ variant: "headingSm",
602
+ children: "Select Date"
603
+ }),
604
+ /*#__PURE__*/ _jsx("input", {
605
+ type: "date",
606
+ value: selectedDate,
607
+ onChange: function(e) {
608
+ return setSelectedDate(e.target.value);
609
+ },
610
+ style: {
611
+ padding: '0.5rem',
612
+ border: '1px solid #ccc',
613
+ borderRadius: '4px',
614
+ width: '100%'
615
+ }
616
+ })
617
+ ]
618
+ }),
619
+ /*#__PURE__*/ _jsxs(VerticalStack, {
620
+ gap: "2",
621
+ children: [
622
+ /*#__PURE__*/ _jsx(Text, {
623
+ variant: "headingSm",
624
+ children: "Duration"
625
+ }),
626
+ /*#__PURE__*/ _jsxs("select", {
627
+ value: duration,
628
+ onChange: function(e) {
629
+ return setDuration(e.target.value);
630
+ },
631
+ style: {
632
+ padding: '0.5rem',
633
+ border: '1px solid #ccc',
634
+ borderRadius: '4px',
635
+ width: '100%'
636
+ },
637
+ children: [
638
+ /*#__PURE__*/ _jsx("option", {
639
+ value: "15",
640
+ children: "15 minutes"
641
+ }),
642
+ /*#__PURE__*/ _jsx("option", {
643
+ value: "30",
644
+ children: "30 minutes"
645
+ }),
646
+ /*#__PURE__*/ _jsx("option", {
647
+ value: "60",
648
+ children: "1 hour"
649
+ }),
650
+ /*#__PURE__*/ _jsx("option", {
651
+ value: "90",
652
+ children: "1.5 hours"
653
+ })
654
+ ]
655
+ })
656
+ ]
657
+ })
658
+ ]
659
+ }),
660
+ /*#__PURE__*/ _jsxs(VerticalStack, {
661
+ gap: "4",
662
+ children: [
663
+ /*#__PURE__*/ _jsx(Text, {
664
+ variant: "headingSm",
665
+ children: "Available Time Slots"
666
+ }),
667
+ /*#__PURE__*/ _jsx(Grid, {
668
+ columns: "auto-fit",
669
+ gap: "2",
670
+ minItemWidth: "120px",
671
+ children: availableSlots.map(function(slot) {
672
+ return /*#__PURE__*/ _jsxs("button", {
673
+ onClick: function() {
674
+ return setSelectedTime(slot);
675
+ },
676
+ disabled: bookedSlots.includes(slot),
677
+ style: {
678
+ padding: '0.75rem',
679
+ border: '1px solid #ccc',
680
+ borderRadius: '4px',
681
+ backgroundColor: bookedSlots.includes(slot) ? '#f5f5f5' : selectedTime === slot ? '#2196f3' : 'white',
682
+ color: bookedSlots.includes(slot) ? '#999' : selectedTime === slot ? 'white' : 'black',
683
+ cursor: bookedSlots.includes(slot) ? 'not-allowed' : 'pointer',
684
+ opacity: bookedSlots.includes(slot) ? 0.5 : 1
685
+ },
686
+ children: [
687
+ slot,
688
+ bookedSlots.includes(slot) && /*#__PURE__*/ _jsx("div", {
689
+ style: {
690
+ fontSize: '0.7rem'
691
+ },
692
+ children: "Booked"
693
+ })
694
+ ]
695
+ }, slot);
696
+ })
697
+ })
698
+ ]
699
+ }),
700
+ selectedTime && /*#__PURE__*/ _jsx(Box, {
701
+ padding: "4",
702
+ background: "success-subdued",
703
+ borderRadius: "default",
704
+ border: "success",
705
+ children: /*#__PURE__*/ _jsxs(VerticalStack, {
706
+ gap: "2",
707
+ children: [
708
+ /*#__PURE__*/ _jsx(Text, {
709
+ variant: "headingSm",
710
+ children: "Appointment Summary"
711
+ }),
712
+ /*#__PURE__*/ _jsxs(Text, {
713
+ children: [
714
+ "Date: ",
715
+ selectedDate
716
+ ]
717
+ }),
718
+ /*#__PURE__*/ _jsxs(Text, {
719
+ children: [
720
+ "Time: ",
721
+ selectedTime
722
+ ]
723
+ }),
724
+ /*#__PURE__*/ _jsxs(Text, {
725
+ children: [
726
+ "Duration: ",
727
+ duration,
728
+ " minutes"
729
+ ]
730
+ }),
731
+ /*#__PURE__*/ _jsx(Box, {
732
+ paddingBlockStart: "4",
733
+ children: /*#__PURE__*/ _jsx(Button, {
734
+ primary: true,
735
+ children: "Confirm Booking"
736
+ })
737
+ })
738
+ ]
739
+ })
740
+ })
741
+ ]
742
+ })
743
+ });
744
+ },
745
+ parameters: {
746
+ docs: {
747
+ description: {
748
+ story: 'Appointment booking system with time slot selection and availability display.'
749
+ }
750
+ }
751
+ }
752
+ };
753
+ export var RestaurantReservation = {
754
+ render: function() {
755
+ var _useState = _sliced_to_array(useState(null), 2), reservationTime = _useState[0], setReservationTime = _useState[1];
756
+ var _useState1 = _sliced_to_array(useState('2'), 2), partySize = _useState1[0], setPartySize = _useState1[1];
757
+ var _useState2 = _sliced_to_array(useState(''), 2), specialRequests = _useState2[0], setSpecialRequests = _useState2[1];
758
+ var dinnerSlots = [
759
+ '17:00',
760
+ '17:30',
761
+ '18:00',
762
+ '18:30',
763
+ '19:00',
764
+ '19:30',
765
+ '20:00',
766
+ '20:30',
767
+ '21:00',
768
+ '21:30',
769
+ '22:00'
770
+ ];
771
+ return /*#__PURE__*/ _jsx(Card, {
772
+ title: "Make a Reservation",
773
+ padded: true,
774
+ children: /*#__PURE__*/ _jsxs(VerticalStack, {
775
+ gap: "6",
776
+ children: [
777
+ /*#__PURE__*/ _jsxs(Grid, {
778
+ columns: "2fr 1fr",
779
+ gap: "4",
780
+ children: [
781
+ /*#__PURE__*/ _jsx(TimePicker, {
782
+ label: "Preferred time",
783
+ value: reservationTime,
784
+ onChange: setReservationTime,
785
+ format: "24h",
786
+ helpText: "Select your preferred dining time",
787
+ placeholder: "Choose time..."
788
+ }),
789
+ /*#__PURE__*/ _jsxs(VerticalStack, {
790
+ gap: "2",
791
+ children: [
792
+ /*#__PURE__*/ _jsx(Text, {
793
+ variant: "headingSm",
794
+ children: "Party Size"
795
+ }),
796
+ /*#__PURE__*/ _jsx("select", {
797
+ value: partySize,
798
+ onChange: function(e) {
799
+ return setPartySize(e.target.value);
800
+ },
801
+ style: {
802
+ padding: '0.5rem',
803
+ border: '1px solid #ccc',
804
+ borderRadius: '4px',
805
+ width: '100%'
806
+ },
807
+ children: [
808
+ 1,
809
+ 2,
810
+ 3,
811
+ 4,
812
+ 5,
813
+ 6,
814
+ 7,
815
+ 8
816
+ ].map(function(size) {
817
+ return /*#__PURE__*/ _jsxs("option", {
818
+ value: size,
819
+ children: [
820
+ size,
821
+ " ",
822
+ size === 1 ? 'person' : 'people'
823
+ ]
824
+ }, size);
825
+ })
826
+ })
827
+ ]
828
+ })
829
+ ]
830
+ }),
831
+ /*#__PURE__*/ _jsxs(VerticalStack, {
832
+ gap: "2",
833
+ children: [
834
+ /*#__PURE__*/ _jsx(Text, {
835
+ variant: "headingSm",
836
+ children: "Special Requests"
837
+ }),
838
+ /*#__PURE__*/ _jsx("textarea", {
839
+ value: specialRequests,
840
+ onChange: function(e) {
841
+ return setSpecialRequests(e.target.value);
842
+ },
843
+ placeholder: "Any dietary restrictions, seating preferences, or special occasions...",
844
+ style: {
845
+ width: '100%',
846
+ minHeight: '80px',
847
+ padding: '0.5rem',
848
+ border: '1px solid #ccc',
849
+ borderRadius: '4px',
850
+ resize: 'vertical'
851
+ }
852
+ })
853
+ ]
854
+ }),
855
+ /*#__PURE__*/ _jsx(Box, {
856
+ padding: "4",
857
+ background: "subdued",
858
+ borderRadius: "default",
859
+ border: "primary",
860
+ children: /*#__PURE__*/ _jsxs(VerticalStack, {
861
+ gap: "2",
862
+ children: [
863
+ /*#__PURE__*/ _jsx(Text, {
864
+ variant: "headingSm",
865
+ children: "Available Times Tonight"
866
+ }),
867
+ /*#__PURE__*/ _jsx(HorizontalStack, {
868
+ gap: "1",
869
+ wrap: true,
870
+ children: dinnerSlots.map(function(slot) {
871
+ return /*#__PURE__*/ _jsx("span", {
872
+ style: {
873
+ padding: '0.25rem 0.5rem',
874
+ backgroundColor: reservationTime === slot ? '#2196f3' : '#e1e1e1',
875
+ color: reservationTime === slot ? 'white' : 'black',
876
+ borderRadius: '12px',
877
+ fontSize: '0.8rem',
878
+ cursor: 'pointer'
879
+ },
880
+ onClick: function() {
881
+ return setReservationTime(slot);
882
+ },
883
+ children: slot
884
+ }, slot);
885
+ })
886
+ })
887
+ ]
888
+ })
889
+ }),
890
+ /*#__PURE__*/ _jsx(Box, {
891
+ paddingBlockStart: "4",
892
+ borderBlockStart: "divider",
893
+ children: /*#__PURE__*/ _jsx(Button, {
894
+ primary: true,
895
+ disabled: !reservationTime,
896
+ children: "Reserve Table"
897
+ })
898
+ })
899
+ ]
900
+ })
901
+ });
902
+ },
903
+ parameters: {
904
+ docs: {
905
+ description: {
906
+ story: 'Restaurant reservation system with time picker and additional booking details.'
907
+ }
908
+ }
909
+ }
910
+ };