shadcn_phlexcomponents 0.1.9 → 0.1.11

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 (246) hide show
  1. checksums.yaml +4 -4
  2. data/app/javascript/controllers/accordion_controller.ts +133 -0
  3. data/app/javascript/controllers/{avatar_controller.js → avatar_controller.ts} +4 -0
  4. data/app/javascript/controllers/checkbox_controller.ts +34 -0
  5. data/app/javascript/controllers/collapsible_controller.ts +45 -0
  6. data/app/javascript/controllers/combobox_controller.ts +145 -0
  7. data/app/javascript/controllers/command_controller.ts +129 -0
  8. data/app/javascript/controllers/command_root_controller.ts +355 -0
  9. data/app/javascript/controllers/date_picker_controller.ts +274 -0
  10. data/app/javascript/controllers/date_range_picker_controller.ts +243 -0
  11. data/app/javascript/controllers/dialog_controller.ts +113 -0
  12. data/app/javascript/controllers/dropdown_menu_controller.ts +133 -0
  13. data/app/javascript/controllers/dropdown_menu_root_controller.ts +234 -0
  14. data/app/javascript/controllers/dropdown_menu_sub_controller.ts +150 -0
  15. data/app/javascript/controllers/{form_field_controller.js → form_field_controller.ts} +4 -6
  16. data/app/javascript/controllers/hover_card_controller.ts +93 -0
  17. data/app/javascript/controllers/{loading_button_controller.js → loading_button_controller.ts} +2 -2
  18. data/app/javascript/controllers/popover_controller.ts +141 -0
  19. data/app/javascript/controllers/progress_controller.ts +17 -0
  20. data/app/javascript/controllers/radio_group_controller.ts +106 -0
  21. data/app/javascript/controllers/select_controller.ts +200 -0
  22. data/app/javascript/controllers/{sidebar_controller.js → sidebar_controller.ts} +6 -2
  23. data/app/javascript/controllers/sidebar_trigger_controller.ts +21 -0
  24. data/app/javascript/controllers/slider_controller.ts +107 -0
  25. data/app/javascript/controllers/switch_controller.ts +30 -0
  26. data/app/javascript/controllers/tabs_controller.ts +79 -0
  27. data/app/javascript/controllers/{theme_switcher_controller.js → theme_switcher_controller.ts} +12 -9
  28. data/app/javascript/controllers/toast_container_controller.ts +62 -0
  29. data/app/javascript/controllers/toast_controller.ts +28 -0
  30. data/app/javascript/controllers/tooltip_controller.ts +98 -0
  31. data/app/javascript/{shadcn_phlexcomponents.js → shadcn_phlexcomponents.ts} +6 -2
  32. data/app/javascript/utils.ts +437 -0
  33. data/app/stylesheets/date_picker.css +16 -154
  34. data/app/stylesheets/nouislider.css +173 -0
  35. data/app/stylesheets/tw-animate.css +486 -0
  36. data/lib/install/install_shadcn_phlexcomponents.rb +16 -3
  37. data/lib/shadcn_phlexcomponents/alias.rb +3 -1
  38. data/lib/shadcn_phlexcomponents/components/accordion.rb +129 -0
  39. data/lib/shadcn_phlexcomponents/components/alert.rb +59 -0
  40. data/lib/shadcn_phlexcomponents/components/alert_dialog.rb +276 -0
  41. data/lib/shadcn_phlexcomponents/components/{aspect_ratio/aspect_ratio.rb → aspect_ratio.rb} +2 -2
  42. data/lib/shadcn_phlexcomponents/components/avatar.rb +63 -0
  43. data/lib/shadcn_phlexcomponents/components/badge.rb +35 -0
  44. data/lib/shadcn_phlexcomponents/components/base.rb +34 -7
  45. data/lib/shadcn_phlexcomponents/components/breadcrumb.rb +150 -0
  46. data/lib/shadcn_phlexcomponents/components/button.rb +49 -0
  47. data/lib/shadcn_phlexcomponents/components/card.rb +88 -0
  48. data/lib/shadcn_phlexcomponents/components/{checkbox/checkbox.rb → checkbox.rb} +18 -14
  49. data/lib/shadcn_phlexcomponents/components/{checkbox_group/checkbox_group.rb → checkbox_group.rb} +7 -8
  50. data/lib/shadcn_phlexcomponents/components/collapsible.rb +91 -0
  51. data/lib/shadcn_phlexcomponents/components/combobox.rb +398 -0
  52. data/lib/shadcn_phlexcomponents/components/command.rb +351 -0
  53. data/lib/shadcn_phlexcomponents/components/date_picker.rb +264 -0
  54. data/lib/shadcn_phlexcomponents/components/date_range_picker.rb +126 -0
  55. data/lib/shadcn_phlexcomponents/components/dialog.rb +234 -0
  56. data/lib/shadcn_phlexcomponents/components/dropdown_menu.rb +282 -0
  57. data/lib/shadcn_phlexcomponents/components/dropdown_menu_sub.rb +135 -0
  58. data/lib/shadcn_phlexcomponents/components/form/form_checkbox.rb +6 -7
  59. data/lib/shadcn_phlexcomponents/components/form/form_checkbox_group.rb +2 -2
  60. data/lib/shadcn_phlexcomponents/components/form/form_date_picker.rb +3 -4
  61. data/lib/shadcn_phlexcomponents/components/form/form_date_range_picker.rb +27 -41
  62. data/lib/shadcn_phlexcomponents/components/form/form_error.rb +1 -1
  63. data/lib/shadcn_phlexcomponents/components/form/form_helpers.rb +43 -8
  64. data/lib/shadcn_phlexcomponents/components/form/form_hint.rb +1 -1
  65. data/lib/shadcn_phlexcomponents/components/form/form_input.rb +3 -4
  66. data/lib/shadcn_phlexcomponents/components/form/form_radio_group.rb +4 -5
  67. data/lib/shadcn_phlexcomponents/components/form/form_select.rb +3 -4
  68. data/lib/shadcn_phlexcomponents/components/form/form_slider.rb +91 -0
  69. data/lib/shadcn_phlexcomponents/components/form/form_switch.rb +7 -6
  70. data/lib/shadcn_phlexcomponents/components/form/form_textarea.rb +3 -4
  71. data/lib/shadcn_phlexcomponents/components/{form/form.rb → form.rb} +22 -4
  72. data/lib/shadcn_phlexcomponents/components/hover_card.rb +110 -0
  73. data/lib/shadcn_phlexcomponents/components/input.rb +31 -0
  74. data/lib/shadcn_phlexcomponents/components/label.rb +16 -0
  75. data/lib/shadcn_phlexcomponents/components/{link/link.rb → link.rb} +10 -3
  76. data/lib/shadcn_phlexcomponents/components/{loading_button/loading_button.rb → loading_button.rb} +9 -2
  77. data/lib/shadcn_phlexcomponents/components/pagination.rb +166 -0
  78. data/lib/shadcn_phlexcomponents/components/popover.rb +116 -0
  79. data/lib/shadcn_phlexcomponents/components/{progress/progress.rb → progress.rb} +4 -4
  80. data/lib/shadcn_phlexcomponents/components/radio_group.rb +155 -0
  81. data/lib/shadcn_phlexcomponents/components/select.rb +421 -0
  82. data/lib/shadcn_phlexcomponents/components/{separator/separator.rb → separator.rb} +9 -8
  83. data/lib/shadcn_phlexcomponents/components/sheet.rb +239 -0
  84. data/lib/shadcn_phlexcomponents/components/{skeleton/skeleton.rb → skeleton.rb} +1 -1
  85. data/lib/shadcn_phlexcomponents/components/slider.rb +72 -0
  86. data/lib/shadcn_phlexcomponents/components/switch.rb +75 -0
  87. data/lib/shadcn_phlexcomponents/components/table.rb +140 -0
  88. data/lib/shadcn_phlexcomponents/components/tabs.rb +135 -0
  89. data/lib/shadcn_phlexcomponents/components/textarea.rb +24 -0
  90. data/lib/shadcn_phlexcomponents/components/toast.rb +153 -0
  91. data/lib/shadcn_phlexcomponents/components/{toast/toast_container.rb → toast_container.rb} +23 -4
  92. data/lib/shadcn_phlexcomponents/components/tooltip.rb +131 -0
  93. data/lib/shadcn_phlexcomponents/initializers/shadcn_phlexcomponents.rb +25 -0
  94. data/lib/shadcn_phlexcomponents/version.rb +1 -1
  95. data/lib/tasks/install.rake +1 -1
  96. metadata +78 -167
  97. data/app/javascript/controllers/accordion_controller.js +0 -124
  98. data/app/javascript/controllers/alert_dialog_controller.js +0 -21
  99. data/app/javascript/controllers/checkbox_controller.js +0 -28
  100. data/app/javascript/controllers/collapsible_controller.js +0 -35
  101. data/app/javascript/controllers/combobox_controller.js +0 -54
  102. data/app/javascript/controllers/date_picker_controller.js +0 -253
  103. data/app/javascript/controllers/date_range_picker_controller.js +0 -344
  104. data/app/javascript/controllers/dialog_controller.js +0 -114
  105. data/app/javascript/controllers/dropdown_menu_controller.js +0 -171
  106. data/app/javascript/controllers/hover_card_controller.js +0 -21
  107. data/app/javascript/controllers/popover_controller.js +0 -113
  108. data/app/javascript/controllers/progress_controller.js +0 -14
  109. data/app/javascript/controllers/radio_group_controller.js +0 -90
  110. data/app/javascript/controllers/select_controller.js +0 -274
  111. data/app/javascript/controllers/sidebar_trigger_controller.js +0 -15
  112. data/app/javascript/controllers/switch_controller.js +0 -24
  113. data/app/javascript/controllers/tabs_controller.js +0 -73
  114. data/app/javascript/controllers/toast_container_controller.js +0 -22
  115. data/app/javascript/controllers/toast_controller.js +0 -45
  116. data/app/javascript/controllers/tooltip_controller.js +0 -40
  117. data/app/javascript/utils.js +0 -184
  118. data/app/stylesheets/choices.css +0 -324
  119. data/app/stylesheets/tailwindcss-animate.css +0 -318
  120. data/lib/shadcn_phlexcomponents/components/accordion/accordion.rb +0 -38
  121. data/lib/shadcn_phlexcomponents/components/accordion/accordion_content.rb +0 -30
  122. data/lib/shadcn_phlexcomponents/components/accordion/accordion_item.rb +0 -26
  123. data/lib/shadcn_phlexcomponents/components/accordion/accordion_trigger.rb +0 -46
  124. data/lib/shadcn_phlexcomponents/components/alert/alert.rb +0 -40
  125. data/lib/shadcn_phlexcomponents/components/alert/alert_description.rb +0 -11
  126. data/lib/shadcn_phlexcomponents/components/alert/alert_title.rb +0 -11
  127. data/lib/shadcn_phlexcomponents/components/alert_dialog/alert_dialog.rb +0 -60
  128. data/lib/shadcn_phlexcomponents/components/alert_dialog/alert_dialog_action.rb +0 -22
  129. data/lib/shadcn_phlexcomponents/components/alert_dialog/alert_dialog_action_to.rb +0 -40
  130. data/lib/shadcn_phlexcomponents/components/alert_dialog/alert_dialog_cancel.rb +0 -22
  131. data/lib/shadcn_phlexcomponents/components/alert_dialog/alert_dialog_content.rb +0 -40
  132. data/lib/shadcn_phlexcomponents/components/alert_dialog/alert_dialog_description.rb +0 -22
  133. data/lib/shadcn_phlexcomponents/components/alert_dialog/alert_dialog_footer.rb +0 -11
  134. data/lib/shadcn_phlexcomponents/components/alert_dialog/alert_dialog_header.rb +0 -11
  135. data/lib/shadcn_phlexcomponents/components/alert_dialog/alert_dialog_title.rb +0 -22
  136. data/lib/shadcn_phlexcomponents/components/alert_dialog/alert_dialog_trigger.rb +0 -50
  137. data/lib/shadcn_phlexcomponents/components/avatar/avatar.rb +0 -31
  138. data/lib/shadcn_phlexcomponents/components/avatar/avatar_fallback.rb +0 -21
  139. data/lib/shadcn_phlexcomponents/components/avatar/avatar_image.rb +0 -19
  140. data/lib/shadcn_phlexcomponents/components/badge/badge.rb +0 -30
  141. data/lib/shadcn_phlexcomponents/components/breadcrumb/breadcrumb.rb +0 -53
  142. data/lib/shadcn_phlexcomponents/components/breadcrumb/breadcrumb_ellipsis.rb +0 -23
  143. data/lib/shadcn_phlexcomponents/components/breadcrumb/breadcrumb_item.rb +0 -11
  144. data/lib/shadcn_phlexcomponents/components/breadcrumb/breadcrumb_link.rb +0 -7
  145. data/lib/shadcn_phlexcomponents/components/breadcrumb/breadcrumb_page.rb +0 -21
  146. data/lib/shadcn_phlexcomponents/components/breadcrumb/breadcrumb_separator.rb +0 -26
  147. data/lib/shadcn_phlexcomponents/components/button/button.rb +0 -53
  148. data/lib/shadcn_phlexcomponents/components/card/card.rb +0 -31
  149. data/lib/shadcn_phlexcomponents/components/card/card_content.rb +0 -11
  150. data/lib/shadcn_phlexcomponents/components/card/card_description.rb +0 -11
  151. data/lib/shadcn_phlexcomponents/components/card/card_footer.rb +0 -11
  152. data/lib/shadcn_phlexcomponents/components/card/card_header.rb +0 -11
  153. data/lib/shadcn_phlexcomponents/components/card/card_title.rb +0 -11
  154. data/lib/shadcn_phlexcomponents/components/collapsible/collapsible.rb +0 -31
  155. data/lib/shadcn_phlexcomponents/components/collapsible/collapsible_content.rb +0 -24
  156. data/lib/shadcn_phlexcomponents/components/collapsible/collapsible_trigger.rb +0 -50
  157. data/lib/shadcn_phlexcomponents/components/date_picker/date_picker.rb +0 -87
  158. data/lib/shadcn_phlexcomponents/components/date_picker/date_picker_content.rb +0 -45
  159. data/lib/shadcn_phlexcomponents/components/date_picker/date_picker_trigger.rb +0 -64
  160. data/lib/shadcn_phlexcomponents/components/date_range_picker/date_range_picker.rb +0 -105
  161. data/lib/shadcn_phlexcomponents/components/date_range_picker/date_range_picker_content.rb +0 -9
  162. data/lib/shadcn_phlexcomponents/components/date_range_picker/date_range_picker_trigger.rb +0 -9
  163. data/lib/shadcn_phlexcomponents/components/dialog/dialog.rb +0 -52
  164. data/lib/shadcn_phlexcomponents/components/dialog/dialog_close.rb +0 -42
  165. data/lib/shadcn_phlexcomponents/components/dialog/dialog_content.rb +0 -54
  166. data/lib/shadcn_phlexcomponents/components/dialog/dialog_description.rb +0 -22
  167. data/lib/shadcn_phlexcomponents/components/dialog/dialog_footer.rb +0 -11
  168. data/lib/shadcn_phlexcomponents/components/dialog/dialog_header.rb +0 -11
  169. data/lib/shadcn_phlexcomponents/components/dialog/dialog_title.rb +0 -22
  170. data/lib/shadcn_phlexcomponents/components/dialog/dialog_trigger.rb +0 -50
  171. data/lib/shadcn_phlexcomponents/components/dropdown_menu/dropdown_menu.rb +0 -50
  172. data/lib/shadcn_phlexcomponents/components/dropdown_menu/dropdown_menu_content.rb +0 -52
  173. data/lib/shadcn_phlexcomponents/components/dropdown_menu/dropdown_menu_item.rb +0 -56
  174. data/lib/shadcn_phlexcomponents/components/dropdown_menu/dropdown_menu_item_to.rb +0 -28
  175. data/lib/shadcn_phlexcomponents/components/dropdown_menu/dropdown_menu_label.rb +0 -11
  176. data/lib/shadcn_phlexcomponents/components/dropdown_menu/dropdown_menu_separator.rb +0 -20
  177. data/lib/shadcn_phlexcomponents/components/dropdown_menu/dropdown_menu_trigger.rb +0 -57
  178. data/lib/shadcn_phlexcomponents/components/hover_card/hover_card.rb +0 -33
  179. data/lib/shadcn_phlexcomponents/components/hover_card/hover_card_content.rb +0 -32
  180. data/lib/shadcn_phlexcomponents/components/hover_card/hover_card_trigger.rb +0 -44
  181. data/lib/shadcn_phlexcomponents/components/input/input.rb +0 -32
  182. data/lib/shadcn_phlexcomponents/components/label/label.rb +0 -14
  183. data/lib/shadcn_phlexcomponents/components/pagination/pagination.rb +0 -38
  184. data/lib/shadcn_phlexcomponents/components/pagination/pagination_ellipsis.rb +0 -24
  185. data/lib/shadcn_phlexcomponents/components/pagination/pagination_link.rb +0 -34
  186. data/lib/shadcn_phlexcomponents/components/pagination/pagination_next.rb +0 -32
  187. data/lib/shadcn_phlexcomponents/components/pagination/pagination_previous.rb +0 -32
  188. data/lib/shadcn_phlexcomponents/components/popover/popover.rb +0 -34
  189. data/lib/shadcn_phlexcomponents/components/popover/popover_content.rb +0 -40
  190. data/lib/shadcn_phlexcomponents/components/popover/popover_trigger.rb +0 -50
  191. data/lib/shadcn_phlexcomponents/components/radio_group/radio_group.rb +0 -88
  192. data/lib/shadcn_phlexcomponents/components/radio_group/radio_group_item.rb +0 -66
  193. data/lib/shadcn_phlexcomponents/components/select/select.rb +0 -194
  194. data/lib/shadcn_phlexcomponents/components/select/select_content.rb +0 -64
  195. data/lib/shadcn_phlexcomponents/components/select/select_group.rb +0 -23
  196. data/lib/shadcn_phlexcomponents/components/select/select_item.rb +0 -59
  197. data/lib/shadcn_phlexcomponents/components/select/select_label.rb +0 -24
  198. data/lib/shadcn_phlexcomponents/components/select/select_trigger.rb +0 -56
  199. data/lib/shadcn_phlexcomponents/components/sheet/sheet.rb +0 -53
  200. data/lib/shadcn_phlexcomponents/components/sheet/sheet_close.rb +0 -42
  201. data/lib/shadcn_phlexcomponents/components/sheet/sheet_content.rb +0 -65
  202. data/lib/shadcn_phlexcomponents/components/sheet/sheet_description.rb +0 -22
  203. data/lib/shadcn_phlexcomponents/components/sheet/sheet_footer.rb +0 -11
  204. data/lib/shadcn_phlexcomponents/components/sheet/sheet_header.rb +0 -11
  205. data/lib/shadcn_phlexcomponents/components/sheet/sheet_title.rb +0 -22
  206. data/lib/shadcn_phlexcomponents/components/sheet/sheet_trigger.rb +0 -50
  207. data/lib/shadcn_phlexcomponents/components/sidebar/sidebar.rb +0 -108
  208. data/lib/shadcn_phlexcomponents/components/sidebar/sidebar_container.rb +0 -11
  209. data/lib/shadcn_phlexcomponents/components/sidebar/sidebar_content.rb +0 -11
  210. data/lib/shadcn_phlexcomponents/components/sidebar/sidebar_footer.rb +0 -11
  211. data/lib/shadcn_phlexcomponents/components/sidebar/sidebar_group.rb +0 -11
  212. data/lib/shadcn_phlexcomponents/components/sidebar/sidebar_group_content.rb +0 -11
  213. data/lib/shadcn_phlexcomponents/components/sidebar/sidebar_group_label.rb +0 -16
  214. data/lib/shadcn_phlexcomponents/components/sidebar/sidebar_header.rb +0 -11
  215. data/lib/shadcn_phlexcomponents/components/sidebar/sidebar_inset.rb +0 -15
  216. data/lib/shadcn_phlexcomponents/components/sidebar/sidebar_menu.rb +0 -11
  217. data/lib/shadcn_phlexcomponents/components/sidebar/sidebar_menu_button.rb +0 -61
  218. data/lib/shadcn_phlexcomponents/components/sidebar/sidebar_menu_item.rb +0 -9
  219. data/lib/shadcn_phlexcomponents/components/sidebar/sidebar_menu_sub.rb +0 -14
  220. data/lib/shadcn_phlexcomponents/components/sidebar/sidebar_menu_sub_button.rb +0 -48
  221. data/lib/shadcn_phlexcomponents/components/sidebar/sidebar_menu_sub_item.rb +0 -9
  222. data/lib/shadcn_phlexcomponents/components/sidebar/sidebar_trigger.rb +0 -40
  223. data/lib/shadcn_phlexcomponents/components/switch/switch.rb +0 -66
  224. data/lib/shadcn_phlexcomponents/components/table/table.rb +0 -75
  225. data/lib/shadcn_phlexcomponents/components/table/table_body.rb +0 -11
  226. data/lib/shadcn_phlexcomponents/components/table/table_caption.rb +0 -11
  227. data/lib/shadcn_phlexcomponents/components/table/table_cell.rb +0 -11
  228. data/lib/shadcn_phlexcomponents/components/table/table_footer.rb +0 -11
  229. data/lib/shadcn_phlexcomponents/components/table/table_head.rb +0 -14
  230. data/lib/shadcn_phlexcomponents/components/table/table_header.rb +0 -11
  231. data/lib/shadcn_phlexcomponents/components/table/table_row.rb +0 -11
  232. data/lib/shadcn_phlexcomponents/components/tabs/tabs.rb +0 -38
  233. data/lib/shadcn_phlexcomponents/components/tabs/tabs_content.rb +0 -35
  234. data/lib/shadcn_phlexcomponents/components/tabs/tabs_list.rb +0 -23
  235. data/lib/shadcn_phlexcomponents/components/tabs/tabs_trigger.rb +0 -45
  236. data/lib/shadcn_phlexcomponents/components/textarea/textarea.rb +0 -29
  237. data/lib/shadcn_phlexcomponents/components/toast/toast.rb +0 -101
  238. data/lib/shadcn_phlexcomponents/components/toast/toast_action.rb +0 -39
  239. data/lib/shadcn_phlexcomponents/components/toast/toast_action_to.rb +0 -28
  240. data/lib/shadcn_phlexcomponents/components/toast/toast_content.rb +0 -11
  241. data/lib/shadcn_phlexcomponents/components/toast/toast_description.rb +0 -11
  242. data/lib/shadcn_phlexcomponents/components/toast/toast_title.rb +0 -11
  243. data/lib/shadcn_phlexcomponents/components/tooltip/tooltip.rb +0 -34
  244. data/lib/shadcn_phlexcomponents/components/tooltip/tooltip_content.rb +0 -39
  245. data/lib/shadcn_phlexcomponents/components/tooltip/tooltip_trigger.rb +0 -48
  246. /data/lib/shadcn_phlexcomponents/components/{theme_switcher/theme_switcher.rb → theme_switcher.rb} +0 -0
