@moduix/solid-tailwind 1.0.0 → 1.1.1

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 (124) hide show
  1. package/dist/components/accordion/Accordion.js +19 -13
  2. package/dist/components/accordion/Accordion.jsx +7 -7
  3. package/dist/components/alert/Alert.js +19 -13
  4. package/dist/components/alert/Alert.jsx +7 -7
  5. package/dist/components/angle-slider/AngleSlider.d.ts +2 -6
  6. package/dist/components/angle-slider/AngleSlider.js +21 -16
  7. package/dist/components/angle-slider/AngleSlider.jsx +10 -11
  8. package/dist/components/avatar/Avatar.js +10 -7
  9. package/dist/components/avatar/Avatar.jsx +6 -6
  10. package/dist/components/bleed/Bleed.js +1 -1
  11. package/dist/components/bleed/Bleed.jsx +1 -1
  12. package/dist/components/button/Button.js +1 -6
  13. package/dist/components/button/Button.jsx +2 -4
  14. package/dist/components/card/Card.js +54 -44
  15. package/dist/components/card/Card.jsx +12 -12
  16. package/dist/components/carousel/Carousel.d.ts +1 -1
  17. package/dist/components/carousel/Carousel.js +32 -23
  18. package/dist/components/carousel/Carousel.jsx +12 -13
  19. package/dist/components/checkbox/Checkbox.js +16 -14
  20. package/dist/components/checkbox/Checkbox.jsx +6 -6
  21. package/dist/components/clipboard/Clipboard.js +28 -17
  22. package/dist/components/clipboard/Clipboard.jsx +12 -11
  23. package/dist/components/collapsible/Collapsible.js +16 -11
  24. package/dist/components/collapsible/Collapsible.jsx +6 -6
  25. package/dist/components/color-picker/ColorPicker.js +69 -48
  26. package/dist/components/color-picker/ColorPicker.jsx +28 -28
  27. package/dist/components/combobox/Combobox.js +44 -31
  28. package/dist/components/combobox/Combobox.jsx +18 -18
  29. package/dist/components/command-palette/CommandPalette.js +72 -53
  30. package/dist/components/command-palette/CommandPalette.jsx +29 -32
  31. package/dist/components/container/Container.js +5 -5
  32. package/dist/components/container/Container.jsx +5 -5
  33. package/dist/components/date-input/DateInput.js +18 -12
  34. package/dist/components/date-input/DateInput.jsx +7 -7
  35. package/dist/components/date-picker/DatePicker.js +73 -51
  36. package/dist/components/date-picker/DatePicker.jsx +29 -29
  37. package/dist/components/dialog/Dialog.js +30 -20
  38. package/dist/components/dialog/Dialog.jsx +10 -10
  39. package/dist/components/drawer/Drawer.js +45 -30
  40. package/dist/components/drawer/Drawer.jsx +15 -15
  41. package/dist/components/editable/Editable.js +24 -17
  42. package/dist/components/editable/Editable.jsx +10 -10
  43. package/dist/components/empty/Empty.js +1 -1
  44. package/dist/components/empty/Empty.jsx +1 -1
  45. package/dist/components/file-upload/FileUpload.js +39 -28
  46. package/dist/components/file-upload/FileUpload.jsx +17 -17
  47. package/dist/components/floating-panel/FloatingPanel.js +35 -23
  48. package/dist/components/floating-panel/FloatingPanel.jsx +12 -12
  49. package/dist/components/hover-card/HoverCard.js +16 -11
  50. package/dist/components/hover-card/HoverCard.jsx +6 -6
  51. package/dist/components/image-cropper/ImageCropper.js +21 -14
  52. package/dist/components/image-cropper/ImageCropper.jsx +7 -7
  53. package/dist/components/input-group/InputGroup.js +3 -2
  54. package/dist/components/input-group/InputGroup.jsx +3 -2
  55. package/dist/components/json-tree-view/JsonTreeView.js +1 -1
  56. package/dist/components/json-tree-view/JsonTreeView.jsx +1 -1
  57. package/dist/components/lightbox/Lightbox.d.ts +1 -0
  58. package/dist/components/lightbox/Lightbox.js +41 -27
  59. package/dist/components/lightbox/Lightbox.jsx +13 -12
  60. package/dist/components/listbox/Listbox.js +48 -32
  61. package/dist/components/listbox/Listbox.jsx +17 -17
  62. package/dist/components/marquee/Marquee.js +18 -12
  63. package/dist/components/marquee/Marquee.jsx +9 -9
  64. package/dist/components/menu/Menu.js +66 -44
  65. package/dist/components/menu/Menu.jsx +28 -28
  66. package/dist/components/navigation-menu/NavigationMenu.js +36 -24
  67. package/dist/components/navigation-menu/NavigationMenu.jsx +12 -12
  68. package/dist/components/number-input/NumberInput.js +19 -14
  69. package/dist/components/number-input/NumberInput.jsx +9 -9
  70. package/dist/components/pagination/Pagination.js +10 -9
  71. package/dist/components/pagination/Pagination.jsx +8 -8
  72. package/dist/components/password-input/PasswordInput.js +16 -11
  73. package/dist/components/password-input/PasswordInput.jsx +6 -6
  74. package/dist/components/pin-input/PinInput.js +15 -10
  75. package/dist/components/pin-input/PinInput.jsx +6 -6
  76. package/dist/components/popover/Popover.js +37 -25
  77. package/dist/components/popover/Popover.jsx +13 -13
  78. package/dist/components/progress-circular/ProgressCircular.js +18 -13
  79. package/dist/components/progress-circular/ProgressCircular.jsx +8 -8
  80. package/dist/components/progress-linear/ProgressLinear.js +17 -12
  81. package/dist/components/progress-linear/ProgressLinear.jsx +7 -7
  82. package/dist/components/qr-code/QrCode.js +8 -7
  83. package/dist/components/qr-code/QrCode.jsx +6 -6
  84. package/dist/components/rating-group/RatingGroup.js +15 -10
  85. package/dist/components/rating-group/RatingGroup.jsx +6 -6
  86. package/dist/components/segment-group/SegmentGroup.js +17 -12
  87. package/dist/components/segment-group/SegmentGroup.jsx +7 -7
  88. package/dist/components/select/Select.js +50 -35
  89. package/dist/components/select/Select.jsx +20 -20
  90. package/dist/components/sidebar/Sidebar.js +72 -43
  91. package/dist/components/sidebar/Sidebar.jsx +34 -27
  92. package/dist/components/signature-pad/SignaturePad.js +16 -12
  93. package/dist/components/signature-pad/SignaturePad.jsx +8 -8
  94. package/dist/components/slider/Slider.js +29 -20
  95. package/dist/components/slider/Slider.jsx +11 -11
  96. package/dist/components/split-button/SplitButton.d.ts +4 -3
  97. package/dist/components/split-button/SplitButton.js +20 -9
  98. package/dist/components/split-button/SplitButton.jsx +13 -7
  99. package/dist/components/splitter/Splitter.js +13 -9
  100. package/dist/components/splitter/Splitter.jsx +5 -5
  101. package/dist/components/steps/Steps.js +34 -23
  102. package/dist/components/steps/Steps.jsx +12 -12
  103. package/dist/components/swap/Swap.js +9 -6
  104. package/dist/components/swap/Swap.jsx +3 -3
  105. package/dist/components/switch/Switch.js +9 -7
  106. package/dist/components/switch/Switch.jsx +5 -5
  107. package/dist/components/tabs/Tabs.js +18 -12
  108. package/dist/components/tabs/Tabs.jsx +6 -6
  109. package/dist/components/tags-input/TagsInput.js +28 -20
  110. package/dist/components/tags-input/TagsInput.jsx +12 -12
  111. package/dist/components/timer/Timer.js +21 -14
  112. package/dist/components/timer/Timer.jsx +7 -7
  113. package/dist/components/toast/Toast.js +11 -9
  114. package/dist/components/toast/Toast.jsx +7 -7
  115. package/dist/components/toc/Toc.js +31 -20
  116. package/dist/components/toc/Toc.jsx +10 -10
  117. package/dist/components/tooltip/Tooltip.js +13 -9
  118. package/dist/components/tooltip/Tooltip.jsx +5 -5
  119. package/dist/components/tour/Tour.js +38 -26
  120. package/dist/components/tour/Tour.jsx +13 -13
  121. package/dist/components/tree-view/TreeView.js +39 -28
  122. package/dist/components/tree-view/TreeView.jsx +17 -17
  123. package/dist/styles/animations.css +8 -8
  124. package/package.json +10 -11
