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