@@ -1,13 +1,14 @@
1
1
  import AccordionController from './controllers/accordion_controller'
2
- import AlertDialogController from './controllers/alert_dialog_controller'
3
2
  import AvatarController from './controllers/avatar_controller'
4
3
  import CheckboxController from './controllers/checkbox_controller'
5
4
  import CollapsibleController from './controllers/collapsible_controller'
6
5
  import ComboboxController from './controllers/combobox_controller'
6
+ import CommandController from './controllers/command_controller'
7
7
  import DatePickerController from './controllers/date_picker_controller'
8
8
  import DateRangePickerController from './controllers/date_range_picker_controller'
9
9
  import DialogController from './controllers/dialog_controller'
10
10
  import DropdownMenuController from './controllers/dropdown_menu_controller'
11
+ import DropdownMenuSubController from './controllers/dropdown_menu_sub_controller'
11
12
  import FormFieldController from './controllers/form_field_controller'
12
13
  import HoverCardController from './controllers/hover_card_controller'
13
14
  import LoadingButtonController from './controllers/loading_button_controller'
@@ -17,6 +18,7 @@ import RadioGroupController from './controllers/radio_group_controller'
17
18
  import SelectController from './controllers/select_controller'
18
19
  import SidebarController from './controllers/sidebar_controller'