@@ -9,7 +9,6 @@ function TabsRoot(props) {
9
9
  'variant'
10
10
  ]);
11
11
  return createComponent(Tabs.Root, mergeProps({
12
- "data-slot": "tabs-root",
13
12
  get ["data-variant"] () {
14
13
  return memo(()=>'vertical' === local.orientation)() ? 'default' : local.variant ?? 'default';
15
14
  },
@@ -19,7 +18,9 @@ function TabsRoot(props) {
19
18
  get orientation () {
20
19
  return local.orientation;
21
20
  }
22
- }, others));
21
+ }, others, {
22
+ "data-slot": "tabs-root"
23
+ }));
23
24
  }
24
25
  function TabsRootProvider(props) {
25
26
  const [local, others] = splitProps(props, [
@@ -29,7 +30,6 @@ function TabsRootProvider(props) {
29
30
  ]);
30
31
  const orientation = ()=>local.value().getRootProps()['data-orientation'];
31
32
  return createComponent(Tabs.RootProvider, mergeProps({
32
- "data-slot": "tabs-root-provider",
33
33
  get ["data-variant"] () {
34
34
  return memo(()=>'vertical' === orientation())() ? 'default' : local.variant ?? 'default';
35
35
  },
@@ -39,51 +39,57 @@ function TabsRootProvider(props) {
39
39
  get value () {
40
40
  return local.value;
41
41
  }
42
- }, others));
42
+ }, others, {
43
+ "data-slot": "tabs-root-provider"
44
+ }));
43
45
  }
44
46
  function TabsList(props) {
45
47
  const [local, others] = splitProps(props, [
46
48
  'class'
47
49
  ]);
48
50
  return createComponent(Tabs.List, mergeProps({
49
- "data-slot": "tabs-list",
50
51
  get ["class"] () {
51
52
  return cn('relative z-0 inline-flex w-fit max-w-full items-stretch gap-1 rounded-lg border border-border bg-muted p-1 group-data-[orientation=horizontal]/tabs:overflow-x-auto group-data-[orientation=vertical]/tabs:w-48 group-data-[orientation=vertical]/tabs:min-w-48 group-data-[orientation=vertical]/tabs:flex-col group-data-[variant=line]/tabs:w-full group-data-[variant=line]/tabs:rounded-none group-data-[variant=line]/tabs:border-x-0 group-data-[variant=line]/tabs:border-t-0 group-data-[variant=line]/tabs:bg-transparent group-data-[variant=line]/tabs:px-0 group-data-[orientation=vertical]/tabs:max-[30rem]:w-2/5 group-data-[orientation=vertical]/tabs:max-[30rem]:min-w-0', local.class);
52
53
  }
53
- }, others));
54
+ }, others, {
55
+ "data-slot": "tabs-list"
56
+ }));
54
57
  }
55
58
  function TabsTrigger(props) {
56
59
  const [local, others] = splitProps(props, [
57
60
  'class'
58
61
  ]);
59
62
  return createComponent(Tabs.Trigger, mergeProps({
60
- "data-slot": "tabs-trigger",
61
63
  get ["class"] () {
62
64
  return cn("relative z-1 inline-flex h-8 cursor-pointer items-center justify-center gap-2 rounded-md border-0 bg-transparent px-2.5 text-sm leading-5 font-medium whitespace-nowrap text-muted-foreground no-underline outline-0 transition-[color,opacity] duration-200 ease-in-out select-none focus-visible:before:pointer-events-none focus-visible:before:absolute focus-visible:before:inset-0 focus-visible:before:rounded-[inherit] focus-visible:before:outline-1 focus-visible:before:outline-ring focus-visible:before:content-[''] disabled:pointer-events-none disabled:cursor-default disabled:opacity-50 data-disabled:pointer-events-none data-disabled:cursor-default data-disabled:opacity-50 data-selected:text-foreground motion-reduce:transition-none [&>svg]:size-4 [&>svg]:shrink-0 [@media(hover:hover)]:hover:text-foreground", local.class);
63
65
  }
64
- }, others));
66
+ }, others, {
67
+ "data-slot": "tabs-trigger"
68
+ }));
65
69
  }
66
70
  function TabsIndicator(props) {
67
71
  const [local, others] = splitProps(props, [
68
72
  'class'
69
73
  ]);
70
74
  return createComponent(Tabs.Indicator, mergeProps({
71
- "data-slot": "tabs-indicator",
72
75
  get ["class"] () {
73
76
  return cn('pointer-events-none absolute top-1/2 left-[var(--left,0)] z-0 h-8 w-[var(--width,0)] -translate-y-1/2 rounded-md bg-background shadow-sm transition-[var(--transition-property,translate)] duration-200 ease-in-out group-data-[orientation=vertical]/tabs:top-[var(--top,0)] group-data-[orientation=vertical]/tabs:left-1/2 group-data-[orientation=vertical]/tabs:h-[var(--height,0)] group-data-[orientation=vertical]/tabs:w-[calc(100%-0.5rem)] group-data-[orientation=vertical]/tabs:-translate-x-1/2 group-data-[orientation=vertical]/tabs:translate-y-0 group-data-[variant=line]/tabs:top-auto group-data-[variant=line]/tabs:bottom-0 group-data-[variant=line]/tabs:h-0.5 group-data-[variant=line]/tabs:[translate:none] group-data-[variant=line]/tabs:rounded-full group-data-[variant=line]/tabs:bg-foreground group-data-[variant=line]/tabs:shadow-none motion-reduce:transition-none', local.class);
74
77
  }
75
- }, others));
78
+ }, others, {
79
+ "data-slot": "tabs-indicator"
80
+ }));
76
81
  }
