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.
- checksums.yaml +4 -4
- data/app/javascript/controllers/accordion_controller.ts +133 -0
- data/app/javascript/controllers/{avatar_controller.js → avatar_controller.ts} +4 -0
- data/app/javascript/controllers/checkbox_controller.ts +34 -0
- data/app/javascript/controllers/collapsible_controller.ts +45 -0
- data/app/javascript/controllers/combobox_controller.ts +145 -0
- data/app/javascript/controllers/command_controller.ts +129 -0
- data/app/javascript/controllers/command_root_controller.ts +355 -0
- data/app/javascript/controllers/date_picker_controller.ts +274 -0
- data/app/javascript/controllers/date_range_picker_controller.ts +243 -0
- data/app/javascript/controllers/dialog_controller.ts +113 -0
- data/app/javascript/controllers/dropdown_menu_controller.ts +133 -0
- data/app/javascript/controllers/dropdown_menu_root_controller.ts +234 -0
- data/app/javascript/controllers/dropdown_menu_sub_controller.ts +150 -0
- data/app/javascript/controllers/{form_field_controller.js → form_field_controller.ts} +4 -6
- data/app/javascript/controllers/hover_card_controller.ts +93 -0
- data/app/javascript/controllers/{loading_button_controller.js → loading_button_controller.ts} +2 -2
- data/app/javascript/controllers/popover_controller.ts +141 -0
- data/app/javascript/controllers/progress_controller.ts +17 -0
- data/app/javascript/controllers/radio_group_controller.ts +106 -0
- data/app/javascript/controllers/select_controller.ts +200 -0
- data/app/javascript/controllers/{sidebar_controller.js → sidebar_controller.ts} +6 -2
- data/app/javascript/controllers/sidebar_trigger_controller.ts +21 -0
- data/app/javascript/controllers/slider_controller.ts +107 -0
- data/app/javascript/controllers/switch_controller.ts +30 -0
- data/app/javascript/controllers/tabs_controller.ts +79 -0
- data/app/javascript/controllers/{theme_switcher_controller.js → theme_switcher_controller.ts} +12 -9
- data/app/javascript/controllers/toast_container_controller.ts +62 -0
- data/app/javascript/controllers/toast_controller.ts +28 -0
- data/app/javascript/controllers/tooltip_controller.ts +98 -0
- data/app/javascript/{shadcn_phlexcomponents.js → shadcn_phlexcomponents.ts} +6 -2
- data/app/javascript/utils.ts +437 -0
- data/app/stylesheets/date_picker.css +16 -154
- data/app/stylesheets/nouislider.css +173 -0
- data/app/stylesheets/tw-animate.css +486 -0
- data/lib/install/install_shadcn_phlexcomponents.rb +16 -3
- data/lib/shadcn_phlexcomponents/alias.rb +3 -1
- data/lib/shadcn_phlexcomponents/components/accordion.rb +129 -0
- data/lib/shadcn_phlexcomponents/components/alert.rb +59 -0
- data/lib/shadcn_phlexcomponents/components/alert_dialog.rb +276 -0
- data/lib/shadcn_phlexcomponents/components/{aspect_ratio/aspect_ratio.rb → aspect_ratio.rb} +2 -2
- data/lib/shadcn_phlexcomponents/components/avatar.rb +63 -0
- data/lib/shadcn_phlexcomponents/components/badge.rb +35 -0
- data/lib/shadcn_phlexcomponents/components/base.rb +34 -7
- data/lib/shadcn_phlexcomponents/components/breadcrumb.rb +150 -0
- data/lib/shadcn_phlexcomponents/components/button.rb +49 -0
- data/lib/shadcn_phlexcomponents/components/card.rb +88 -0
- data/lib/shadcn_phlexcomponents/components/{checkbox/checkbox.rb → checkbox.rb} +18 -14
- data/lib/shadcn_phlexcomponents/components/{checkbox_group/checkbox_group.rb → checkbox_group.rb} +7 -8
- data/lib/shadcn_phlexcomponents/components/collapsible.rb +91 -0
- data/lib/shadcn_phlexcomponents/components/combobox.rb +398 -0
- data/lib/shadcn_phlexcomponents/components/command.rb +351 -0
- data/lib/shadcn_phlexcomponents/components/date_picker.rb +264 -0
- data/lib/shadcn_phlexcomponents/components/date_range_picker.rb +126 -0
- data/lib/shadcn_phlexcomponents/components/dialog.rb +234 -0
- data/lib/shadcn_phlexcomponents/components/dropdown_menu.rb +282 -0
- data/lib/shadcn_phlexcomponents/components/dropdown_menu_sub.rb +135 -0
- data/lib/shadcn_phlexcomponents/components/form/form_checkbox.rb +6 -7
- data/lib/shadcn_phlexcomponents/components/form/form_checkbox_group.rb +2 -2
- data/lib/shadcn_phlexcomponents/components/form/form_date_picker.rb +3 -4
- data/lib/shadcn_phlexcomponents/components/form/form_date_range_picker.rb +27 -41
- data/lib/shadcn_phlexcomponents/components/form/form_error.rb +1 -1
- data/lib/shadcn_phlexcomponents/components/form/form_helpers.rb +43 -8
- data/lib/shadcn_phlexcomponents/components/form/form_hint.rb +1 -1
- data/lib/shadcn_phlexcomponents/components/form/form_input.rb +3 -4
- data/lib/shadcn_phlexcomponents/components/form/form_radio_group.rb +4 -5
- data/lib/shadcn_phlexcomponents/components/form/form_select.rb +3 -4
- data/lib/shadcn_phlexcomponents/components/form/form_slider.rb +91 -0
- data/lib/shadcn_phlexcomponents/components/form/form_switch.rb +7 -6
- data/lib/shadcn_phlexcomponents/components/form/form_textarea.rb +3 -4
- data/lib/shadcn_phlexcomponents/components/{form/form.rb → form.rb} +22 -4
- data/lib/shadcn_phlexcomponents/components/hover_card.rb +110 -0
- data/lib/shadcn_phlexcomponents/components/input.rb +31 -0
- data/lib/shadcn_phlexcomponents/components/label.rb +16 -0
- data/lib/shadcn_phlexcomponents/components/{link/link.rb → link.rb} +10 -3
- data/lib/shadcn_phlexcomponents/components/{loading_button/loading_button.rb → loading_button.rb} +9 -2
- data/lib/shadcn_phlexcomponents/components/pagination.rb +166 -0
- data/lib/shadcn_phlexcomponents/components/popover.rb +116 -0
- data/lib/shadcn_phlexcomponents/components/{progress/progress.rb → progress.rb} +4 -4
- data/lib/shadcn_phlexcomponents/components/radio_group.rb +155 -0
- data/lib/shadcn_phlexcomponents/components/select.rb +421 -0
- data/lib/shadcn_phlexcomponents/components/{separator/separator.rb → separator.rb} +9 -8
- data/lib/shadcn_phlexcomponents/components/sheet.rb +239 -0
- data/lib/shadcn_phlexcomponents/components/{skeleton/skeleton.rb → skeleton.rb} +1 -1
- data/lib/shadcn_phlexcomponents/components/slider.rb +72 -0
- data/lib/shadcn_phlexcomponents/components/switch.rb +75 -0
- data/lib/shadcn_phlexcomponents/components/table.rb +140 -0
- data/lib/shadcn_phlexcomponents/components/tabs.rb +135 -0
- data/lib/shadcn_phlexcomponents/components/textarea.rb +24 -0
- data/lib/shadcn_phlexcomponents/components/toast.rb +153 -0
- data/lib/shadcn_phlexcomponents/components/{toast/toast_container.rb → toast_container.rb} +23 -4
- data/lib/shadcn_phlexcomponents/components/tooltip.rb +131 -0
- data/lib/shadcn_phlexcomponents/initializers/shadcn_phlexcomponents.rb +25 -0
- data/lib/shadcn_phlexcomponents/version.rb +1 -1
- data/lib/tasks/install.rake +1 -1
- metadata +78 -167
- data/app/javascript/controllers/accordion_controller.js +0 -124
- data/app/javascript/controllers/alert_dialog_controller.js +0 -21
- data/app/javascript/controllers/checkbox_controller.js +0 -28
- data/app/javascript/controllers/collapsible_controller.js +0 -35
- data/app/javascript/controllers/combobox_controller.js +0 -54
- data/app/javascript/controllers/date_picker_controller.js +0 -253
- data/app/javascript/controllers/date_range_picker_controller.js +0 -344
- data/app/javascript/controllers/dialog_controller.js +0 -114
- data/app/javascript/controllers/dropdown_menu_controller.js +0 -171
- data/app/javascript/controllers/hover_card_controller.js +0 -21
- data/app/javascript/controllers/popover_controller.js +0 -113
- data/app/javascript/controllers/progress_controller.js +0 -14
- data/app/javascript/controllers/radio_group_controller.js +0 -90
- data/app/javascript/controllers/select_controller.js +0 -274
- data/app/javascript/controllers/sidebar_trigger_controller.js +0 -15
- data/app/javascript/controllers/switch_controller.js +0 -24
- data/app/javascript/controllers/tabs_controller.js +0 -73
- data/app/javascript/controllers/toast_container_controller.js +0 -22
- data/app/javascript/controllers/toast_controller.js +0 -45
- data/app/javascript/controllers/tooltip_controller.js +0 -40
- data/app/javascript/utils.js +0 -184
- data/app/stylesheets/choices.css +0 -324
- data/app/stylesheets/tailwindcss-animate.css +0 -318
- data/lib/shadcn_phlexcomponents/components/accordion/accordion.rb +0 -38
- data/lib/shadcn_phlexcomponents/components/accordion/accordion_content.rb +0 -30
- data/lib/shadcn_phlexcomponents/components/accordion/accordion_item.rb +0 -26
- data/lib/shadcn_phlexcomponents/components/accordion/accordion_trigger.rb +0 -46
- data/lib/shadcn_phlexcomponents/components/alert/alert.rb +0 -40
- data/lib/shadcn_phlexcomponents/components/alert/alert_description.rb +0 -11
- data/lib/shadcn_phlexcomponents/components/alert/alert_title.rb +0 -11
- data/lib/shadcn_phlexcomponents/components/alert_dialog/alert_dialog.rb +0 -60
- data/lib/shadcn_phlexcomponents/components/alert_dialog/alert_dialog_action.rb +0 -22
- data/lib/shadcn_phlexcomponents/components/alert_dialog/alert_dialog_action_to.rb +0 -40
- data/lib/shadcn_phlexcomponents/components/alert_dialog/alert_dialog_cancel.rb +0 -22
- data/lib/shadcn_phlexcomponents/components/alert_dialog/alert_dialog_content.rb +0 -40
- data/lib/shadcn_phlexcomponents/components/alert_dialog/alert_dialog_description.rb +0 -22
- data/lib/shadcn_phlexcomponents/components/alert_dialog/alert_dialog_footer.rb +0 -11
- data/lib/shadcn_phlexcomponents/components/alert_dialog/alert_dialog_header.rb +0 -11
- data/lib/shadcn_phlexcomponents/components/alert_dialog/alert_dialog_title.rb +0 -22
- data/lib/shadcn_phlexcomponents/components/alert_dialog/alert_dialog_trigger.rb +0 -50
- data/lib/shadcn_phlexcomponents/components/avatar/avatar.rb +0 -31
- data/lib/shadcn_phlexcomponents/components/avatar/avatar_fallback.rb +0 -21
- data/lib/shadcn_phlexcomponents/components/avatar/avatar_image.rb +0 -19
- data/lib/shadcn_phlexcomponents/components/badge/badge.rb +0 -30
- data/lib/shadcn_phlexcomponents/components/breadcrumb/breadcrumb.rb +0 -53
- data/lib/shadcn_phlexcomponents/components/breadcrumb/breadcrumb_ellipsis.rb +0 -23
- data/lib/shadcn_phlexcomponents/components/breadcrumb/breadcrumb_item.rb +0 -11
- data/lib/shadcn_phlexcomponents/components/breadcrumb/breadcrumb_link.rb +0 -7
- data/lib/shadcn_phlexcomponents/components/breadcrumb/breadcrumb_page.rb +0 -21
- data/lib/shadcn_phlexcomponents/components/breadcrumb/breadcrumb_separator.rb +0 -26
- data/lib/shadcn_phlexcomponents/components/button/button.rb +0 -53
- data/lib/shadcn_phlexcomponents/components/card/card.rb +0 -31
- data/lib/shadcn_phlexcomponents/components/card/card_content.rb +0 -11
- data/lib/shadcn_phlexcomponents/components/card/card_description.rb +0 -11
- data/lib/shadcn_phlexcomponents/components/card/card_footer.rb +0 -11
- data/lib/shadcn_phlexcomponents/components/card/card_header.rb +0 -11
- data/lib/shadcn_phlexcomponents/components/card/card_title.rb +0 -11
- data/lib/shadcn_phlexcomponents/components/collapsible/collapsible.rb +0 -31
- data/lib/shadcn_phlexcomponents/components/collapsible/collapsible_content.rb +0 -24
- data/lib/shadcn_phlexcomponents/components/collapsible/collapsible_trigger.rb +0 -50
- data/lib/shadcn_phlexcomponents/components/date_picker/date_picker.rb +0 -87
- data/lib/shadcn_phlexcomponents/components/date_picker/date_picker_content.rb +0 -45
- data/lib/shadcn_phlexcomponents/components/date_picker/date_picker_trigger.rb +0 -64
- data/lib/shadcn_phlexcomponents/components/date_range_picker/date_range_picker.rb +0 -105
- data/lib/shadcn_phlexcomponents/components/date_range_picker/date_range_picker_content.rb +0 -9
- data/lib/shadcn_phlexcomponents/components/date_range_picker/date_range_picker_trigger.rb +0 -9
- data/lib/shadcn_phlexcomponents/components/dialog/dialog.rb +0 -52
- data/lib/shadcn_phlexcomponents/components/dialog/dialog_close.rb +0 -42
- data/lib/shadcn_phlexcomponents/components/dialog/dialog_content.rb +0 -54
- data/lib/shadcn_phlexcomponents/components/dialog/dialog_description.rb +0 -22
- data/lib/shadcn_phlexcomponents/components/dialog/dialog_footer.rb +0 -11
- data/lib/shadcn_phlexcomponents/components/dialog/dialog_header.rb +0 -11
- data/lib/shadcn_phlexcomponents/components/dialog/dialog_title.rb +0 -22
- data/lib/shadcn_phlexcomponents/components/dialog/dialog_trigger.rb +0 -50
- data/lib/shadcn_phlexcomponents/components/dropdown_menu/dropdown_menu.rb +0 -50
- data/lib/shadcn_phlexcomponents/components/dropdown_menu/dropdown_menu_content.rb +0 -52
- data/lib/shadcn_phlexcomponents/components/dropdown_menu/dropdown_menu_item.rb +0 -56
- data/lib/shadcn_phlexcomponents/components/dropdown_menu/dropdown_menu_item_to.rb +0 -28
- data/lib/shadcn_phlexcomponents/components/dropdown_menu/dropdown_menu_label.rb +0 -11
- data/lib/shadcn_phlexcomponents/components/dropdown_menu/dropdown_menu_separator.rb +0 -20
- data/lib/shadcn_phlexcomponents/components/dropdown_menu/dropdown_menu_trigger.rb +0 -57
- data/lib/shadcn_phlexcomponents/components/hover_card/hover_card.rb +0 -33
- data/lib/shadcn_phlexcomponents/components/hover_card/hover_card_content.rb +0 -32
- data/lib/shadcn_phlexcomponents/components/hover_card/hover_card_trigger.rb +0 -44
- data/lib/shadcn_phlexcomponents/components/input/input.rb +0 -32
- data/lib/shadcn_phlexcomponents/components/label/label.rb +0 -14
- data/lib/shadcn_phlexcomponents/components/pagination/pagination.rb +0 -38
- data/lib/shadcn_phlexcomponents/components/pagination/pagination_ellipsis.rb +0 -24
- data/lib/shadcn_phlexcomponents/components/pagination/pagination_link.rb +0 -34
- data/lib/shadcn_phlexcomponents/components/pagination/pagination_next.rb +0 -32
- data/lib/shadcn_phlexcomponents/components/pagination/pagination_previous.rb +0 -32
- data/lib/shadcn_phlexcomponents/components/popover/popover.rb +0 -34
- data/lib/shadcn_phlexcomponents/components/popover/popover_content.rb +0 -40
- data/lib/shadcn_phlexcomponents/components/popover/popover_trigger.rb +0 -50
- data/lib/shadcn_phlexcomponents/components/radio_group/radio_group.rb +0 -88
- data/lib/shadcn_phlexcomponents/components/radio_group/radio_group_item.rb +0 -66
- data/lib/shadcn_phlexcomponents/components/select/select.rb +0 -194
- data/lib/shadcn_phlexcomponents/components/select/select_content.rb +0 -64
- data/lib/shadcn_phlexcomponents/components/select/select_group.rb +0 -23
- data/lib/shadcn_phlexcomponents/components/select/select_item.rb +0 -59
- data/lib/shadcn_phlexcomponents/components/select/select_label.rb +0 -24
- data/lib/shadcn_phlexcomponents/components/select/select_trigger.rb +0 -56
- data/lib/shadcn_phlexcomponents/components/sheet/sheet.rb +0 -53
- data/lib/shadcn_phlexcomponents/components/sheet/sheet_close.rb +0 -42
- data/lib/shadcn_phlexcomponents/components/sheet/sheet_content.rb +0 -65
- data/lib/shadcn_phlexcomponents/components/sheet/sheet_description.rb +0 -22
- data/lib/shadcn_phlexcomponents/components/sheet/sheet_footer.rb +0 -11
- data/lib/shadcn_phlexcomponents/components/sheet/sheet_header.rb +0 -11
- data/lib/shadcn_phlexcomponents/components/sheet/sheet_title.rb +0 -22
- data/lib/shadcn_phlexcomponents/components/sheet/sheet_trigger.rb +0 -50
- data/lib/shadcn_phlexcomponents/components/sidebar/sidebar.rb +0 -108
- data/lib/shadcn_phlexcomponents/components/sidebar/sidebar_container.rb +0 -11
- data/lib/shadcn_phlexcomponents/components/sidebar/sidebar_content.rb +0 -11
- data/lib/shadcn_phlexcomponents/components/sidebar/sidebar_footer.rb +0 -11
- data/lib/shadcn_phlexcomponents/components/sidebar/sidebar_group.rb +0 -11
- data/lib/shadcn_phlexcomponents/components/sidebar/sidebar_group_content.rb +0 -11
- data/lib/shadcn_phlexcomponents/components/sidebar/sidebar_group_label.rb +0 -16
- data/lib/shadcn_phlexcomponents/components/sidebar/sidebar_header.rb +0 -11
- data/lib/shadcn_phlexcomponents/components/sidebar/sidebar_inset.rb +0 -15
- data/lib/shadcn_phlexcomponents/components/sidebar/sidebar_menu.rb +0 -11
- data/lib/shadcn_phlexcomponents/components/sidebar/sidebar_menu_button.rb +0 -61
- data/lib/shadcn_phlexcomponents/components/sidebar/sidebar_menu_item.rb +0 -9
- data/lib/shadcn_phlexcomponents/components/sidebar/sidebar_menu_sub.rb +0 -14
- data/lib/shadcn_phlexcomponents/components/sidebar/sidebar_menu_sub_button.rb +0 -48
- data/lib/shadcn_phlexcomponents/components/sidebar/sidebar_menu_sub_item.rb +0 -9
- data/lib/shadcn_phlexcomponents/components/sidebar/sidebar_trigger.rb +0 -40
- data/lib/shadcn_phlexcomponents/components/switch/switch.rb +0 -66
- data/lib/shadcn_phlexcomponents/components/table/table.rb +0 -75
- data/lib/shadcn_phlexcomponents/components/table/table_body.rb +0 -11
- data/lib/shadcn_phlexcomponents/components/table/table_caption.rb +0 -11
- data/lib/shadcn_phlexcomponents/components/table/table_cell.rb +0 -11
- data/lib/shadcn_phlexcomponents/components/table/table_footer.rb +0 -11
- data/lib/shadcn_phlexcomponents/components/table/table_head.rb +0 -14
- data/lib/shadcn_phlexcomponents/components/table/table_header.rb +0 -11
- data/lib/shadcn_phlexcomponents/components/table/table_row.rb +0 -11
- data/lib/shadcn_phlexcomponents/components/tabs/tabs.rb +0 -38
- data/lib/shadcn_phlexcomponents/components/tabs/tabs_content.rb +0 -35
- data/lib/shadcn_phlexcomponents/components/tabs/tabs_list.rb +0 -23
- data/lib/shadcn_phlexcomponents/components/tabs/tabs_trigger.rb +0 -45
- data/lib/shadcn_phlexcomponents/components/textarea/textarea.rb +0 -29
- data/lib/shadcn_phlexcomponents/components/toast/toast.rb +0 -101
- data/lib/shadcn_phlexcomponents/components/toast/toast_action.rb +0 -39
- data/lib/shadcn_phlexcomponents/components/toast/toast_action_to.rb +0 -28
- data/lib/shadcn_phlexcomponents/components/toast/toast_content.rb +0 -11
- data/lib/shadcn_phlexcomponents/components/toast/toast_description.rb +0 -11
- data/lib/shadcn_phlexcomponents/components/toast/toast_title.rb +0 -11
- data/lib/shadcn_phlexcomponents/components/tooltip/tooltip.rb +0 -34
- data/lib/shadcn_phlexcomponents/components/tooltip/tooltip_content.rb +0 -39
- data/lib/shadcn_phlexcomponents/components/tooltip/tooltip_trigger.rb +0 -48
- /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-
|
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-
|
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-
|
125
|
-
|
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
|
-
|
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='
|
136
|
-
|
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
|
-
}
|