@giddaa-housing/ui 3.5.0 → 3.7.0

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 (108) hide show
  1. package/css/components.css +13 -0
  2. package/css/generated/shared.css +1 -1
  3. package/css/theme.css +11 -8
  4. package/dist/badge.d.ts +5 -1
  5. package/dist/badge.js +19 -5
  6. package/dist/bar-chart.d.ts +1 -1
  7. package/dist/bullet-chart.d.ts +1 -1
  8. package/dist/button-BS5KCibF.d.ts +33 -0
  9. package/dist/button-group.d.ts +1 -1
  10. package/dist/button.d.ts +1 -1
  11. package/dist/button.js +49 -21
  12. package/dist/calendar.js +1 -1
  13. package/dist/carousel.d.ts +4 -2
  14. package/dist/carousel.js +11 -14
  15. package/dist/chart.d.ts +1 -1
  16. package/dist/chat.d.ts +1 -1
  17. package/dist/checkbox.d.ts +2 -2
  18. package/dist/checkbox.js +20 -6
  19. package/dist/{combobox-B7cKFJ9V.js → combobox-D70DFHoM.js} +55 -10
  20. package/dist/combobox.d.ts +8 -3
  21. package/dist/combobox.js +2 -2
  22. package/dist/cta.d.ts +1 -1
  23. package/dist/data-table.d.ts +2 -2
  24. package/dist/date-picker.d.ts +3 -3
  25. package/dist/date-picker.js +1 -1
  26. package/dist/dialog.d.ts +6 -2
  27. package/dist/dialog.js +15 -12
  28. package/dist/dropdown-menu.d.ts +1 -1
  29. package/dist/field.d.ts +4 -1
  30. package/dist/field.js +28 -11
  31. package/dist/footer.d.ts +2 -2
  32. package/dist/funnel-chart.d.ts +1 -1
  33. package/dist/heatmap-chart.d.ts +1 -1
  34. package/dist/infotip.js +0 -1
  35. package/dist/input-group.d.ts +6 -6
  36. package/dist/input-group.js +43 -18
  37. package/dist/input-otp.d.ts +2 -2
  38. package/dist/input-otp.js +31 -14
  39. package/dist/input-size-context-BMhves-J.d.ts +13 -0
  40. package/dist/input-size-context.d.ts +2 -2
  41. package/dist/input-size-context.js +9 -2
  42. package/dist/input.d.ts +20 -2
  43. package/dist/input.js +30 -11
  44. package/dist/line-chart.d.ts +1 -1
  45. package/dist/mask-input.d.ts +1 -1
  46. package/dist/match.d.ts +14 -2
  47. package/dist/match.js +221 -48
  48. package/dist/media-gallery-hero.js +9 -7
  49. package/dist/media-player.js +3 -3
  50. package/dist/mobile-sidebar.js +7 -6
  51. package/dist/number-input.d.ts +2 -2
  52. package/dist/number-input.js +2 -2
  53. package/dist/pagination.d.ts +1 -1
  54. package/dist/phone-input.d.ts +20 -3
  55. package/dist/phone-input.js +137 -67
  56. package/dist/picker-BTXBrsl4.js +62 -0
  57. package/dist/{picker-CsnHtbe4.d.ts → picker-j3txxA5t.d.ts} +2 -2
  58. package/dist/pie-chart.d.ts +1 -1
  59. package/dist/{popover-DSlPeH7x.d.ts → popover-CNymD33m.d.ts} +1 -1
  60. package/dist/popover.d.ts +1 -1
  61. package/dist/property-listing-card.d.ts +7 -3
  62. package/dist/property-listing-card.js +25 -8
  63. package/dist/radar-chart.d.ts +1 -1
  64. package/dist/radio-group.d.ts +2 -2
  65. package/dist/radio-group.js +23 -9
  66. package/dist/rating.d.ts +60 -0
  67. package/dist/rating.js +187 -0
  68. package/dist/rich-text-editor.d.ts +1 -1
  69. package/dist/scatter-chart.d.ts +1 -1
  70. package/dist/scroll-spy.d.ts +8 -2
  71. package/dist/scroll-spy.js +13 -13
  72. package/dist/section-jumper.d.ts +31 -0
  73. package/dist/section-jumper.js +276 -0
  74. package/dist/select.d.ts +9 -4
  75. package/dist/select.js +148 -20
  76. package/dist/sheet.d.ts +5 -1
  77. package/dist/sheet.js +15 -12
  78. package/dist/sidebar.d.ts +2 -2
  79. package/dist/sidebar.js +1 -0
  80. package/dist/size-context-BVhHduLi.d.ts +33 -0
  81. package/dist/size-context.d.ts +2 -2
  82. package/dist/size-context.js +30 -1
  83. package/dist/slider.d.ts +5 -3
  84. package/dist/slider.js +25 -10
  85. package/dist/sonar.d.ts +4 -2
  86. package/dist/sonar.js +116 -28
  87. package/dist/sparkline.d.ts +1 -1
  88. package/dist/styles.css +1674 -252
  89. package/dist/switch.d.ts +2 -2
  90. package/dist/switch.js +20 -6
  91. package/dist/tabs.d.ts +1 -1
  92. package/dist/tag.d.ts +1 -1
  93. package/dist/textarea.d.ts +17 -1
  94. package/dist/textarea.js +23 -9
  95. package/dist/time-picker.d.ts +3 -3
  96. package/dist/time-picker.js +1 -1
  97. package/dist/tree-map.d.ts +1 -1
  98. package/dist/video-player-dialog.js +4 -3
  99. package/dist/waterfall-chart.d.ts +1 -1
  100. package/package.json +9 -1
  101. package/dist/button-DW5OijoR.d.ts +0 -17
  102. package/dist/dialog-nesting.d.ts +0 -9
  103. package/dist/dialog-nesting.js +0 -27
  104. package/dist/input-CfoEJ8A6.d.ts +0 -12
  105. package/dist/input-size-context-C-SFx9sx.d.ts +0 -10
  106. package/dist/picker-DmIiQKLJ.js +0 -45
  107. package/dist/size-context-BX6kAdVj.d.ts +0 -11
  108. package/dist/textarea-IS_D8pXf.d.ts +0 -11
package/dist/select.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { Check, ChevronDown, ChevronUp } from "./icons.js";
3
3
  import { cn } from "./utils/cn.js";