77
82
  function TabsContent(props) {
78
83
  const [local, others] = splitProps(props, [
79
84
  'class'
80
85
  ]);
81
86
  return createComponent(Tabs.Content, mergeProps({
82
- "data-slot": "tabs-content",
83
87
  get ["class"] () {
84
88
  return cn("box-border min-w-0 flex-1 rounded-lg border border-border bg-background p-4 text-sm leading-5 text-foreground outline-0 focus-visible:rounded-[inherit] focus-visible:outline-1 focus-visible:-outline-offset-1 focus-visible:outline-ring [&[hidden]:not([hidden='until-found'])]:hidden", local.class);
85
89
  }
86
- }, others));
90
+ }, others, {
91
+ "data-slot": "tabs-content"
92
+ }));
87
93
  }
88
94
  const Tabs_Tabs = Object.assign(TabsRoot, {
89
95
  Root: TabsRoot,
@@ -7,7 +7,7 @@ function TabsRoot(props) {
7
7
  'orientation',
8
8
  'variant'
9
9
  ]);
10
- return <Tabs.Root data-slot="tabs-root" data-variant={'vertical' === local.orientation ? 'default' : local.variant ?? 'default'} class={cn('group/tabs box-border flex w-full min-w-0 flex-col gap-3 text-foreground data-[orientation=vertical]:flex-row data-[orientation=vertical]:items-stretch', local.class)} orientation={local.orientation} {...others}/>;
10
+ return <Tabs.Root data-variant={'vertical' === local.orientation ? 'default' : local.variant ?? 'default'} class={cn('group/tabs box-border flex w-full min-w-0 flex-col gap-3 text-foreground data-[orientation=vertical]:flex-row data-[orientation=vertical]:items-stretch', local.class)} orientation={local.orientation} {...others} data-slot="tabs-root"/>;
11
11
  }