19
20
  import SidebarTriggerController from './controllers/sidebar_trigger_controller'
21
+ import SliderController from './controllers/slider_controller'
20
22
  import SwitchController from './controllers/switch_controller'
21
23
  import TabsController from './controllers/tabs_controller'
22
24
  import ThemeSwitcherController from './controllers/theme_switcher_controller'
@@ -26,15 +28,16 @@ import TooltipController from './controllers/tooltip_controller'
26
28
 
27
29
  export default {
28
30
  accordion: AccordionController,
29
- 'alert-dialog': AlertDialogController,
30
31
  avatar: AvatarController,
31
32
  checkbox: CheckboxController,
32
33
  collapsible: CollapsibleController,
33
34
  combobox: ComboboxController,
35
+ command: CommandController,
34
36
  'date-picker': DatePickerController,
35
37
  'date-range-picker': DateRangePickerController,
36
38
  dialog: DialogController,
37
39
  'dropdown-menu': DropdownMenuController,
40
+ 'dropdown-menu-sub': DropdownMenuSubController,
38
41
  'form-field': FormFieldController,
39
42
  'hover-card': HoverCardController,
40
43
  'loading-button': LoadingButtonController,
@@ -44,6 +47,7 @@ export default {
44
47
  select: SelectController,
45
48
  sidebar: SidebarController,
46
49
  'sidebar-trigger': SidebarTriggerController,
50
+ slider: SliderController,
47
51
  switch: SwitchController,
48
52
  tabs: TabsController,
49
53
  'theme-switcher': ThemeSwitcherController,
@@ -0,0 +1,437 @@
1
+ import {
2
+ computePosition,
3
+ flip,
4
+ shift,
5
+ offset,
6
+ autoUpdate,
7
+ size,
8
+ Placement,
9
+ Middleware,
10
+ arrow,
11
+ } from '@floating-ui/dom'
12
+
13
+ const ANIMATION_OUT_DELAY = 100
14
+ const ON_OPEN_FOCUS_DELAY = 100
15
+ const ON_CLOSE_FOCUS_DELAY = 50
16
+
17
+ const OPPOSITE_SIDE = {
18
+ top: 'bottom',
19
+ right: 'left',
20
+ bottom: 'top',
21
+ left: 'right',
22
+ }
23
+
24
+ const ARROW_TRANSFORM_ORIGIN = {
25
+ top: '',
26
+ right: '0 0',
27
+ bottom: 'center 0',
28
+ left: '100% 0',
29
+ }
30
+
31
+ const ARROW_TRANSFORM = {
32
+ top: 'translateY(100%)',
33
+ right: 'translateY(50%) rotate(90deg) translateX(-50%)',
34
+ bottom: `rotate(180deg)`,
35
+ left: 'translateY(50%) rotate(-90deg) translateX(50%)',
36
+ }
37
+
38
+ const getScrollbarWidth = () => {
39
+ // Create a temporary div container and append it into the body
40
+ const outer = document.createElement('div')
41
+ outer.style.visibility = 'hidden'
42
+ outer.style.overflow = 'scroll' // force scrollbars
43
+ outer.style.width = '100px'
44
+ outer.style.position = 'absolute'
45
+ outer.style.top = '-9999px'
46
+ document.body.appendChild(outer)
47
+
48
+ // Create an inner div and place it inside the outer div
49
+ const inner = document.createElement('div')
50
+ inner.style.width = '100%'
51
+ outer.appendChild(inner)
52
+
53
+ // Calculate the scrollbar width
54
+ const scrollbarWidth = outer.offsetWidth - inner.offsetWidth
55
+
56
+ // Clean up
57
+ outer.remove()
58
+
59
+ return scrollbarWidth
60
+ }
61
+
62
+ const showOverlay = ({
63
+ classNames = '',
64
+ elementId,
65
+ }: {
66
+ classNames?: string
67
+ elementId: string
68
+ }) => {
69
+ const element = document.createElement('div')
70
+
71
+ let defaultClassNames = [
72
+ 'data-[state=open]:animate-in',
73
+ 'data-[state=closed]:animate-out',
74
+ 'data-[state=closed]:fade-out-0',
75
+ 'data-[state=open]:fade-in-0',
76
+ 'fixed',
77
+ 'inset-0',
78
+ 'z-[48]',
79
+ 'bg-black/50',
80
+ 'pointer-events-auto',
81
+ ]
82
+
83
+ defaultClassNames = defaultClassNames.concat(
84
+ classNames.split(' ').filter((c) => !!c),
85
+ )
86
+
87
+ element.classList.add(...defaultClassNames)
88
+ element.dataset.state = 'open'
89
+ element.dataset.shadcnPhlexcomponentsOverlay = elementId
90
+ element.ariaHidden = 'true'
91
+
92
+ document.body.appendChild(element)
93
+ }
94
+
95
+ const hideOverlay = (elementId: string) => {
96
+ const element = document.querySelector(
97
+ `[data-shadcn-phlexcomponents-overlay=${elementId}]`,
98
+ )
99
+
100
+ if (element && element instanceof HTMLElement) {
101
+ element.dataset.state = 'closed'
102
+
103
+ setTimeout(() => {
104
+ element.remove()
105
+ }, ANIMATION_OUT_DELAY)
106
+ }
107
+ }
108
+
109
+ const lockScroll = () => {
110
+ if (window.innerHeight < document.documentElement.scrollHeight) {
111
+ document.body.dataset.scrollLocked = '1'
112
+ document.body.classList.add(
113
+ 'data-[scroll-locked]:pointer-events-none',
114
+ 'data-[scroll-locked]:!overflow-hidden',
115
+ 'data-[scroll-locked]:!relative',
116
+ 'data-[scroll-locked]:px-0',
117
+ 'data-[scroll-locked]:pt-0',
118
+ 'data-[scroll-locked]:ml-0',
119
+ 'data-[scroll-locked]:mt-0',
120
+ )
121
+ const style = getComputedStyle(document.body)
122
+ const originalMarginRight = style.marginRight
123
+ document.body.dataset.marginRight = originalMarginRight
124
+ document.body.style.marginRight = `${getScrollbarWidth()}px`
125
+ }
126
+ }
127
+
128
+ const unlockScroll = () => {
129
+ if (document.body.dataset.scrollLocked) {
130
+ delete document.body.dataset.scrollLocked
131
+ document.body.classList.remove(
132
+ 'data-[scroll-locked]:pointer-events-none',
133
+ 'data-[scroll-locked]:!overflow-hidden',
134
+ 'data-[scroll-locked]:!relative',
135
+ 'data-[scroll-locked]:px-0',
136
+ 'data-[scroll-locked]:pt-0',
137
+ 'data-[scroll-locked]:ml-0',
138
+ 'data-[scroll-locked]:mt-0',
139
+ )
140
+
141
+ const originalMarginRight = document.body.dataset.marginRight
142
+
143
+ if (originalMarginRight && parseInt(originalMarginRight) === 0) {
144
+ document.body.style.marginRight = ''
145
+ } else {
146
+ document.body.style.marginRight = `${originalMarginRight}`
147
+ }
148
+
149
+ delete document.body.dataset.marginRight
150
+ }
151
+ }
152
+
153
+ const openWithOverlay = (elementId: string) => {
154
+ showOverlay({ elementId })
155
+ lockScroll()
156
+ }
157
+
158
+ const closeWithOverlay = (elementId: string) => {
159
+ hideOverlay(elementId)
160
+ unlockScroll()
161
+ }
162
+
163
+ const initFloatingUi = ({
164
+ referenceElement,
165
+ floatingElement,
166
+ side = 'bottom',
167
+ align = 'center',
168
+ sideOffset = 0,
169
+ alignOffset = 0,
170
+ arrowElement,
171
+ }: {
172
+ referenceElement: HTMLElement
173
+ floatingElement: HTMLElement
174
+ side?: string
175
+ align?: string
176
+ sideOffset?: number
177
+ alignOffset?: number
178
+ offsetPx?: number
179
+ arrowElement?: HTMLElement
180
+ }) => {
181
+ let placement = `${side}-${align}`
182
+ placement = placement.replace(/-center/g, '')
183
+
184
+ let arrowHeight = 0,
185
+ arrowWidth = 0
186
+
187
+ if (arrowElement) {
188
+ const rect = arrowElement.getBoundingClientRect()
189
+ arrowWidth = rect.width
190
+ arrowHeight = rect.height
191
+ }
192
+
193
+ const middleware = [
194
+ transformOrigin({ arrowHeight, arrowWidth }),
195
+ offset({ mainAxis: sideOffset, alignmentAxis: alignOffset }),
196
+ size({
197
+ apply: ({ elements, rects, availableWidth, availableHeight }) => {
198
+ const { width: anchorWidth, height: anchorHeight } = rects.reference
199
+ const contentStyle = elements.floating.style
200
+ contentStyle.setProperty(
201
+ '--radix-popper-available-width',
202
+ `${availableWidth}px`,
203
+ )
204
+ contentStyle.setProperty(
205
+ '--radix-popper-available-height',
206
+ `${availableHeight}px`,
207
+ )
208
+ contentStyle.setProperty(
209
+ '--radix-popper-anchor-width',
210
+ `${anchorWidth}px`,
211
+ )
212
+ contentStyle.setProperty(
213
+ '--radix-popper-anchor-height',
214
+ `${anchorHeight}px`,
215
+ )
216
+ },
217
+ }),
218
+ ]
219
+
220
+ const flipMiddleware = flip({
221
+ // Ensure we flip to the perpendicular axis if it doesn't fit
222
+ // on narrow viewports.
223
+ crossAxis: 'alignment',
224
+ fallbackAxisSideDirection: 'end', // or 'start'
225
+ })
226
+ const shiftMiddleware = shift()
227
+
228
+ // Prioritize flip over shift for edge-aligned placements only.
229
+ if (placement.includes('-')) {
230
+ middleware.push(flipMiddleware, shiftMiddleware)
231
+ } else {
232
+ middleware.push(shiftMiddleware, flipMiddleware)
233
+ }
234
+
235
+ if (arrowElement) {
236
+ middleware.push(arrow({ element: arrowElement, padding: 0 }))
237
+ }
238
+
239
+ return autoUpdate(referenceElement, floatingElement, () => {
240
+ computePosition(referenceElement, floatingElement, {
241
+ placement: placement as Placement,
242
+ strategy: 'fixed',
243
+ middleware,
244
+ }).then(({ middlewareData, x, y }) => {
245
+ const arrowX = middlewareData.arrow?.x
246
+ const arrowY = middlewareData.arrow?.y
247
+ const cannotCenterArrow = middlewareData.arrow?.centerOffset !== 0
248
+
249
+ floatingElement.style.setProperty(
250
+ '--radix-popper-transform-origin',
251
+ `${middlewareData.transformOrigin?.x} ${middlewareData.transformOrigin?.y}`,
252
+ )
253
+ if (arrowElement) {
254
+ const baseSide = OPPOSITE_SIDE[side as keyof typeof OPPOSITE_SIDE]
255
+
256
+ const arrowStyle = {
257
+ position: 'absolute',
258
+ left: arrowX ? `${arrowX}px` : undefined,
259
+ top: arrowY ? `${arrowY}px` : undefined,
260
+ [baseSide]: 0,
261
+ transformOrigin:
262
+ ARROW_TRANSFORM_ORIGIN[side as keyof typeof ARROW_TRANSFORM_ORIGIN],
263
+ transform: ARROW_TRANSFORM[side as keyof typeof ARROW_TRANSFORM],
264
+ visibility: cannotCenterArrow ? 'hidden' : undefined,
265
+ }
266
+
267
+ Object.assign(arrowElement.style, arrowStyle)
268
+ }
269
+ Object.assign(floatingElement.style, {
270
+ left: `${x}px`,
271
+ top: `${y}px`,
272
+ })
273
+ })
274
+ })
275
+ }
276
+
277
+ const transformOrigin = (options: {
278
+ arrowWidth: number
279
+ arrowHeight: number
280
+ }): Middleware => {
281
+ return {
282
+ name: 'transformOrigin',
283
+ options,
284
+ fn(data) {
285
+ const { placement, rects, middlewareData } = data
286
+ const cannotCenterArrow = middlewareData.arrow?.centerOffset !== 0
287
+ const isArrowHidden = cannotCenterArrow
288
+ const arrowWidth = isArrowHidden ? 0 : options.arrowWidth
289
+ const arrowHeight = isArrowHidden ? 0 : options.arrowHeight
290
+
291
+ const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement)
292
+ const noArrowAlign = { start: '0%', center: '50%', end: '100%' }[
293
+ placedAlign
294
+ ] as string
295
+
296
+ const arrowXCenter = (middlewareData.arrow?.x ?? 0) + arrowWidth / 2
297
+ const arrowYCenter = (middlewareData.arrow?.y ?? 0) + arrowHeight / 2
298
+
299
+ let x = ''
300
+ let y = ''
301
+
302
+ if (placedSide === 'bottom') {
303
+ x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`
304
+ y = `${-arrowHeight}px`
305
+ } else if (placedSide === 'top') {
306
+ x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`
307
+ y = `${rects.floating.height + arrowHeight}px`
308
+ } else if (placedSide === 'right') {
309
+ x = `${-arrowHeight}px`
310
+ y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`
311
+ } else if (placedSide === 'left') {
312
+ x = `${rects.floating.width + arrowHeight}px`
313
+ y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`
314
+ }
315
+ return { data: { x, y } }
316
+ },
317
+ }
318
+ }
319
+
320
+ function getSideAndAlignFromPlacement(placement: Placement) {
321
+ const [side, align = 'center'] = placement.split('-')
322
+ return [side, align] as const
323
+ }
324
+
325
+ const focusTrigger = (triggerTarget: HTMLElement) => {
326
+ setTimeout(() => {
327
+ if (triggerTarget.dataset.asChild === 'false') {
328
+ const childElement = triggerTarget.firstElementChild as HTMLElement
329
+
330
+ if (childElement) {
331
+ childElement.focus()
332
+ }
333
+ } else {
334
+ triggerTarget.focus()
335
+ }
336
+ }, ON_CLOSE_FOCUS_DELAY)
337
+ }
338
+
339
+ const getFocusableElements = (container: HTMLElement) => {
340
+ return Array.from(
341
+ container.querySelectorAll(
342
+ 'button, [href], input:not([type="hidden"]), select:not([tabindex="-1"]), textarea, [tabindex]:not([tabindex="-1"])',
343
+ ),
344
+ ) as HTMLElement[]
345
+ }
346
+
347
+ const getSameLevelItems = ({
348
+ content,
349
+ items,
350
+ closestContentSelector,
351
+ }: {
352
+ content: HTMLElement
353
+ items: HTMLElement[]
354
+ closestContentSelector: string
355
+ }) => {
356
+ let sameLevelItems = [] as HTMLElement[]
357
+
358
+ items.forEach((i) => {
359
+ if (
360
+ i.closest(closestContentSelector) === content &&
361
+ i.dataset.disabled === undefined
362
+ ) {
363
+ sameLevelItems.push(i)
364
+ }
365
+ })
366
+
367
+ return sameLevelItems
368
+ }
369
+
370
+ const showContent = ({
371
+ trigger,
372
+ content,
373
+ contentContainer,
374
+ setEqualWidth,
375
+ }: {
376
+ trigger?: HTMLElement
377
+ content: HTMLElement
378
+ contentContainer: HTMLElement
379
+ setEqualWidth?: boolean
380
+ }) => {
381
+ contentContainer.classList.remove('hidden')
382
+
383
+ if (trigger) {
384
+ if (setEqualWidth) {
385
+ const triggerWidth = trigger.offsetWidth
386
+ const contentContainerWidth = contentContainer.offsetWidth
387
+
388
+ if (contentContainerWidth < triggerWidth) {
389
+ contentContainer.style.width = `${triggerWidth}px`
390
+ }
391
+ }
392
+
393
+ trigger.ariaExpanded = 'true'
394
+ trigger.dataset.state = 'open'
395
+ }
396
+
397
+ content.dataset.state = 'open'
398
+ }
399
+
400
+ const hideContent = ({
401
+ trigger,
402
+ content,
403
+ contentContainer,
404
+ }: {
405
+ trigger?: HTMLElement
406
+ content: HTMLElement
407
+ contentContainer: HTMLElement
408
+ }) => {
409
+ if (trigger) {
410
+ trigger.ariaExpanded = 'false'
411
+ trigger.dataset.state = 'closed'
412
+ }
413
+
414
+ content.dataset.state = 'closed'
415
+
416
+ setTimeout(() => {
417
+ contentContainer.classList.add('hidden')
418
+ }, ANIMATION_OUT_DELAY)
419
+ }
420
+
421
+ export {
422
+ ANIMATION_OUT_DELAY,
423
+ ON_CLOSE_FOCUS_DELAY,
424
+ ON_OPEN_FOCUS_DELAY,
425
+ showOverlay,
426
+ hideOverlay,
427
+ lockScroll,
428
+ unlockScroll,
429
+ openWithOverlay,
430
+ closeWithOverlay,
431
+ initFloatingUi,
432
+ focusTrigger,
433
+ getFocusableElements,
434
+ getSameLevelItems,
435
+ showContent,
436
+ hideContent,
437
+ }
@@ -1,139 +1,34 @@
1
- [data-vc='calendar'] {
2
- @apply relative flex flex-col outline-none p-3;
3
- }
4
-
5
- [data-vc='controls'] {
6
- @apply absolute z-20 -left-1 -right-1 -top-1.5 flex justify-between items-center pt-5 px-4 pointer-events-none box-content;
7
- }
8
-
9
- [data-vc='grid'] {
10
- @apply grid grid-cols-1 md:grid-cols-2 gap-6;
11
- }
12
-
13
- [data-vc='column'] {
14
- @apply flex flex-col;
15
- }
16
-
17
- [data-vc='header'] {
18
- @apply relative flex items-center mb-3;
19
- }
20
-
21
- [data-vc-header='content'] {
22
- @apply grid grid-flow-col auto-cols-max items-center justify-center px-4 whitespace-pre-wrap grow;
23
- }
24
-
25
- [data-vc='month'],
26
- [data-vc='year'],
27
- [data-vc-months-month],
28
- [data-vc-years-year] {
29
- @apply inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-base;
30
- @apply font-medium transition-colors focus-visible:outline-none focus-visible:ring-1;
31
- @apply focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50;
32
- @apply [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 cursor-pointer;
33
- @apply hover:bg-accent hover:text-accent-foreground px-2 h-10 md:h-8 md:px-3 pointer-events-auto;
34
- }
35
-
36
- [data-vc-months-month],
37
- [data-vc-years-year] {
38
- @apply md:text-sm;
39
- }
40
-
41
- [data-vc='wrapper'] {
42
- @apply flex grow;
43
- }
44
-
45
- [data-vc='content'] {
46
- @apply flex flex-col grow;
47
- }
48
-
49
- [data-vc='months'] {
50
- @apply grid gap-y-4 gap-x-2 grid-cols-3 md:grid-cols-4 items-center grow;
51
- }
52
-
53
- [data-vc='years'] {
54
- @apply grid gap-y-4 gap-x-2 grid-cols-3 md:grid-cols-5 items-center grow;
55
- }
56
-
57
- [data-vc='week'] {
58
- @apply grid grid-cols-[repeat(7,_1fr)] justify-items-center mb-2;
59
- }
60
-
61
- [data-vc-week-day] {
62
- @apply text-muted-foreground font-normal text-xs flex items-center justify-center;
63
- }
64
-
65
- [data-vc='dates'] {
66
- @apply grid gap-y-1 grid-cols-[repeat(7,_1fr)] justify-items-center items-center grow pointer-events-none;
67
- }
68
-
69
- [data-vc-date-btn] {
70
- @apply inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-base md:text-sm;
71
- @apply font-medium transition-colors focus-visible:outline-none focus-visible:ring-1;
72
- @apply focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50;
73
- @apply [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 cursor-pointer;
74
- @apply hover:bg-accent hover:text-accent-foreground md:h-9 md:w-9 h-10 w-10 pointer-events-auto;
75
- }
76
-
77
- [data-vc-years-year-selected],
78
- [data-vc-months-month-selected] {
79
- @apply bg-primary text-primary-foreground;
80
- }
81
-
82
- [data-vc-date-today] [data-vc-date-btn] {
83
- @apply bg-accent text-accent-foreground font-bold;
84
- }
85
-
86
- [data-vc-date-btn][aria-selected='true'] {
87
- @apply bg-primary text-primary-foreground hover:bg-primary/90;
88
- }
89
-
90
- [data-vc-arrow] {
91
- @apply inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm;
92
- @apply font-medium transition-colors focus-visible:outline-none focus-visible:ring-1;
93
- @apply focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50;
94
- @apply [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 cursor-pointer;
95
- @apply border border-input bg-transparent shadow-sm hover:bg-accent hover:text-accent-foreground;
96
- @apply pointer-events-auto w-7 h-7;
97
- }
98
-
99
1
  [data-vc-arrow='next']:before {
100
- @apply bg-accent-foreground h-7 w-7;
2
+ @apply bg-current size-4 mask-size-[auto_16px] mask-center mask-no-repeat absolute content-[''];
101
3
  mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right-icon lucide-chevron-right"><path d="m9 18 6-6-6-6"/></svg>');
102
- mask-repeat: no-repeat;
103
- position: absolute;
104
- content: '';
105
- mask-size: auto 16px;
106
- mask-position: center;
107
4
  }
108
5
 
109
6
  [data-vc-arrow='prev']:before {
110
- @apply bg-accent-foreground h-7 w-7;
7
+ @apply bg-current size-4 mask-size-[auto_16px] mask-center mask-no-repeat absolute content-[''];
111
8
  mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-left-icon lucide-chevron-left"><path d="m15 18-6-6 6-6"/></svg>');
112
- mask-repeat: no-repeat;
113
- position: absolute;
114
- content: '';
115
- mask-size: auto 16px;
116
- mask-position: center;
117
- }
118
-
119
- [data-vc-date-month='prev'] [data-vc-date-btn],
120
- [data-vc-date-month='next'] [data-vc-date-btn] {
121
- @apply text-muted-foreground;
122
9
  }
123
10
 
124
- [data-vc-date-disabled] [data-vc-date-btn] {
125
- @apply pointer-events-none opacity-50 text-muted-foreground;
11
+ [data-vc='grid'][data-vc-grid='hidden'] [data-vc='column'] {
12
+ pointer-events: none;
13
+ opacity: 0.3;
126
14
  }
127
15
 
128
- [data-vc='grid'][data-vc-grid='hidden'] [data-vc='column'] {
129
- @apply opacity-30 pointer-events-none;
16
+ [data-vc='grid'][data-vc-grid='hidden'] [data-vc='column'] * {
17
+ pointer-events: none;
130
18
  }
131
19
 
132
20
  [data-vc='grid'][data-vc-grid='hidden']
133
21
  [data-vc='column'][data-vc-column='month'],
134
22
  [data-vc='grid'][data-vc-grid='hidden']
135
- [data-vc='column'][data-vc-column='year'] {
136
- @apply opacity-100 pointer-events-auto;
23
+ [data-vc='column'][data-vc-column='month']
24
+ *,
25
+ [data-vc='grid'][data-vc-grid='hidden']
26
+ [data-vc='column'][data-vc-column='year'],
27
+ [data-vc='grid'][data-vc-grid='hidden']
28
+ [data-vc='column'][data-vc-column='year']
29
+ * {
30
+ pointer-events: auto;
31
+ opacity: 1;
137
32
  }
138
33
 
139
34
  [data-vc-date][data-vc-date-hover] [data-vc-date-btn] {
@@ -177,36 +72,3 @@
177
72
  [data-vc-date][data-vc-date-selected='middle'] [data-vc-date-btn] {
178
73
  @apply rounded-none;
179
74
  }
180
-
181
- /* [data-vc-date][data-vc-date-disabled]
182
- + [data-vc-date-selected]
183
- [data-vc-date-btn],
184
- [data-vc-date][data-vc-date-disabled]
185
- + [data-vc-date-hover]
186
- [data-vc-date-btn] {
187
- @apply rounded-l-md;
188
- } */
189
-
190
- /* [data-vc-date][data-vc-date-hover]:has(+ [data-vc-date-disabled])
191
- [data-vc-date-btn],
192
- [data-vc-date][data-vc-date-selected]:has(+ [data-vc-date-disabled])
193
- [data-vc-date-btn] {
194
- @apply rounded-r-md;
195
- } */
196
-
197
- [data-vc-date-hover] [data-vc-date-btn] {
198
- @apply bg-accent text-accent-foreground;
199
- }
200
-
201
- [data-vc-date-selected] [data-vc-date-btn] {
202
- @apply bg-primary text-primary-foreground;
203
- }
204
-
205
- [data-vc-date-selected='middle'][data-vc-date-selected] [data-vc-date-btn] {
206
- @apply bg-primary/20 hover:bg-primary/20 text-accent-foreground;
207
- }
208
-
209
- [data-vc-date-hover='last'] [data-vc-date-btn],
210
- [data-vc-date-hover='first'] [data-vc-date-btn] {
211
- @apply bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground;
212
- }