4
- import { SizeProvider, useComponentSize } from "./size-context.js";
4
+ import { SizeProvider, responsiveValueClasses, useComponentSizeValue } from "./size-context.js";
5
5
  import { jsx, jsxs } from "react/jsx-runtime";
6
6
  import { cva } from "class-variance-authority";
7
7
  import * as React from "react";
@@ -29,11 +29,11 @@ const selectTriggerVariants = cva("group/select-trigger flex w-fit min-w-0 items
29
29
  } },
30
30
  defaultVariants: { size: "md" }
31
31
  });
32
- const selectContentVariants = cva("relative isolate z-50 max-h-(--available-height) w-(--anchor-width) min-w-36 origin-(--transform-origin) overflow-x-hidden overflow-y-auto border border-line-subtle bg-canvas text-fg-primary shadow-(--elevation-e1-shadow) transition-[opacity,scale,translate] duration-[var(--duration-motion-popup)] ease-gdt-out data-[align-trigger=true]:transition-none not-data-[align-trigger=true]:data-starting-style:opacity-0 not-data-[align-trigger=true]:data-starting-style:scale-95 not-data-[align-trigger=true]:data-ending-style:opacity-0 not-data-[align-trigger=true]:data-ending-style:scale-95 not-data-[align-trigger=true]:data-[side=bottom]:data-starting-style:translate-y-2 not-data-[align-trigger=true]:data-[side=bottom]:data-ending-style:translate-y-2 not-data-[align-trigger=true]:data-[side=top]:data-starting-style:-translate-y-2 not-data-[align-trigger=true]:data-[side=top]:data-ending-style:-translate-y-2 not-data-[align-trigger=true]:data-[side=left]:data-starting-style:translate-x-2 not-data-[align-trigger=true]:data-[side=left]:data-ending-style:translate-x-2 not-data-[align-trigger=true]:data-[side=right]:data-starting-style:-translate-x-2 not-data-[align-trigger=true]:data-[side=right]:data-ending-style:-translate-x-2 not-data-[align-trigger=true]:data-[side=inline-end]:data-starting-style:-translate-x-2 not-data-[align-trigger=true]:data-[side=inline-end]:data-ending-style:-translate-x-2 not-data-[align-trigger=true]:data-[side=inline-start]:data-starting-style:translate-x-2 not-data-[align-trigger=true]:data-[side=inline-start]:data-ending-style:translate-x-2 motion-reduce:not-data-[align-trigger=true]:data-starting-style:scale-100 motion-reduce:not-data-[align-trigger=true]:data-ending-style:scale-100 motion-reduce:not-data-[align-trigger=true]:data-[side=bottom]:data-starting-style:translate-y-0 motion-reduce:not-data-[align-trigger=true]:data-[side=bottom]:data-ending-style:translate-y-0 motion-reduce:not-data-[align-trigger=true]:data-[side=top]:data-starting-style:translate-y-0 motion-reduce:not-data-[align-trigger=true]:data-[side=top]:data-ending-style:translate-y-0 motion-reduce:not-data-[align-trigger=true]:data-[side=left]:data-starting-style:translate-x-0 motion-reduce:not-data-[align-trigger=true]:data-[side=left]:data-ending-style:translate-x-0 motion-reduce:not-data-[align-trigger=true]:data-[side=right]:data-starting-style:translate-x-0 motion-reduce:not-data-[align-trigger=true]:data-[side=right]:data-ending-style:translate-x-0 motion-reduce:not-data-[align-trigger=true]:data-[side=inline-end]:data-starting-style:translate-x-0 motion-reduce:not-data-[align-trigger=true]:data-[side=inline-end]:data-ending-style:translate-x-0 motion-reduce:not-data-[align-trigger=true]:data-[side=inline-start]:data-starting-style:translate-x-0 motion-reduce:not-data-[align-trigger=true]:data-[side=inline-start]:data-ending-style:translate-x-0", {
32
+ const selectContentVariants = cva("relative isolate z-50 flex max-h-(--available-height) w-(--anchor-width) min-w-36 origin-(--transform-origin) flex-col overflow-hidden border border-line-subtle bg-canvas text-fg-primary shadow-(--elevation-e1-shadow) transition-[opacity,scale,translate] duration-[var(--duration-motion-popup)] ease-gdt-out data-[align-trigger=true]:transition-none not-data-[align-trigger=true]:data-starting-style:opacity-0 not-data-[align-trigger=true]:data-starting-style:scale-95 not-data-[align-trigger=true]:data-ending-style:opacity-0 not-data-[align-trigger=true]:data-ending-style:scale-95 not-data-[align-trigger=true]:data-[side=bottom]:data-starting-style:translate-y-2 not-data-[align-trigger=true]:data-[side=bottom]:data-ending-style:translate-y-2 not-data-[align-trigger=true]:data-[side=top]:data-starting-style:-translate-y-2 not-data-[align-trigger=true]:data-[side=top]:data-ending-style:-translate-y-2 not-data-[align-trigger=true]:data-[side=left]:data-starting-style:translate-x-2 not-data-[align-trigger=true]:data-[side=left]:data-ending-style:translate-x-2 not-data-[align-trigger=true]:data-[side=right]:data-starting-style:-translate-x-2 not-data-[align-trigger=true]:data-[side=right]:data-ending-style:-translate-x-2 not-data-[align-trigger=true]:data-[side=inline-end]:data-starting-style:-translate-x-2 not-data-[align-trigger=true]:data-[side=inline-end]:data-ending-style:-translate-x-2 not-data-[align-trigger=true]:data-[side=inline-start]:data-starting-style:translate-x-2 not-data-[align-trigger=true]:data-[side=inline-start]:data-ending-style:translate-x-2 motion-reduce:not-data-[align-trigger=true]:data-starting-style:scale-100 motion-reduce:not-data-[align-trigger=true]:data-ending-style:scale-100 motion-reduce:not-data-[align-trigger=true]:data-[side=bottom]:data-starting-style:translate-y-0 motion-reduce:not-data-[align-trigger=true]:data-[side=bottom]:data-ending-style:translate-y-0 motion-reduce:not-data-[align-trigger=true]:data-[side=top]:data-starting-style:translate-y-0 motion-reduce:not-data-[align-trigger=true]:data-[side=top]:data-ending-style:translate-y-0 motion-reduce:not-data-[align-trigger=true]:data-[side=left]:data-starting-style:translate-x-0 motion-reduce:not-data-[align-trigger=true]:data-[side=left]:data-ending-style:translate-x-0 motion-reduce:not-data-[align-trigger=true]:data-[side=right]:data-starting-style:translate-x-0 motion-reduce:not-data-[align-trigger=true]:data-[side=right]:data-ending-style:translate-x-0 motion-reduce:not-data-[align-trigger=true]:data-[side=inline-end]:data-starting-style:translate-x-0 motion-reduce:not-data-[align-trigger=true]:data-[side=inline-end]:data-ending-style:translate-x-0 motion-reduce:not-data-[align-trigger=true]:data-[side=inline-start]:data-starting-style:translate-x-0 motion-reduce:not-data-[align-trigger=true]:data-[side=inline-start]:data-ending-style:translate-x-0", {
33
33
  variants: { size: {
34
- sm: "rounded-lg p-1",
35
- md: "rounded-xl p-1.5",
36
- lg: "rounded-[18px] p-2"
34
+ sm: "rounded-lg",
35
+ md: "rounded-xl",
36
+ lg: "rounded-[18px]"
37
37
  } },
38
38
  defaultVariants: { size: "md" }
39
39
  });
@@ -45,6 +45,108 @@ const selectItemVariants = cva("group/select-item relative flex w-full cursor-po
45
45
  } },
46
46
  defaultVariants: { size: "md" }
47
47
  });