12
12
  function TabsRootProvider(props) {
13
13
  const [local, others] = splitProps(props, [
@@ -16,31 +16,31 @@ function TabsRootProvider(props) {
16
16
  'variant'
17
17
  ]);
18
18
  const orientation = ()=>local.value().getRootProps()['data-orientation'];
19
- return <Tabs.RootProvider data-slot="tabs-root-provider" data-variant={'vertical' === orientation() ? 'default' : local.variant ?? 'default'} class={cn('group/tabs box-border flex w-full min-w-0 flex-col gap-3 text-foreground data-[orientation=vertical]:flex-row data-[orientation=vertical]:items-stretch', local.class)} value={local.value} {...others}/>;
19
+ return <Tabs.RootProvider data-variant={'vertical' === orientation() ? 'default' : local.variant ?? 'default'} class={cn('group/tabs box-border flex w-full min-w-0 flex-col gap-3 text-foreground data-[orientation=vertical]:flex-row data-[orientation=vertical]:items-stretch', local.class)} value={local.value} {...others} data-slot="tabs-root-provider"/>;
20
20
  }
21
21
  function TabsList(props) {
22
22
  const [local, others] = splitProps(props, [
23
23
  'class'
24
24
  ]);
25
- return <Tabs.List data-slot="tabs-list" class={cn('relative z-0 inline-flex w-fit max-w-full items-stretch gap-1 rounded-lg border border-border bg-muted p-1 group-data-[orientation=horizontal]/tabs:overflow-x-auto group-data-[orientation=vertical]/tabs:w-48 group-data-[orientation=vertical]/tabs:min-w-48 group-data-[orientation=vertical]/tabs:flex-col group-data-[variant=line]/tabs:w-full group-data-[variant=line]/tabs:rounded-none group-data-[variant=line]/tabs:border-x-0 group-data-[variant=line]/tabs:border-t-0 group-data-[variant=line]/tabs:bg-transparent group-data-[variant=line]/tabs:px-0 group-data-[orientation=vertical]/tabs:max-[30rem]:w-2/5 group-data-[orientation=vertical]/tabs:max-[30rem]:min-w-0', local.class)} {...others}/>;
25
+ return <Tabs.List class={cn('relative z-0 inline-flex w-fit max-w-full items-stretch gap-1 rounded-lg border border-border bg-muted p-1 group-data-[orientation=horizontal]/tabs:overflow-x-auto group-data-[orientation=vertical]/tabs:w-48 group-data-[orientation=vertical]/tabs:min-w-48 group-data-[orientation=vertical]/tabs:flex-col group-data-[variant=line]/tabs:w-full group-data-[variant=line]/tabs:rounded-none group-data-[variant=line]/tabs:border-x-0 group-data-[variant=line]/tabs:border-t-0 group-data-[variant=line]/tabs:bg-transparent group-data-[variant=line]/tabs:px-0 group-data-[orientation=vertical]/tabs:max-[30rem]:w-2/5 group-data-[orientation=vertical]/tabs:max-[30rem]:min-w-0', local.class)} {...others} data-slot="tabs-list"/>;
26
26
  }
27
27
  function TabsTrigger(props) {
28
28
  const [local, others] = splitProps(props, [
29
29
  'class'
30
30
  ]);
31
- return <Tabs.Trigger data-slot="tabs-trigger" class={cn("relative z-1 inline-flex h-8 cursor-pointer items-center justify-center gap-2 rounded-md border-0 bg-transparent px-2.5 text-sm leading-5 font-medium whitespace-nowrap text-muted-foreground no-underline outline-0 transition-[color,opacity] duration-200 ease-in-out select-none focus-visible:before:pointer-events-none focus-visible:before:absolute focus-visible:before:inset-0 focus-visible:before:rounded-[inherit] focus-visible:before:outline-1 focus-visible:before:outline-ring focus-visible:before:content-[''] disabled:pointer-events-none disabled:cursor-default disabled:opacity-50 data-disabled:pointer-events-none data-disabled:cursor-default data-disabled:opacity-50 data-selected:text-foreground motion-reduce:transition-none [&>svg]:size-4 [&>svg]:shrink-0 [@media(hover:hover)]:hover:text-foreground", local.class)} {...others}/>;
31
+ return <Tabs.Trigger class={cn("relative z-1 inline-flex h-8 cursor-pointer items-center justify-center gap-2 rounded-md border-0 bg-transparent px-2.5 text-sm leading-5 font-medium whitespace-nowrap text-muted-foreground no-underline outline-0 transition-[color,opacity] duration-200 ease-in-out select-none focus-visible:before:pointer-events-none focus-visible:before:absolute focus-visible:before:inset-0 focus-visible:before:rounded-[inherit] focus-visible:before:outline-1 focus-visible:before:outline-ring focus-visible:before:content-[''] disabled:pointer-events-none disabled:cursor-default disabled:opacity-50 data-disabled:pointer-events-none data-disabled:cursor-default data-disabled:opacity-50 data-selected:text-foreground motion-reduce:transition-none [&>svg]:size-4 [&>svg]:shrink-0 [@media(hover:hover)]:hover:text-foreground", local.class)} {...others} data-slot="tabs-trigger"/>;
32
32
  }
33
33
  function TabsIndicator(props) {
34
34
  const [local, others] = splitProps(props, [
35
35
  'class'
36
36
  ]);
37
- return <Tabs.Indicator data-slot="tabs-indicator" class={cn('pointer-events-none absolute top-1/2 left-[var(--left,0)] z-0 h-8 w-[var(--width,0)] -translate-y-1/2 rounded-md bg-background shadow-sm transition-[var(--transition-property,translate)] duration-200 ease-in-out group-data-[orientation=vertical]/tabs:top-[var(--top,0)] group-data-[orientation=vertical]/tabs:left-1/2 group-data-[orientation=vertical]/tabs:h-[var(--height,0)] group-data-[orientation=vertical]/tabs:w-[calc(100%-0.5rem)] group-data-[orientation=vertical]/tabs:-translate-x-1/2 group-data-[orientation=vertical]/tabs:translate-y-0 group-data-[variant=line]/tabs:top-auto group-data-[variant=line]/tabs:bottom-0 group-data-[variant=line]/tabs:h-0.5 group-data-[variant=line]/tabs:[translate:none] group-data-[variant=line]/tabs:rounded-full group-data-[variant=line]/tabs:bg-foreground group-data-[variant=line]/tabs:shadow-none motion-reduce:transition-none', local.class)} {...others}/>;
37
+ return <Tabs.Indicator class={cn('pointer-events-none absolute top-1/2 left-[var(--left,0)] z-0 h-8 w-[var(--width,0)] -translate-y-1/2 rounded-md bg-background shadow-sm transition-[var(--transition-property,translate)] duration-200 ease-in-out group-data-[orientation=vertical]/tabs:top-[var(--top,0)] group-data-[orientation=vertical]/tabs:left-1/2 group-data-[orientation=vertical]/tabs:h-[var(--height,0)] group-data-[orientation=vertical]/tabs:w-[calc(100%-0.5rem)] group-data-[orientation=vertical]/tabs:-translate-x-1/2 group-data-[orientation=vertical]/tabs:translate-y-0 group-data-[variant=line]/tabs:top-auto group-data-[variant=line]/tabs:bottom-0 group-data-[variant=line]/tabs:h-0.5 group-data-[variant=line]/tabs:[translate:none] group-data-[variant=line]/tabs:rounded-full group-data-[variant=line]/tabs:bg-foreground group-data-[variant=line]/tabs:shadow-none motion-reduce:transition-none', local.class)} {...others} data-slot="tabs-indicator"/>;
38
38
  }
39
39
  function TabsContent(props) {
40
40
  const [local, others] = splitProps(props, [
41
41
  'class'
42
42
  ]);
43
- return <Tabs.Content data-slot="tabs-content" class={cn("box-border min-w-0 flex-1 rounded-lg border border-border bg-background p-4 text-sm leading-5 text-foreground outline-0 focus-visible:rounded-[inherit] focus-visible:outline-1 focus-visible:-outline-offset-1 focus-visible:outline-ring [&[hidden]:not([hidden='until-found'])]:hidden", local.class)} {...others}/>;
43
+ return <Tabs.Content class={cn("box-border min-w-0 flex-1 rounded-lg border border-border bg-background p-4 text-sm leading-5 text-foreground outline-0 focus-visible:rounded-[inherit] focus-visible:outline-1 focus-visible:-outline-offset-1 focus-visible:outline-ring [&[hidden]:not([hidden='until-found'])]:hidden", local.class)} {...others} data-slot="tabs-content"/>;
44
44
  }
45
45
  const Tabs_Tabs = Object.assign(TabsRoot, {
46
46
  Root: TabsRoot,
@@ -14,11 +14,11 @@ function TagsInputRoot(props) {
14
14
  get asChild () {
15
15
  return local.asChild;
16
16
  },
17
- "data-slot": "tags-input-root",
18
17
  get ["class"] () {
19
18
  return cn('flex w-full max-w-96 flex-col gap-1 text-foreground data-disabled:opacity-50', local.class);
20
19
  }
21
20
  }, others, {
21
+ "data-slot": "tags-input-root",
22
22
  get children () {
23
23
  return local.children;
24
24
  }
@@ -34,11 +34,11 @@ function TagsInputRootProvider(props) {
34
34
  get asChild () {
35
35
  return local.asChild;
36
36
  },
37
- "data-slot": "tags-input-root-provider",
38
37
  get ["class"] () {
39
38
  return cn('flex w-full max-w-96 flex-col gap-1 text-foreground data-disabled:opacity-50', local.class);
40
39
  }
41
40
  }, others, {
41
+ "data-slot": "tags-input-root-provider",
42
42
  get children () {
43
43
  return local.children;
44
44
  }
@@ -49,55 +49,60 @@ function TagsInputLabel(props) {
49
49
  'class'
50
50
  ]);
51
51
  return createComponent(TagsInput.Label, mergeProps({
52
- "data-slot": "tags-input-label",
53
52
  get ["class"] () {
54
53
  return cn('inline-flex items-center gap-1 text-sm leading-5 font-medium text-foreground data-disabled:opacity-50', local.class);
55
54
  }
56
- }, others));
55
+ }, others, {
56
+ "data-slot": "tags-input-label"
57
+ }));
57
58
  }
58
59
  function TagsInputControl(props) {
59
60
  const [local, others] = splitProps(props, [
60
61
  'class'
61
62
  ]);
62
63
  return createComponent(TagsInput.Control, mergeProps({
63
- "data-slot": "tags-input-control",
64
64
  get ["class"] () {
65
65
  return cn('flex min-h-control-md w-full flex-wrap items-center gap-1 rounded-md border border-border bg-background px-2 py-[0.3125rem] text-foreground outline-1 -outline-offset-1 outline-transparent transition-[border-color,outline-color,background-color,opacity] duration-200 ease-in-out data-disabled:pointer-events-none data-focus:outline-ring data-invalid:border-destructive data-invalid:data-focus:outline-destructive data-readonly:bg-background data-readonly:text-foreground motion-reduce:transition-none', local.class);
66
66
  }
67
- }, others));
67
+ }, others, {
68
+ "data-slot": "tags-input-control"
69
+ }));
68
70
  }
69
71
  function TagsInputItem(props) {
70
72
  const [local, others] = splitProps(props, [
71
73
  'class'
72
74
  ]);
73
75
  return createComponent(TagsInput.Item, mergeProps({
74
- "data-slot": "tags-input-item",
75
76
  get ["class"] () {
76
77
  return cn('contents', local.class);
77
78
  }
78
- }, others));
79
+ }, others, {
80
+ "data-slot": "tags-input-item"
81
+ }));
79
82
  }
80
83
  function TagsInputItemPreview(props) {
81
84
  const [local, others] = splitProps(props, [
82
85
  'class'
83
86
  ]);
84
87
  return createComponent(TagsInput.ItemPreview, mergeProps({
85
- "data-slot": "tags-input-item-preview",
86
88
  get ["class"] () {
87
89
  return cn('inline-flex min-h-control-xs max-w-full min-w-0 items-center gap-1 rounded-full border border-transparent bg-secondary px-2 py-0.5 text-xs leading-4 font-medium text-secondary-foreground transition-[border-color,background-color,color,box-shadow] duration-200 ease-in-out data-disabled:opacity-50 data-highlighted:ring-1 data-highlighted:ring-ring motion-reduce:transition-none', local.class);
88
90
  }
89
- }, others));
91
+ }, others, {
92
+ "data-slot": "tags-input-item-preview"
93
+ }));
90
94
  }
91
95
  function TagsInputItemText(props) {
92
96
  const [local, others] = splitProps(props, [
93
97
  'class'
94
98
  ]);
95
99
  return createComponent(TagsInput.ItemText, mergeProps({
96
- "data-slot": "tags-input-item-text",
97
100
  get ["class"] () {
98
101
  return cn('min-w-0 truncate', local.class);
99
102
  }
100
- }, others));
103
+ }, others, {
104
+ "data-slot": "tags-input-item-text"
105
+ }));
101
106
  }
102
107
  function TagsInputItemDeleteTrigger(props) {
103
108
  const [local, others] = splitProps(props, [
@@ -106,11 +111,11 @@ function TagsInputItemDeleteTrigger(props) {
106
111
  ]);
107
112
  const resolvedChildren = children(()=>local.children);
108
113
  return createComponent(TagsInput.ItemDeleteTrigger, mergeProps({
109
- "data-slot": "tags-input-item-delete-trigger",
110
114
  get ["class"] () {
111
115
  return cn('inline-flex size-4 shrink-0 cursor-pointer items-center justify-center rounded-full border-0 bg-transparent p-0 text-inherit outline-0 transition-[background-color,color,opacity,box-shadow] duration-200 ease-in-out focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:cursor-default disabled:opacity-50 data-disabled:pointer-events-none data-disabled:cursor-default data-disabled:opacity-50 motion-reduce:transition-none [&>svg]:pointer-events-none [&>svg]:size-2.5 [&>svg]:shrink-0 [@media(hover:hover)]:hover:bg-current/10', local.class);
112
116
  }
113
117
  }, others, {
118
+ "data-slot": "tags-input-item-delete-trigger",
114
119
  get children () {
115
120
  return resolvedChildren() ?? createComponent(CloseIcon, {});
116
121
  }
@@ -121,22 +126,24 @@ function TagsInputItemInput(props) {
121
126
  'class'
122
127
  ]);
123
128
  return createComponent(TagsInput.ItemInput, mergeProps({
124
- "data-slot": "tags-input-item-input",
125
129
  get ["class"] () {
126
130
  return cn('h-control-xs min-w-28 shrink grow-0 basis-28 border-0 bg-transparent px-1 text-sm leading-5 text-inherit outline-0 placeholder:text-muted-foreground read-only:cursor-default data-readonly:cursor-default', local.class);
127
131
  }
128
- }, others));
132
+ }, others, {
133
+ "data-slot": "tags-input-item-input"
134
+ }));
129
135
  }
130
136
  function TagsInputInput(props) {
131
137
  const [local, others] = splitProps(props, [
132
138
  'class'
133
139
  ]);
134
140
  return createComponent(TagsInput.Input, mergeProps({
135
- "data-slot": "tags-input-input",
136
141
  get ["class"] () {
137
142
  return cn('h-control-xs min-w-28 shrink grow basis-28 border-0 bg-transparent px-1 text-sm leading-5 text-inherit outline-0 placeholder:text-muted-foreground read-only:cursor-default data-readonly:hidden data-readonly:cursor-default', local.class);
138
143
  }
139
- }, others));
144
+ }, others, {
145
+ "data-slot": "tags-input-input"
146
+ }));
140
147
  }
141
148
  function TagsInputClearTrigger(props) {
142
149
  const [local, others] = splitProps(props, [
@@ -153,7 +160,6 @@ function TagsInputClearTrigger(props) {
153
160
  get asChild () {
154
161
  return local.asChild;
155
162
  },
156
- "data-slot": "tags-input-clear-trigger",
157
163
  get ["class"] () {
158
164
  return cn('ms-auto shrink-0 self-center data-readonly:hidden', local.class);
159
165
  },
@@ -164,6 +170,7 @@ function TagsInputClearTrigger(props) {
164
170
  return local['aria-labelledby'];
165
171
  }
166
172
  }, others, {
173
+ "data-slot": "tags-input-clear-trigger",
167
174
  get children () {
168
175
  return local.children;
169
176
  }
@@ -183,11 +190,12 @@ function TagsInputClearTrigger(props) {
183
190
  return resolvedChildren();
184
191
  }
185
192
  })),
186
- "data-slot": "tags-input-clear-trigger",
187
193
  get ["class"] () {
188
194
  return cn('ms-auto size-control-xs shrink-0 self-center rounded-sm bg-transparent text-muted-foreground transition-[background-color,color,opacity] duration-200 ease-in-out focus-visible:outline-1 focus-visible:outline-offset-1 focus-visible:outline-ring data-readonly:hidden motion-reduce:transition-none [&>svg]:size-3 [@media(hover:hover)]:hover:bg-muted [@media(hover:hover)]:hover:text-foreground', local.class);
189
195
  }
190
- }, others));
196
+ }, others, {
197
+ "data-slot": "tags-input-clear-trigger"
198
+ }));
191
199
  }
192
200
  const TagsInputContext = TagsInput.Context;
193
201
  function TagsInputItems() {
@@ -9,7 +9,7 @@ function TagsInputRoot(props) {
9
9
  'children',
10
10
  'class'
11
11
  ]);