48
+ const responsiveSelectTriggerSizes = {
49
+ base: {
50
+ sm: "h-8 gap-2 px-3 text-gdt-xs [&_svg:not([class*='size-'])]:size-3.5",
51
+ md: "h-10 gap-2 px-3.5 text-gdt-sm [&_svg:not([class*='size-'])]:size-4",
52
+ lg: "h-12 gap-2.5 px-4 pr-5 text-gdt-md [&_svg:not([class*='size-'])]:size-4.5"
53
+ },
54
+ md: {
55
+ sm: "md:h-8 md:gap-2 md:px-3 md:text-gdt-xs md:[&_svg:not([class*='size-'])]:size-3.5",
56
+ md: "md:h-10 md:gap-2 md:px-3.5 md:text-gdt-sm md:[&_svg:not([class*='size-'])]:size-4",
57
+ lg: "md:h-12 md:gap-2.5 md:px-4 md:pr-5 md:text-gdt-md md:[&_svg:not([class*='size-'])]:size-4.5"
58
+ },
59
+ lg: {
60
+ sm: "lg:h-8 lg:gap-2 lg:px-3 lg:text-gdt-xs lg:[&_svg:not([class*='size-'])]:size-3.5",
61
+ md: "lg:h-10 lg:gap-2 lg:px-3.5 lg:text-gdt-sm lg:[&_svg:not([class*='size-'])]:size-4",
62
+ lg: "lg:h-12 lg:gap-2.5 lg:px-4 lg:pr-5 lg:text-gdt-md lg:[&_svg:not([class*='size-'])]:size-4.5"
63
+ }
64
+ };
65
+ const responsiveSelectContentSizes = {
66
+ base: {
67
+ sm: "rounded-lg",
68
+ md: "rounded-xl",
69
+ lg: "rounded-[18px]"
70
+ },
71
+ md: {
72
+ sm: "md:rounded-lg",
73
+ md: "md:rounded-xl",
74
+ lg: "md:rounded-[18px]"
75
+ },
76
+ lg: {
77
+ sm: "lg:rounded-lg",
78
+ md: "lg:rounded-xl",
79
+ lg: "lg:rounded-[18px]"
80
+ }
81
+ };
82
+ const responsiveSelectItemSizes = {
83
+ base: {
84
+ sm: "gap-1.5 rounded-md px-3 py-1.5 text-gdt-xs",
85
+ md: "gap-2 rounded-md px-4 py-2 text-gdt-sm",
86
+ lg: "gap-2.5 rounded-md px-4 py-2.5 text-gdt-md"
87
+ },
88
+ md: {
89
+ sm: "md:gap-1.5 md:px-3 md:py-1.5 md:text-gdt-xs",
90
+ md: "md:gap-2 md:px-4 md:py-2 md:text-gdt-sm",
91
+ lg: "md:gap-2.5 md:px-4 md:py-2.5 md:text-gdt-md"
92
+ },
93
+ lg: {
94
+ sm: "lg:gap-1.5 lg:px-3 lg:py-1.5 lg:text-gdt-xs",
95
+ md: "lg:gap-2 lg:px-4 lg:py-2 lg:text-gdt-sm",
96
+ lg: "lg:gap-2.5 lg:px-4 lg:py-2.5 lg:text-gdt-md"
97
+ }
98
+ };
99
+ const responsiveSelectBodySizes = {
100
+ base: {
101
+ sm: "p-1",
102
+ md: "p-1.5",
103
+ lg: "p-2"
104
+ },
105
+ md: {
106
+ sm: "md:p-1",
107
+ md: "md:p-1.5",
108
+ lg: "md:p-2"
109
+ },
110
+ lg: {
111
+ sm: "lg:p-1",
112
+ md: "lg:p-1.5",
113
+ lg: "lg:p-2"
114
+ }
115
+ };
116
+ const responsiveSelectEdgeSizes = {
117
+ base: {
118
+ sm: "px-4",
119
+ md: "px-5.5",
120
+ lg: "px-6"
121
+ },
122
+ md: {
123
+ sm: "md:px-4",
124
+ md: "md:px-5.5",
125
+ lg: "md:px-6"
126
+ },
127
+ lg: {
128
+ sm: "lg:px-4",
129
+ md: "lg:px-5.5",
130
+ lg: "lg:px-6"
131
+ }
132
+ };
133
+ const responsiveSelectLabelSizes = {
134
+ base: {
135
+ sm: "px-3",
136
+ md: "px-4",
137
+ lg: "px-4"
138
+ },
139
+ md: {
140
+ sm: "md:px-3",
141
+ md: "md:px-4",
142
+ lg: "md:px-4"
143
+ },
144
+ lg: {
145
+ sm: "lg:px-3",
146
+ md: "lg:px-4",
147
+ lg: "lg:px-4"
148
+ }
149
+ };
48
150
  function SelectGroup({ className, ...props }) {
49
151
  return /* @__PURE__ */ jsx(Select$1.Group, {
50
152
  "data-slot": "select-group",
@@ -60,17 +162,18 @@ function SelectValue({ className, ...props }) {
60
162
  });
61
163
  }
62
164
  function SelectTrigger({ className, children, unstyled, ...props }) {
63
- const resolvedSize = useComponentSize();
165
+ const resolvedSize = responsiveValueClasses(useComponentSizeValue(), responsiveSelectTriggerSizes);
64
166
  return /* @__PURE__ */ jsxs(Select$1.Trigger, {
65
167
  "data-slot": "select-trigger",
66
- "data-size": resolvedSize,
67
- className: cn(!unstyled && selectTriggerVariants({ size: resolvedSize }), className),
168
+ "data-size": resolvedSize.base,
169
+ className: cn(!unstyled && selectTriggerVariants({ size: null }), !unstyled && resolvedSize.className, className),
68
170
  ...props,
69
171
  children: [children, /* @__PURE__ */ jsx(Select$1.Icon, { render: /* @__PURE__ */ jsx(ChevronDown, { className: "text-line-strong transition-transform group-data-disabled/select-trigger:text-fg-caption-placeholder data-popup-open:rotate-180" }) })]
70
172
  });
71
173
  }
72
- function SelectContent({ className, children, side = "bottom", sideOffset = 8, align = "center", alignOffset = 0, alignItemWithTrigger = false, ...props }) {
73
- const resolvedSize = useComponentSize();
174
+ function SelectContent({ className, children, header, footer, side = "bottom", sideOffset = 8, align = "center", alignOffset = 0, alignItemWithTrigger = false, ...props }) {
175
+ const resolvedSize = responsiveValueClasses(useComponentSizeValue(), responsiveSelectContentSizes);
176
+ const bodySize = responsiveValueClasses(useComponentSizeValue(), responsiveSelectBodySizes);
74
177
  return /* @__PURE__ */ jsx(Select$1.Portal, { children: /* @__PURE__ */ jsx(Select$1.Positioner, {
75
178
  side,
76
179
  sideOffset,
@@ -81,32 +184,57 @@ function SelectContent({ className, children, side = "bottom", sideOffset = 8, a
81
184
  children: /* @__PURE__ */ jsxs(Select$1.Popup, {
82
185
  "data-slot": "select-content",
83
186
  "data-align-trigger": alignItemWithTrigger,
84
- className: cn(selectContentVariants({ size: resolvedSize }), className),
187
+ className: cn(selectContentVariants({ size: null }), resolvedSize.className, className),
85
188
  ...props,
86
189
  children: [
87
- /* @__PURE__ */ jsx(SelectScrollUpButton, {}),
88
- /* @__PURE__ */ jsx(Select$1.List, {
89
- className: "space-y-0.5",
90
- children
190
+ header,
191
+ /* @__PURE__ */ jsxs("div", {
192
+ "data-slot": "select-content-body",
193
+ className: cn("min-h-0 flex-1 overflow-y-auto", bodySize.className),
194
+ children: [
195
+ /* @__PURE__ */ jsx(SelectScrollUpButton, {}),
196
+ /* @__PURE__ */ jsx(Select$1.List, {
197
+ className: "space-y-0.5",
198
+ children
199
+ }),
200
+ /* @__PURE__ */ jsx(SelectScrollDownButton, {})
201
+ ]
91
202
  }),
92
- /* @__PURE__ */ jsx(SelectScrollDownButton, {})
203
+ footer
93
204
  ]
94
205
  })
95
206
  }) });
96
207
  }
208
+ function SelectHeader({ className, type = "button", ...props }) {
209
+ return /* @__PURE__ */ jsx("button", {
210
+ type,
211
+ "data-slot": "select-header",
212
+ className: cn("relative z-20 flex min-h-9 w-full cursor-pointer items-center gap-2 rounded-none rounded-t-[inherit] border-line-subtle border-b bg-canvas py-2 text-left text-gdt-sm font-bold text-fg-brand outline-none transition-colors hover:bg-surface-brand-subtle focus-visible:bg-surface-brand-subtle focus-visible:inset-ring-2 focus-visible:inset-ring-line-focus active:bg-surface-brand-subtle disabled:pointer-events-none disabled:text-fg-caption-placeholder", "[&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", responsiveValueClasses(useComponentSizeValue(), responsiveSelectEdgeSizes).className, className),
213
+ ...props
214
+ });
215
+ }
216
+ function SelectFooter({ className, type = "button", ...props }) {
217
+ return /* @__PURE__ */ jsx("button", {
218
+ type,
219
+ "data-slot": "select-footer",
220
+ className: cn("relative z-20 flex min-h-9 w-full cursor-pointer items-center gap-2 rounded-none rounded-b-[inherit] border-line-subtle border-t bg-canvas py-2 text-left text-gdt-sm font-semibold text-fg-secondary outline-none transition-colors hover:bg-surface focus-visible:bg-surface focus-visible:inset-ring-2 focus-visible:inset-ring-line-focus active:bg-surface-raised disabled:pointer-events-none disabled:text-fg-caption-placeholder", "[&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", responsiveValueClasses(useComponentSizeValue(), responsiveSelectEdgeSizes).className, className),
221
+ ...props
222
+ });
223
+ }
97
224
  function SelectLabel({ className, ...props }) {
225
+ const resolvedSize = responsiveValueClasses(useComponentSizeValue(), responsiveSelectLabelSizes);
98
226
  return /* @__PURE__ */ jsx(Select$1.GroupLabel, {
99
227
  "data-slot": "select-label",
100
- className: cn("px-3 py-1 text-gdt-xs text-fg-secondary", className),
228
+ className: cn("py-1 text-gdt-xs text-fg-secondary", resolvedSize.className, className),
101
229
  ...props
102
230
  });
103
231
  }
104
232
  function SelectItem({ className, children, ...props }) {
105
233
  const { multiple } = React.useContext(SelectSelectionContext);
106
- const resolvedSize = useComponentSize();
234
+ const resolvedSize = responsiveValueClasses(useComponentSizeValue(), responsiveSelectItemSizes);
107
235
  return /* @__PURE__ */ jsxs(Select$1.Item, {
108
236
  "data-slot": "select-item",
109
- className: cn(selectItemVariants({ size: resolvedSize }), !multiple && "data-selected:bg-surface-brand-subtle data-selected:font-medium data-selected:text-fg-brand", className),
237
+ className: cn(selectItemVariants({ size: null }), resolvedSize.className, !multiple && "data-selected:bg-surface-brand-subtle data-selected:font-medium data-selected:text-fg-brand", className),
110
238
  ...props,
111
239
  children: [multiple ? /* @__PURE__ */ jsx(Select$1.ItemIndicator, {
112
240
  keepMounted: true,
@@ -142,4 +270,4 @@ function SelectScrollDownButton({ className, ...props }) {
142
270
  });
143
271
  }
144
272
  //#endregion
145
- export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue };
273
+ export { Select, SelectContent, SelectFooter, SelectGroup, SelectHeader, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue };
package/dist/sheet.d.ts CHANGED
@@ -9,6 +9,10 @@ type SheetContentProps = Dialog.Popup.Props & {
9
9
  side?: SheetSide;
10
10
  showCloseButton?: boolean;
11
11
  showOverlay?: boolean;
12
+ /** Controls the visual response when this surface participates in a nested dialog stack. */
13
+ nestingEffect?: "stack" | "none";
14
+ /** @internal Positions specialized popup shells without changing the surface. */
15
+ popupClassName?: string;
12
16
  } & ({
13
17
  side: "top" | "bottom";
14
18
  size?: "fullscreen";
@@ -16,7 +20,7 @@ type SheetContentProps = Dialog.Popup.Props & {
16
20
  side?: "left" | "right";
17
21
  size?: "sm" | "md" | "lg";
18
22
  });
19
- declare function SheetContent({ className, children, side, size, showCloseButton, showOverlay, ...props }: SheetContentProps): React.JSX.Element;
23
+ declare function SheetContent({ className, children, side, size, showCloseButton, showOverlay, nestingEffect, popupClassName, ...props }: SheetContentProps): React.JSX.Element;
20
24
  declare function SheetHeader({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
21
25
  declare function SheetBody({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
22
26
  declare function SheetFooter({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
package/dist/sheet.js CHANGED
@@ -3,16 +3,15 @@ import { X } from "./icons.js";
3
3
  import { cn } from "./utils/cn.js";
4
4
  import { SizeProvider } from "./size-context.js";
5
5
  import { Button } from "./button.js";
6
- import { DialogNestingProvider, useDialogNestingDepth } from "./dialog-nesting.js";
7
6
  import { jsx, jsxs } from "react/jsx-runtime";
8
7
  import { cva } from "class-variance-authority";
9
8
  import { Dialog } from "@base-ui/react/dialog";
10
9
  //#region src/sheet.tsx
11
10
  function Sheet({ ...props }) {
12
- return /* @__PURE__ */ jsx(DialogNestingProvider, { children: /* @__PURE__ */ jsx(Dialog.Root, {
11
+ return /* @__PURE__ */ jsx(Dialog.Root, {
13
12
  "data-slot": "sheet",
14
13
  ...props
15
- }) });
14
+ });
16
15
  }
17
16
  function SheetTrigger({ ...props }) {
18
17
  return /* @__PURE__ */ jsx(Dialog.Trigger, {
@@ -26,23 +25,22 @@ function SheetClose({ ...props }) {
26
25
  ...props
27
26
  });
28
27
  }
29
- function SheetPortal({ ...props }) {
28
+ function SheetPortal({ className, ...props }) {
30
29
  return /* @__PURE__ */ jsx(Dialog.Portal, {
31
30
  "data-slot": "sheet-portal",
31
+ className: (state) => cn("group/sheet-portal", typeof className === "function" ? className(state) : className),
32
32
  ...props
33
33
  });
34
34
  }
35
35
  function SheetOverlay({ className, ...props }) {
36
- const nested = useDialogNestingDepth() > 1;
37
36
  return /* @__PURE__ */ jsx(Dialog.Backdrop, {
38
37
  forceRender: true,
39
38
  "data-slot": "sheet-overlay",
40
- "data-nested": nested || void 0,
41
- className: cn("fixed inset-0 z-50 transition-opacity duration-150 data-ending-style:opacity-0 data-starting-style:opacity-0", nested ? "bg-black/25" : "bg-black/55 supports-backdrop-filter:backdrop-blur-xl", className),
39
+ className: cn("fixed inset-0 z-50 bg-black/55 transition-opacity duration-150 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xl group-has-[>.is-nested-dialog]/sheet-portal:bg-black/25 supports-backdrop-filter:group-has-[>.is-nested-dialog]/sheet-portal:backdrop-blur-none", className),
42
40
  ...props
43
41
  });
44
42
  }
45
- const sheetContentVariants = cva("group/sheet-content fixed z-50 flex flex-col gap-0 overflow-visible rounded-2xl border border-line-subtle bg-surface-overlay bg-clip-padding text-fg-primary shadow-(--elevation-e2-shadow) transition-[opacity,scale,translate] duration-[var(--duration-motion-surface)] ease-gdt-drawer data-ending-style:opacity-0 data-starting-style:opacity-0 [--sheet-padding-x:1rem] [--sheet-padding-top:1rem] data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:w-full data-[side=bottom]:rounded-b-none data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:w-full data-[side=top]:rounded-t-none data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:rounded-l-none data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:rounded-r-none data-[side=bottom]:data-ending-style:translate-y-full data-[side=bottom]:data-starting-style:translate-y-full data-[side=left]:data-ending-style:-translate-x-full data-[side=left]:data-starting-style:-translate-x-full data-[side=right]:data-ending-style:translate-x-full data-[side=right]:data-starting-style:translate-x-full data-[side=top]:data-ending-style:-translate-y-full data-[side=top]:data-starting-style:-translate-y-full motion-reduce:data-[side=bottom]:data-ending-style:translate-y-0 motion-reduce:data-[side=bottom]:data-starting-style:translate-y-0 motion-reduce:data-[side=left]:data-ending-style:translate-x-0 motion-reduce:data-[side=left]:data-starting-style:translate-x-0 motion-reduce:data-[side=right]:data-ending-style:translate-x-0 motion-reduce:data-[side=right]:data-starting-style:translate-x-0 motion-reduce:data-[side=top]:data-ending-style:translate-y-0 motion-reduce:data-[side=top]:data-starting-style:translate-y-0 data-[side=bottom]:data-[nested-dialog-open]:translate-y-[calc(var(--nested-dialogs)*-1.5rem)] data-[side=top]:data-[nested-dialog-open]:translate-y-[calc(var(--nested-dialogs)*1.5rem)] data-[side=left]:data-[nested-dialog-open]:translate-x-[calc(var(--nested-dialogs)*1.5rem)] data-[side=right]:data-[nested-dialog-open]:translate-x-[calc(var(--nested-dialogs)*-1.5rem)] data-[side=bottom]:data-[nested-dialog-open]:scale-x-[calc(1_-_var(--nested-dialogs)*0.05)] data-[side=top]:data-[nested-dialog-open]:scale-x-[calc(1_-_var(--nested-dialogs)*0.05)]", {
43
+ const sheetContentVariants = cva("group/sheet-content pointer-events-none fixed z-50 overflow-visible transition-[opacity,scale,translate] duration-[var(--duration-motion-surface)] ease-gdt-drawer data-ending-style:opacity-0 data-starting-style:opacity-0 [--sheet-padding-x:1rem] [--sheet-padding-top:1rem] data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:w-full data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:w-full data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=bottom]:data-ending-style:translate-y-full data-[side=bottom]:data-starting-style:translate-y-full data-[side=left]:data-ending-style:-translate-x-full data-[side=left]:data-starting-style:-translate-x-full data-[side=right]:data-ending-style:translate-x-full data-[side=right]:data-starting-style:translate-x-full data-[side=top]:data-ending-style:-translate-y-full data-[side=top]:data-starting-style:-translate-y-full motion-reduce:data-[side=bottom]:data-ending-style:translate-y-0 motion-reduce:data-[side=bottom]:data-starting-style:translate-y-0 motion-reduce:data-[side=left]:data-ending-style:translate-x-0 motion-reduce:data-[side=left]:data-starting-style:translate-x-0 motion-reduce:data-[side=right]:data-ending-style:translate-x-0 motion-reduce:data-[side=right]:data-starting-style:translate-x-0 motion-reduce:data-[side=top]:data-ending-style:translate-y-0 motion-reduce:data-[side=top]:data-starting-style:translate-y-0", {
46
44
  variants: { size: {
47
45
  sm: "sm:[--sheet-padding-top:1.5rem] sm:[--sheet-padding-x:1.5rem] w-90 max-w-[calc(100vw-2.5rem)] [--sheet-title:var(--text-gdt-h5)]",
48
46
  md: "sm:[--sheet-padding-top:1.5rem] sm:[--sheet-padding-x:2rem] xl:[--sheet-padding-x:2.5rem] w-120 max-w-[calc(100vw-2.5rem)] [--sheet-title:var(--text-gdt-h4)]",
@@ -51,7 +49,7 @@ const sheetContentVariants = cva("group/sheet-content fixed z-50 flex flex-col g
51
49
  } },
52
50
  defaultVariants: { size: "md" }
53
51
  });
54
- function SheetContent({ className, children, side = "left", size = "md", showCloseButton = true, showOverlay = true, ...props }) {
52
+ function SheetContent({ className, children, side = "left", size = "md", showCloseButton = true, showOverlay = true, nestingEffect = "stack", popupClassName, ...props }) {
55
53
  const resolvedSize = side === "top" || side === "bottom" ? "fullscreen" : size !== "fullscreen" ? size : "md";
56
54
  return /* @__PURE__ */ jsxs(SheetPortal, { children: [showOverlay && /* @__PURE__ */ jsx(SheetOverlay, {}), /* @__PURE__ */ jsx(SizeProvider, {
57
55
  size: resolvedSize === "fullscreen" ? "lg" : resolvedSize,
@@ -59,13 +57,18 @@ function SheetContent({ className, children, side = "left", size = "md", showClo
59
57
  "data-slot": "sheet-content",
60
58
  "data-side": side,
61
59
  "data-size": resolvedSize,
62
- className: cn(sheetContentVariants({ size: resolvedSize }), className),
60
+ "data-nesting-effect": nestingEffect,
61
+ className: (state) => cn(sheetContentVariants({ size: resolvedSize }), nestingEffect === "stack" && state.nested && "is-nested-dialog", nestingEffect === "stack" && "data-[side=bottom]:data-[nested-dialog-open]:translate-y-[calc(var(--nested-dialogs)*-1.5rem)] data-[side=top]:data-[nested-dialog-open]:translate-y-[calc(var(--nested-dialogs)*1.5rem)] data-[side=left]:data-[nested-dialog-open]:translate-x-[calc(var(--nested-dialogs)*1.5rem)] data-[side=right]:data-[nested-dialog-open]:translate-x-[calc(var(--nested-dialogs)*-1.5rem)] data-[side=bottom]:data-[nested-dialog-open]:scale-x-[calc(1_-_var(--nested-dialogs)*0.05)] data-[side=top]:data-[nested-dialog-open]:scale-x-[calc(1_-_var(--nested-dialogs)*0.05)]", popupClassName),
63
62
  ...props,
64
- children: [children, showCloseButton && /* @__PURE__ */ jsx(Dialog.Close, {
63
+ children: [/* @__PURE__ */ jsx("div", {
64
+ "data-slot": "sheet-surface",
65
+ className: cn("pointer-events-auto flex size-full flex-col gap-0 overflow-visible rounded-2xl border border-line-subtle bg-surface-overlay bg-clip-padding text-fg-primary shadow-(--elevation-e2-shadow) group-data-[side=bottom]/sheet-content:rounded-b-none group-data-[side=top]/sheet-content:rounded-t-none group-data-[side=left]/sheet-content:rounded-l-none group-data-[side=right]/sheet-content:rounded-r-none", className),
66
+ children
67
+ }), showCloseButton && /* @__PURE__ */ jsx(Dialog.Close, {
65
68
  "data-slot": "sheet-close",
66
69
  render: /* @__PURE__ */ jsxs(Button, {
67
70
  variant: "ghost",
68
- className: "absolute z-10 size-7 border border-line bg-surface p-0 text-fg-primary shadow-(--elevation-e1-shadow) hover:bg-surface-raised group-data-[nested-dialog-open]/sheet-content:hidden group-data-[side=bottom]/sheet-content:-top-9 group-data-[side=bottom]/sheet-content:right-4 group-data-[side=top]/sheet-content:-bottom-9 group-data-[side=top]/sheet-content:right-4 group-data-[side=left]/sheet-content:-right-9 group-data-[side=left]/sheet-content:top-4 group-data-[side=right]/sheet-content:-left-9 group-data-[side=right]/sheet-content:top-4",
71
+ className: cn("pointer-events-auto absolute z-10 size-7 border border-line bg-surface p-0 text-fg-primary shadow-(--elevation-e1-shadow) hover:bg-surface-raised group-data-[side=bottom]/sheet-content:-top-9 group-data-[side=bottom]/sheet-content:right-4 group-data-[side=top]/sheet-content:-bottom-9 group-data-[side=top]/sheet-content:right-4 group-data-[side=left]/sheet-content:-right-9 group-data-[side=left]/sheet-content:top-4 group-data-[side=right]/sheet-content:-left-9 group-data-[side=right]/sheet-content:top-4", nestingEffect === "stack" && "group-data-[nested-dialog-open]/sheet-content:hidden"),
69
72
  size: "icon-xs",
70
73
  children: [/* @__PURE__ */ jsx(X, {}), /* @__PURE__ */ jsx("span", {
71
74
  className: "sr-only",
package/dist/sidebar.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Separator } from "./separator.js";
2
- import { t as Button } from "./button-DW5OijoR.js";
3
- import { t as Input } from "./input-CfoEJ8A6.js";
2
+ import { t as Button } from "./button-BS5KCibF.js";
3
+ import { Input } from "./input.js";
4
4
  import { TooltipContent } from "./tooltip.js";
5
5
  import { useRender } from "@base-ui/react/use-render";
6
6
  import { VariantProps } from "class-variance-authority";
package/dist/sidebar.js CHANGED
@@ -108,6 +108,7 @@ function Sidebar({ side = "left", variant = "sidebar", collapsible = "offcanvas"
108
108
  "data-sidebar": "sidebar",
109
109
  "data-slot": "sidebar",
110
110
  "data-mobile": "true",
111
+ popupClassName: "min-w-10/12 w-(--layout-nav-width) max-w-screen",
111
112
  className: "min-w-10/12 w-(--layout-nav-width) max-w-screen border-none bg-surface p-0 text-fg-secondary [&>button]:hidden",
112
113
  style: { "--layout-nav-width": SIDEBAR_WIDTH_MOBILE },
113
114
  side: "right",
@@ -0,0 +1,33 @@
1
+ import { ReactNode } from "react";
2
+ //#region src/size-context.d.ts
3
+ type ComponentSize = "sm" | "md" | "lg";
4
+ type ResponsiveValue<T extends string> = {
5
+ base: T;
6
+ md?: T;
7
+ lg?: T;
8
+ };
9
+ type ResolvedResponsiveValue<T extends string> = Required<ResponsiveValue<T>>;
10
+ type ResponsiveComponentSize = ResponsiveValue<ComponentSize>;
11
+ type ComponentSizeValue = ComponentSize | ResponsiveComponentSize;
12
+ declare function useInheritedComponentSize(): ComponentSizeValue | undefined;
13
+ declare function SizeProvider({ children, size }: {
14
+ children: ReactNode;
15
+ size?: ComponentSizeValue | null;
16
+ }): import("react").JSX.Element;
17
+ declare function useComponentSize(size?: ComponentSize | null, fallback?: ComponentSize): ComponentSize;
18
+ declare function useComponentSizeValue(size?: ComponentSizeValue | null, fallback?: ComponentSize): "lg" | "md" | "sm" | ResponsiveComponentSize;
19
+ declare function resolveResponsiveValue<T extends string>(value: T | ResponsiveValue<T>): ResolvedResponsiveValue<T>;
20
+ declare function resolveResponsiveComponentSize(size: ComponentSizeValue): Required<ResponsiveValue<ComponentSize>>;
21
+ declare function responsiveValueClasses<T extends string>(value: T | ResponsiveValue<T>, classes: {
22
+ base: Record<T, string>;
23
+ md: Record<T, string>;
24
+ lg: Record<T, string>;
25
+ }): {
26
+ base: T;
27
+ md: T;
28
+ lg: T;
29
+ responsive: boolean;
30
+ className: string;
31
+ };
32
+ //#endregion
33
+ export { ResponsiveValue as a, resolveResponsiveValue as c, useComponentSizeValue as d, useInheritedComponentSize as f, ResponsiveComponentSize as i, responsiveValueClasses as l, ComponentSizeValue as n, SizeProvider as o, ResolvedResponsiveValue as r, resolveResponsiveComponentSize as s, ComponentSize as t, useComponentSize as u };
@@ -1,2 +1,2 @@
1
- import { i as useInheritedComponentSize, n as SizeProvider, r as useComponentSize, t as ComponentSize } from "./size-context-BX6kAdVj.js";
2
- export { type ComponentSize, SizeProvider, useComponentSize, useInheritedComponentSize };
1
+ import { a as ResponsiveValue, c as resolveResponsiveValue, d as useComponentSizeValue, f as useInheritedComponentSize, i as ResponsiveComponentSize, l as responsiveValueClasses, n as ComponentSizeValue, o as SizeProvider, r as ResolvedResponsiveValue, s as resolveResponsiveComponentSize, t as ComponentSize, u as useComponentSize } from "./size-context-BVhHduLi.js";
2
+ export { type ComponentSize, type ComponentSizeValue, type ResolvedResponsiveValue, type ResponsiveComponentSize, type ResponsiveValue, SizeProvider, resolveResponsiveComponentSize, resolveResponsiveValue, responsiveValueClasses, useComponentSize, useComponentSizeValue, useInheritedComponentSize };
@@ -14,8 +14,37 @@ function SizeProvider({ children, size }) {
14
14
  });
15
15
  }
16
16
  function useComponentSize(size, fallback = "md") {
17
+ const inheritedSize = useInheritedComponentSize();
18
+ const resolved = size ?? inheritedSize ?? fallback;
19
+ return typeof resolved === "string" ? resolved : resolved.base;
20
+ }
21
+ function useComponentSizeValue(size, fallback = "md") {
17
22
  const inheritedSize = useInheritedComponentSize();
18
23
  return size ?? inheritedSize ?? fallback;
19
24
  }
25
+ function resolveResponsiveValue(value) {
26
+ if (typeof value === "string") return {
27
+ base: value,
28
+ md: value,
29
+ lg: value
30
+ };
31
+ const md = value.md ?? value.base;
32
+ return {
33
+ base: value.base,
34
+ md,
35
+ lg: value.lg ?? md
36
+ };
37
+ }
38
+ function resolveResponsiveComponentSize(size) {
39
+ return resolveResponsiveValue(size);
40
+ }
41
+ function responsiveValueClasses(value, classes) {
42
+ const resolved = resolveResponsiveValue(value);
43
+ return {
44
+ ...resolved,
45
+ responsive: typeof value !== "string",
46
+ className: typeof value === "string" ? classes.base[resolved.base] : `${classes.base[resolved.base]} ${classes.md[resolved.md]} ${classes.lg[resolved.lg]}`
47
+ };
48
+ }
20
49
  //#endregion
21
- export { SizeProvider, useComponentSize, useInheritedComponentSize };
50
+ export { SizeProvider, resolveResponsiveComponentSize, resolveResponsiveValue, responsiveValueClasses, useComponentSize, useComponentSizeValue, useInheritedComponentSize };
package/dist/slider.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { VariantProps } from "class-variance-authority";
1
+ import { n as ComponentSizeValue } from "./size-context-BVhHduLi.js";
2
2
  import * as React from "react";
3
3
  import { Slider as Slider$1 } from "@base-ui/react/slider";
4
4
  //#region src/slider.d.ts
@@ -6,8 +6,10 @@ declare const sliderVariants: (props?: ({
6
6
  size?: "lg" | "md" | "sm" | null | undefined;
7
7
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
8
  type SliderRootValue = number | readonly number[];
9
- type SliderSize = NonNullable<VariantProps<typeof sliderVariants>["size"]>;
10
- type SliderProps<Value extends SliderRootValue = SliderRootValue> = Slider$1.Root.Props<Value> & VariantProps<typeof sliderVariants>;
9
+ type SliderSize = ComponentSizeValue;
10
+ type SliderProps<Value extends SliderRootValue = SliderRootValue> = Slider$1.Root.Props<Value> & {
11
+ size?: SliderSize;
12
+ };
11
13
  type SliderControlProps = Slider$1.Control.Props;
12
14
  type SliderTrackProps = Slider$1.Track.Props;
13
15
  type SliderIndicatorProps = Slider$1.Indicator.Props;
package/dist/slider.js CHANGED
@@ -1,34 +1,49 @@
1
1
  "use client";
2
2
  import { cn } from "./utils/cn.js";
3
- import { SizeProvider, useComponentSize } from "./size-context.js";
3
+ import { SizeProvider, responsiveValueClasses, useComponentSizeValue } from "./size-context.js";
4
4
  import { jsx } from "react/jsx-runtime";
5
5
  import { cva } from "class-variance-authority";
6
6
  import { Slider as Slider$1 } from "@base-ui/react/slider";
7
7
  //#region src/slider.tsx
8
+ const sliderSizeVariants = {
9
+ sm: "[--slider-thumb-size:1rem] [--slider-track-size:0.25rem]",
10
+ md: "[--slider-thumb-size:1.25rem] [--slider-track-size:0.375rem]",
11
+ lg: "[--slider-thumb-size:1.5rem] [--slider-track-size:0.5rem]"
12
+ };
8
13
  const sliderVariants = cva("group/slider grid w-full gap-2 disabled:cursor-not-allowed disabled:opacity-60 data-[disabled=true]:cursor-not-allowed data-[disabled=true]:opacity-60", {
9
- variants: { size: {
10
- sm: "[--slider-thumb-size:1rem] [--slider-track-size:0.25rem]",
11
- md: "[--slider-thumb-size:1.25rem] [--slider-track-size:0.375rem]",
12
- lg: "[--slider-thumb-size:1.5rem] [--slider-track-size:0.5rem]"
13
- } },
14
+ variants: { size: sliderSizeVariants },
14
15
  defaultVariants: { size: "md" }
15
16
  });
16
17
  function Slider({ className, children, size, disabled = false, ...props }) {
17
- const resolvedSize = useComponentSize(size);
18
+ const sizeValue = useComponentSizeValue(size);
19
+ const resolvedSize = responsiveValueClasses(sizeValue, responsiveSliderSizes);
18
20
  return /* @__PURE__ */ jsx(SizeProvider, {
19
- size: resolvedSize,
21
+ size: sizeValue,
20
22
  children: /* @__PURE__ */ jsx(Slider$1.Root, {
21
23
  thumbAlignment: "edge",
22
24
  disabled,
23
25
  "data-disabled": disabled,
24
- "data-size": resolvedSize,
26
+ "data-size": resolvedSize.base,
25
27
  "data-slot": "slider",
26
- className: cn(sliderVariants({ size: resolvedSize }), className),
28
+ className: cn(sliderVariants({ size: null }), resolvedSize.className, className),
27
29
  ...props,
28
30
  children
29
31
  })
30
32
  });
31
33
  }
34
+ const responsiveSliderSizes = {
35
+ base: sliderSizeVariants,
36
+ md: {
37
+ sm: "md:[--slider-thumb-size:1rem] md:[--slider-track-size:0.25rem]",
38
+ md: "md:[--slider-thumb-size:1.25rem] md:[--slider-track-size:0.375rem]",
39
+ lg: "md:[--slider-thumb-size:1.5rem] md:[--slider-track-size:0.5rem]"
40
+ },
41
+ lg: {
42
+ sm: "lg:[--slider-thumb-size:1rem] lg:[--slider-track-size:0.25rem]",
43
+ md: "lg:[--slider-thumb-size:1.25rem] lg:[--slider-track-size:0.375rem]",
44
+ lg: "lg:[--slider-thumb-size:1.5rem] lg:[--slider-track-size:0.5rem]"
45
+ }
46
+ };
32
47
  function SliderControl({ className, ...props }) {
33
48
  return /* @__PURE__ */ jsx(Slider$1.Control, {
34
49
  "data-slot": "slider-control",
package/dist/sonar.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { t as ComponentSize } from "./size-context-BX6kAdVj.js";
1
+ import { t as ComponentSize } from "./size-context-BVhHduLi.js";
2
2
  import { VariantProps } from "class-variance-authority";
3
3
  import * as React from "react";
4
4
  //#region src/sonar.d.ts
@@ -44,7 +44,9 @@ type SonarProps = React.ComponentProps<"span"> & VariantProps<typeof sonarWaveVa
44
44
  * child.
45
45
  *
46
46
  * The rings are painted with `box-shadow` spread, which lives outside the
47
- * element's box, so an ancestor with `overflow: hidden` will clip them.
47
+ * element's box, so an ancestor with `overflow: hidden` will clip them. They
48
+ * sit behind the child with its shape punched out of them, so nothing paints
49
+ * inside it whatever background — or none — the child has of its own.
48
50
  */
49
51
  declare function Sonar({ className, children, active, waves, size, tone, radius, style, ...props }: SonarProps): React.JSX.Element;
50
52
  //#endregion