12
- return <TagsInput.Root asChild={local.asChild} data-slot="tags-input-root" class={cn('flex w-full max-w-96 flex-col gap-1 text-foreground data-disabled:opacity-50', local.class)} {...others}>
12
+ return <TagsInput.Root asChild={local.asChild} class={cn('flex w-full max-w-96 flex-col gap-1 text-foreground data-disabled:opacity-50', local.class)} {...others} data-slot="tags-input-root">
13
13
  {local.children}
14
14
  </TagsInput.Root>;
15
15
  }
@@ -19,7 +19,7 @@ function TagsInputRootProvider(props) {
19
19
  'children',
20
20
  'class'
21
21
  ]);
22
- return <TagsInput.RootProvider asChild={local.asChild} data-slot="tags-input-root-provider" class={cn('flex w-full max-w-96 flex-col gap-1 text-foreground data-disabled:opacity-50', local.class)} {...others}>
22
+ return <TagsInput.RootProvider asChild={local.asChild} class={cn('flex w-full max-w-96 flex-col gap-1 text-foreground data-disabled:opacity-50', local.class)} {...others} data-slot="tags-input-root-provider">
23
23
  {local.children}
24
24
  </TagsInput.RootProvider>;
25
25
  }
@@ -27,31 +27,31 @@ function TagsInputLabel(props) {
27
27
  const [local, others] = splitProps(props, [
28
28
  'class'
29
29
  ]);
30
- return <TagsInput.Label data-slot="tags-input-label" class={cn('inline-flex items-center gap-1 text-sm leading-5 font-medium text-foreground data-disabled:opacity-50', local.class)} {...others}/>;
30
+ return <TagsInput.Label class={cn('inline-flex items-center gap-1 text-sm leading-5 font-medium text-foreground data-disabled:opacity-50', local.class)} {...others} data-slot="tags-input-label"/>;
31
31
  }
32
32
  function TagsInputControl(props) {
33
33
  const [local, others] = splitProps(props, [
34
34
  'class'
35
35
  ]);
36
- return <TagsInput.Control data-slot="tags-input-control" class={cn('flex min-h-control-md w-full flex-wrap items-center gap-1 rounded-md border border-border bg-background px-2 py-[0.3125rem] text-foreground outline-1 -outline-offset-1 outline-transparent transition-[border-color,outline-color,background-color,opacity] duration-200 ease-in-out data-disabled:pointer-events-none data-focus:outline-ring data-invalid:border-destructive data-invalid:data-focus:outline-destructive data-readonly:bg-background data-readonly:text-foreground motion-reduce:transition-none', local.class)} {...others}/>;
36
+ return <TagsInput.Control class={cn('flex min-h-control-md w-full flex-wrap items-center gap-1 rounded-md border border-border bg-background px-2 py-[0.3125rem] text-foreground outline-1 -outline-offset-1 outline-transparent transition-[border-color,outline-color,background-color,opacity] duration-200 ease-in-out data-disabled:pointer-events-none data-focus:outline-ring data-invalid:border-destructive data-invalid:data-focus:outline-destructive data-readonly:bg-background data-readonly:text-foreground motion-reduce:transition-none', local.class)} {...others} data-slot="tags-input-control"/>;
37
37
  }
38
38
  function TagsInputItem(props) {
39
39
  const [local, others] = splitProps(props, [
40
40
  'class'
41
41
  ]);
42
- return <TagsInput.Item data-slot="tags-input-item" class={cn('contents', local.class)} {...others}/>;
42
+ return <TagsInput.Item class={cn('contents', local.class)} {...others} data-slot="tags-input-item"/>;
43
43
  }
44
44
  function TagsInputItemPreview(props) {
45
45
  const [local, others] = splitProps(props, [
46
46
  'class'
47
47
  ]);
48
- return <TagsInput.ItemPreview data-slot="tags-input-item-preview" class={cn('inline-flex min-h-control-xs max-w-full min-w-0 items-center gap-1 rounded-full border border-transparent bg-secondary px-2 py-0.5 text-xs leading-4 font-medium text-secondary-foreground transition-[border-color,background-color,color,box-shadow] duration-200 ease-in-out data-disabled:opacity-50 data-highlighted:ring-1 data-highlighted:ring-ring motion-reduce:transition-none', local.class)} {...others}/>;
48
+ return <TagsInput.ItemPreview class={cn('inline-flex min-h-control-xs max-w-full min-w-0 items-center gap-1 rounded-full border border-transparent bg-secondary px-2 py-0.5 text-xs leading-4 font-medium text-secondary-foreground transition-[border-color,background-color,color,box-shadow] duration-200 ease-in-out data-disabled:opacity-50 data-highlighted:ring-1 data-highlighted:ring-ring motion-reduce:transition-none', local.class)} {...others} data-slot="tags-input-item-preview"/>;
49
49
  }
50
50
  function TagsInputItemText(props) {
51
51
  const [local, others] = splitProps(props, [
52
52
  'class'
53
53
  ]);
54
- return <TagsInput.ItemText data-slot="tags-input-item-text" class={cn('min-w-0 truncate', local.class)} {...others}/>;
54
+ return <TagsInput.ItemText class={cn('min-w-0 truncate', local.class)} {...others} data-slot="tags-input-item-text"/>;
55
55
  }
56
56
  function TagsInputItemDeleteTrigger(props) {
57
57
  const [local, others] = splitProps(props, [
@@ -59,7 +59,7 @@ function TagsInputItemDeleteTrigger(props) {
59
59
  'class'
60
60
  ]);
61
61
  const resolvedChildren = children(()=>local.children);
62
- return <TagsInput.ItemDeleteTrigger data-slot="tags-input-item-delete-trigger" class={cn('inline-flex size-4 shrink-0 cursor-pointer items-center justify-center rounded-full border-0 bg-transparent p-0 text-inherit outline-0 transition-[background-color,color,opacity,box-shadow] duration-200 ease-in-out focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:cursor-default disabled:opacity-50 data-disabled:pointer-events-none data-disabled:cursor-default data-disabled:opacity-50 motion-reduce:transition-none [&>svg]:pointer-events-none [&>svg]:size-2.5 [&>svg]:shrink-0 [@media(hover:hover)]:hover:bg-current/10', local.class)} {...others}>
62
+ return <TagsInput.ItemDeleteTrigger class={cn('inline-flex size-4 shrink-0 cursor-pointer items-center justify-center rounded-full border-0 bg-transparent p-0 text-inherit outline-0 transition-[background-color,color,opacity,box-shadow] duration-200 ease-in-out focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:cursor-default disabled:opacity-50 data-disabled:pointer-events-none data-disabled:cursor-default data-disabled:opacity-50 motion-reduce:transition-none [&>svg]:pointer-events-none [&>svg]:size-2.5 [&>svg]:shrink-0 [@media(hover:hover)]:hover:bg-current/10', local.class)} {...others} data-slot="tags-input-item-delete-trigger">
63
63
  {resolvedChildren() ?? <CloseIcon/>}
64
64
  </TagsInput.ItemDeleteTrigger>;
65
65
  }
@@ -67,13 +67,13 @@ function TagsInputItemInput(props) {
67
67
  const [local, others] = splitProps(props, [
68
68
  'class'
69
69
  ]);
70
- return <TagsInput.ItemInput data-slot="tags-input-item-input" class={cn('h-control-xs min-w-28 shrink grow-0 basis-28 border-0 bg-transparent px-1 text-sm leading-5 text-inherit outline-0 placeholder:text-muted-foreground read-only:cursor-default data-readonly:cursor-default', local.class)} {...others}/>;
70
+ return <TagsInput.ItemInput class={cn('h-control-xs min-w-28 shrink grow-0 basis-28 border-0 bg-transparent px-1 text-sm leading-5 text-inherit outline-0 placeholder:text-muted-foreground read-only:cursor-default data-readonly:cursor-default', local.class)} {...others} data-slot="tags-input-item-input"/>;
71
71
  }
72
72
  function TagsInputInput(props) {
73
73
  const [local, others] = splitProps(props, [
74
74
  'class'
75
75
  ]);
76
- return <TagsInput.Input data-slot="tags-input-input" class={cn('h-control-xs min-w-28 shrink grow basis-28 border-0 bg-transparent px-1 text-sm leading-5 text-inherit outline-0 placeholder:text-muted-foreground read-only:cursor-default data-readonly:hidden data-readonly:cursor-default', local.class)} {...others}/>;
76
+ return <TagsInput.Input class={cn('h-control-xs min-w-28 shrink grow basis-28 border-0 bg-transparent px-1 text-sm leading-5 text-inherit outline-0 placeholder:text-muted-foreground read-only:cursor-default data-readonly:hidden data-readonly:cursor-default', local.class)} {...others} data-slot="tags-input-input"/>;
77
77
  }
78
78
  function TagsInputClearTrigger(props) {
79
79
  const [local, others] = splitProps(props, [
@@ -86,12 +86,12 @@ function TagsInputClearTrigger(props) {
86
86
  const tagsInput = useTagsInputContext();
87
87
  const resolvedChildren = children(()=>local.children);
88
88
  const clearTriggerLabel = ()=>tagsInput().getClearTriggerProps()['aria-label'];
89
- if (local.asChild) return <TagsInput.ClearTrigger asChild={local.asChild} data-slot="tags-input-clear-trigger" class={cn('ms-auto shrink-0 self-center data-readonly:hidden', local.class)} aria-label={local['aria-label']} aria-labelledby={local['aria-labelledby']} {...others}>
89
+ if (local.asChild) return <TagsInput.ClearTrigger asChild={local.asChild} class={cn('ms-auto shrink-0 self-center data-readonly:hidden', local.class)} aria-label={local['aria-label']} aria-labelledby={local['aria-labelledby']} {...others} data-slot="tags-input-clear-trigger">
90
90
  {local.children}
91
91
  </TagsInput.ClearTrigger>;
92
92
  return <TagsInput.ClearTrigger asChild={(triggerProps)=><CloseButton.Root {...triggerProps()} aria-label={local['aria-label'] ?? clearTriggerLabel()} aria-labelledby={local['aria-labelledby']} data-part="clear-trigger" data-scope="tags-input" data-slot="tags-input-clear-trigger">
93
93
  {resolvedChildren()}
94
- </CloseButton.Root>} data-slot="tags-input-clear-trigger" class={cn('ms-auto size-control-xs shrink-0 self-center rounded-sm bg-transparent text-muted-foreground transition-[background-color,color,opacity] duration-200 ease-in-out focus-visible:outline-1 focus-visible:outline-offset-1 focus-visible:outline-ring data-readonly:hidden motion-reduce:transition-none [&>svg]:size-3 [@media(hover:hover)]:hover:bg-muted [@media(hover:hover)]:hover:text-foreground', local.class)} {...others}/>;
94
+ </CloseButton.Root>} class={cn('ms-auto size-control-xs shrink-0 self-center rounded-sm bg-transparent text-muted-foreground transition-[background-color,color,opacity] duration-200 ease-in-out focus-visible:outline-1 focus-visible:outline-offset-1 focus-visible:outline-ring data-readonly:hidden motion-reduce:transition-none [&>svg]:size-3 [@media(hover:hover)]:hover:bg-muted [@media(hover:hover)]:hover:text-foreground', local.class)} {...others} data-slot="tags-input-clear-trigger"/>;
95
95
  }
96
96
  const TagsInputContext = TagsInput.Context;
97
97
  function TagsInputItems() {
@@ -7,77 +7,84 @@ function TimerRoot(props) {
7
7
  'class'
8
8
  ]);
9
9
  return createComponent(Timer.Root, mergeProps({
10
- "data-slot": "timer-root",
11
10
  get ["class"] () {
12
11
  return cn('inline-grid w-max max-w-full place-items-center gap-3 text-foreground', local.class);
13
12
  }
14
- }, others));
13
+ }, others, {
14
+ "data-slot": "timer-root"
15
+ }));
15
16
  }
16
17
  function TimerRootProvider(props) {
17
18
  const [local, others] = splitProps(props, [
18
19
  'class'
19
20
  ]);
20
21
  return createComponent(Timer.RootProvider, mergeProps({
21
- "data-slot": "timer-root-provider",
22
22
  get ["class"] () {
23
23
  return cn('inline-grid w-max max-w-full place-items-center gap-3 text-foreground', local.class);
24
24
  }
25
- }, others));
25
+ }, others, {
26
+ "data-slot": "timer-root-provider"
27
+ }));
26
28
  }
27
29
  function TimerArea(props) {
28
30
  const [local, others] = splitProps(props, [
29
31
  'class'
30
32
  ]);
31
33
  return createComponent(Timer.Area, mergeProps({
32
- "data-slot": "timer-area",
33
34
  get ["class"] () {
34
35
  return cn('inline-flex max-w-full min-w-0 flex-wrap items-baseline justify-center gap-1 text-2xl leading-5 font-semibold tracking-normal tabular-nums', local.class);
35
36
  }
36
- }, others));
37
+ }, others, {
38
+ "data-slot": "timer-area"
39
+ }));
37
40
  }
38
41
  function TimerItem(props) {
39
42
  const [local, others] = splitProps(props, [
40
43
  'class'
41
44
  ]);
42
45
  return createComponent(Timer.Item, mergeProps({
43
- "data-slot": "timer-item",
44
46
  get ["class"] () {
45
47
  return cn('min-w-[2ch] text-center', local.class);
46
48
  }
47
- }, others));
49
+ }, others, {
50
+ "data-slot": "timer-item"
51
+ }));
48
52
  }
49
53
  function TimerSeparator(props) {
50
54
  const [local, others] = splitProps(props, [
51
55
  'class'
52
56
  ]);
53
57
  return createComponent(Timer.Separator, mergeProps({
54
- "data-slot": "timer-separator",
55
58
  get ["class"] () {
56
59
  return cn('text-muted-foreground', local.class);
57
60
  }
58
- }, others));
61
+ }, others, {
62
+ "data-slot": "timer-separator"
63
+ }));
59
64
  }
60
65
  function TimerControl(props) {
61
66
  const [local, others] = splitProps(props, [
62
67
  'class'
63
68
  ]);
64
69
  return createComponent(Timer.Control, mergeProps({
65
- "data-slot": "timer-control",
66
70
  get ["class"] () {
67
71
  return cn('inline-flex flex-wrap items-center gap-2', local.class);
68
72
  }
69
- }, others));
73
+ }, others, {
74
+ "data-slot": "timer-control"
75
+ }));
70
76
  }
71
77
  function TimerActionTrigger(props) {
72
78
  const [local, others] = splitProps(props, [
73
79
  'class'
74
80
  ]);
75
81
  return createComponent(Timer.ActionTrigger, mergeProps({
76
- "data-slot": "timer-action-trigger",
77
82
  get ["class"] () {
78
83
  return cn('inline-flex min-h-control-md cursor-pointer appearance-none items-center justify-center gap-2 rounded-md border border-border bg-background px-3 py-1.5 text-sm leading-5 font-medium whitespace-nowrap text-foreground transition-[background-color,border-color,color,opacity,box-shadow] duration-200 ease-in-out focus-visible:outline-2 focus-visible:-outline-offset-1 focus-visible:outline-ring disabled:pointer-events-none disabled:cursor-default disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:cursor-default aria-disabled:opacity-50 [&_svg]:size-4 [&_svg]:shrink-0 [@media(hover:hover)]:hover:bg-accent', local.class);
79
84
  }
80
- }, others));
85
+ }, others, {
86
+ "data-slot": "timer-action-trigger"
87
+ }));
81
88
  }
82
89
  const defaultTimerSegmentTypes = [
83
90
  'hours',
@@ -5,43 +5,43 @@ function TimerRoot(props) {
5
5
  const [local, others] = splitProps(props, [
6
6
  'class'
7
7
  ]);
8
- return <Timer.Root data-slot="timer-root" class={cn('inline-grid w-max max-w-full place-items-center gap-3 text-foreground', local.class)} {...others}/>;
8
+ return <Timer.Root class={cn('inline-grid w-max max-w-full place-items-center gap-3 text-foreground', local.class)} {...others} data-slot="timer-root"/>;
9
9
  }
10
10
  function TimerRootProvider(props) {
11
11
  const [local, others] = splitProps(props, [
12
12
  'class'
13
13
  ]);
14
- return <Timer.RootProvider data-slot="timer-root-provider" class={cn('inline-grid w-max max-w-full place-items-center gap-3 text-foreground', local.class)} {...others}/>;
14
+ return <Timer.RootProvider class={cn('inline-grid w-max max-w-full place-items-center gap-3 text-foreground', local.class)} {...others} data-slot="timer-root-provider"/>;
15
15
  }
16
16
  function TimerArea(props) {
17
17
  const [local, others] = splitProps(props, [
18
18
  'class'
19
19
  ]);
20
- return <Timer.Area data-slot="timer-area" class={cn('inline-flex max-w-full min-w-0 flex-wrap items-baseline justify-center gap-1 text-2xl leading-5 font-semibold tracking-normal tabular-nums', local.class)} {...others}/>;
20
+ return <Timer.Area class={cn('inline-flex max-w-full min-w-0 flex-wrap items-baseline justify-center gap-1 text-2xl leading-5 font-semibold tracking-normal tabular-nums', local.class)} {...others} data-slot="timer-area"/>;
21
21
  }
22
22
  function TimerItem(props) {
23
23
  const [local, others] = splitProps(props, [
24
24
  'class'
25
25
  ]);
26
- return <Timer.Item data-slot="timer-item" class={cn('min-w-[2ch] text-center', local.class)} {...others}/>;
26
+ return <Timer.Item class={cn('min-w-[2ch] text-center', local.class)} {...others} data-slot="timer-item"/>;
27
27
  }
28
28
  function TimerSeparator(props) {
29
29
  const [local, others] = splitProps(props, [
30
30
  'class'
31
31
  ]);
32
- return <Timer.Separator data-slot="timer-separator" class={cn('text-muted-foreground', local.class)} {...others}/>;
32
+ return <Timer.Separator class={cn('text-muted-foreground', local.class)} {...others} data-slot="timer-separator"/>;
33
33
  }
34
34
  function TimerControl(props) {
35
35
  const [local, others] = splitProps(props, [
36
36
  'class'
37
37
  ]);
38
- return <Timer.Control data-slot="timer-control" class={cn('inline-flex flex-wrap items-center gap-2', local.class)} {...others}/>;
38
+ return <Timer.Control class={cn('inline-flex flex-wrap items-center gap-2', local.class)} {...others} data-slot="timer-control"/>;
39
39
  }
40
40
  function TimerActionTrigger(props) {
41
41
  const [local, others] = splitProps(props, [
42
42
  'class'
43
43
  ]);
44
- return <Timer.ActionTrigger data-slot="timer-action-trigger" class={cn('inline-flex min-h-control-md cursor-pointer appearance-none items-center justify-center gap-2 rounded-md border border-border bg-background px-3 py-1.5 text-sm leading-5 font-medium whitespace-nowrap text-foreground transition-[background-color,border-color,color,opacity,box-shadow] duration-200 ease-in-out focus-visible:outline-2 focus-visible:-outline-offset-1 focus-visible:outline-ring disabled:pointer-events-none disabled:cursor-default disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:cursor-default aria-disabled:opacity-50 [&_svg]:size-4 [&_svg]:shrink-0 [@media(hover:hover)]:hover:bg-accent', local.class)} {...others}/>;
44
+ return <Timer.ActionTrigger class={cn('inline-flex min-h-control-md cursor-pointer appearance-none items-center justify-center gap-2 rounded-md border border-border bg-background px-3 py-1.5 text-sm leading-5 font-medium whitespace-nowrap text-foreground transition-[background-color,border-color,color,opacity,box-shadow] duration-200 ease-in-out focus-visible:outline-2 focus-visible:-outline-offset-1 focus-visible:outline-ring disabled:pointer-events-none disabled:cursor-default disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:cursor-default aria-disabled:opacity-50 [&_svg]:size-4 [&_svg]:shrink-0 [@media(hover:hover)]:hover:bg-accent', local.class)} {...others} data-slot="timer-action-trigger"/>;
45
45
  }
46
46
  const defaultTimerSegmentTypes = [
47
47
  'hours',