@giddaa-housing/ui 1.2.0 → 2.1.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.
package/dist/table.js CHANGED
@@ -79,7 +79,7 @@ function TableRow({ className, ...props }) {
79
79
  function TableHead({ className, pinnedSide, ...props }) {
80
80
  return /* @__PURE__ */ jsx("th", {
81
81
  "data-slot": "table-head",
82
- className: cn("relative h-14 px-6 py-4 text-left align-middle bg-surface-raised", "text-gdt-sm font-semibold text-fg-secondary", "whitespace-nowrap has-[[role=checkbox]]:pr-0", getPinnedDividerClassName(pinnedSide), className),
82
+ className: cn("relative h-14 px-6 py-4 text-left align-middle bg-surface-raised", "text-gdt-sm font-semibold text-fg-secondary", "break-words has-[[role=checkbox]]:pr-0", getPinnedDividerClassName(pinnedSide), className),
83
83
  ...props
84
84
  });
85
85
  }
@@ -95,7 +95,7 @@ function TableHead({ className, pinnedSide, ...props }) {
95
95
  function TableCell({ className, pinned = false, pinnedSide, ...props }) {
96
96
  return /* @__PURE__ */ jsx("td", {
97
97
  "data-slot": "table-cell",
98
- className: cn("relative h-14 px-6 py-4 align-middle text-gdt-sm text-fg-primary", "whitespace-nowrap", pinned && "bg-canvas transition-[background-color,filter] group-hover:bg-surface group-active:bg-surface-raised group-data-[state=selected]:bg-surface-brand-subtle group-data-[state=selected]:group-hover:bg-surface-brand-subtle group-data-[state=selected]:group-hover:brightness-95 group-data-[state=selected]:group-active:brightness-90", getPinnedDividerClassName(pinnedSide), className),
98
+ className: cn("relative h-14 px-6 py-4 align-middle text-gdt-sm text-fg-primary", "break-words", pinned && "bg-canvas transition-[background-color,filter] group-hover:bg-surface group-active:bg-surface-raised group-data-[state=selected]:bg-surface-brand-subtle group-data-[state=selected]:group-hover:bg-surface-brand-subtle group-data-[state=selected]:group-hover:brightness-95 group-data-[state=selected]:group-active:brightness-90", getPinnedDividerClassName(pinnedSide), className),
99
99
  ...props
100
100
  });
101
101
  }
package/dist/tabs.d.ts CHANGED
@@ -4,19 +4,25 @@ import { Tabs as Tabs$1 } from "@base-ui/react/tabs";
4
4
  //#region src/tabs.d.ts
5
5
  type TabsListVariant = "default" | "line" | "secondary" | "underline";
6
6
  declare function Tabs({ className, orientation, size, ...props }: Tabs$1.Root.Props & {
7
+ /**
8
+ * @deprecated Pass `size` to `TabsList` instead — the root is
9
+ * orchestration-only and doesn't render the triggers it used to size.
10
+ * Forwarded through context for now; removed in the next major.
11
+ */
7
12
  size?: ComponentSize;
8
13
  }): import("react").JSX.Element;
9
14
  declare const tabsListVariants: (props?: ({
10
15
  variant?: "secondary" | "underline" | null | undefined;
11
16
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
12
- declare function TabsList({ className, variant, children, ...props }: Tabs$1.List.Props & {
17
+ declare function TabsList({ className, variant, size, children, ...props }: Tabs$1.List.Props & {
13
18
  variant?: TabsListVariant;
19
+ size?: ComponentSize;
14
20
  }): import("react").JSX.Element;
15
21
  /**
16
22
  * Trigger styling, exported so recipes (e.g. an overflow "More" button that
17
- * isn't a real tab) can render the same look. Reads `variant` off the parent
18
- * `group/tabs-list` and `size` off the ancestor `group/tabs`, so it stays in
19
- * sync wherever it lives inside a `Tabs` tree.
23
+ * isn't a real tab) can render the same look. Reads both `variant` and `size`
24
+ * off the parent `group/tabs-list`, so it stays in sync wherever it lives
25
+ * inside a `Tabs` tree.
20
26
  */
21
27
  declare const tabsTriggerClassName: string;
22
28
  declare function TabsTrigger({ className, nativeButton, ...props }: Tabs$1.Tab.Props): import("react").JSX.Element;
package/dist/tabs.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { t as cn } from "./cn-BI_4DMBf.js";
3
- import { useComponentSize } from "./size-context.js";
3
+ import { SizeProvider, useComponentSize } from "./size-context.js";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
5
  import { cva } from "class-variance-authority";
6
6
  import { Tabs as Tabs$1 } from "@base-ui/react/tabs";
@@ -13,27 +13,31 @@ function resolveTabsListVariant(variant) {
13
13
  return variant === "default" ? "secondary" : variant === "line" ? "underline" : variant;
14
14
  }
15
15
  function Tabs({ className, orientation = "horizontal", size, ...props }) {
16
- const resolvedSize = useComponentSize(size);
17
- return /* @__PURE__ */ jsx(Tabs$1.Root, {
16
+ const root = /* @__PURE__ */ jsx(Tabs$1.Root, {
18
17
  "data-slot": "tabs",
19
18
  "data-orientation": orientation,
20
- "data-size": resolvedSize,
21
19
  className: cn("group/tabs flex gap-3 data-[orientation=horizontal]:flex-col", className),
22
20
  ...props
23
21
  });
22
+ return size ? /* @__PURE__ */ jsx(SizeProvider, {
23
+ size,
24
+ children: root
25
+ }) : root;
24
26
  }
25
- const tabsListVariants = cva(cn("group/tabs-list relative inline-flex w-fit shrink-0 items-center gap-1 text-fg-secondary", "group-data-[orientation=horizontal]/tabs:border-b group-data-[orientation=horizontal]/tabs:border-line-subtle", "group-data-[orientation=vertical]/tabs:flex-col group-data-[orientation=vertical]/tabs:border-l group-data-[orientation=vertical]/tabs:border-line-subtle"), {
27
+ const tabsListVariants = cva(cn("group/tabs-list relative inline-flex w-fit shrink-0 items-center gap-1 text-fg-secondary", "group-data-[orientation=vertical]/tabs:flex-col"), {
26
28
  variants: { variant: {
27
- underline: "rounded-none bg-transparent p-0",
29
+ underline: cn("rounded-none bg-transparent p-0", "group-data-[orientation=horizontal]/tabs:border-b group-data-[orientation=horizontal]/tabs:border-line-subtle", "group-data-[orientation=vertical]/tabs:border-l group-data-[orientation=vertical]/tabs:border-line-subtle"),
28
30
  secondary: "rounded-4xl bg-transparent p-0"
29
31
  } },
30
32
  defaultVariants: { variant: "underline" }
31
33
  });
32
- function TabsList({ className, variant = "underline", children, ...props }) {
34
+ function TabsList({ className, variant = "underline", size, children, ...props }) {
33
35
  const resolvedVariant = resolveTabsListVariant(variant);
36
+ const resolvedSize = useComponentSize(size);
34
37
  return /* @__PURE__ */ jsxs(Tabs$1.List, {
35
38
  "data-slot": "tabs-list",
36
39
  "data-variant": resolvedVariant,
40
+ "data-size": resolvedSize,
37
41
  className: cn(tabsListVariants({ variant: resolvedVariant }), className),
38
42
  ...props,
39
43
  children: [children, /* @__PURE__ */ jsx(Tabs$1.Indicator, { className: cn("pointer-events-none absolute left-0 top-0 z-0 h-(--active-tab-height) w-(--active-tab-width) translate-x-(--active-tab-left) translate-y-(--active-tab-top) transition-[transform,width,height] duration-200 ease-in-out", "group-data-[variant=secondary]/tabs-list:hidden", "group-data-[variant=underline]/tabs-list:rounded-none group-data-[variant=underline]/tabs-list:bg-line-focus group-data-[variant=underline]/tabs-list:shadow-none", "group-data-[orientation=horizontal]/tabs:group-data-[variant=underline]/tabs-list:top-auto group-data-[orientation=horizontal]/tabs:group-data-[variant=underline]/tabs-list:bottom-[-1px] group-data-[orientation=horizontal]/tabs:group-data-[variant=underline]/tabs-list:h-0.5! group-data-[orientation=horizontal]/tabs:group-data-[variant=underline]/tabs-list:translate-y-0", "group-data-[orientation=vertical]/tabs:group-data-[variant=underline]/tabs-list:left-auto group-data-[orientation=vertical]/tabs:group-data-[variant=underline]/tabs-list:right-[-1px] group-data-[orientation=vertical]/tabs:group-data-[variant=underline]/tabs-list:w-0.5! group-data-[orientation=vertical]/tabs:group-data-[variant=underline]/tabs-list:translate-x-0") })]
@@ -41,11 +45,11 @@ function TabsList({ className, variant = "underline", children, ...props }) {
41
45
  }
42
46
  /**
43
47
  * Trigger styling, exported so recipes (e.g. an overflow "More" button that
44
- * isn't a real tab) can render the same look. Reads `variant` off the parent
45
- * `group/tabs-list` and `size` off the ancestor `group/tabs`, so it stays in
46
- * sync wherever it lives inside a `Tabs` tree.
48
+ * isn't a real tab) can render the same look. Reads both `variant` and `size`
49
+ * off the parent `group/tabs-list`, so it stays in sync wherever it lives
50
+ * inside a `Tabs` tree.
47
51
  */
48
- const tabsTriggerClassName = cn("group/tabs-trigger relative inline-flex shrink-0 items-center justify-center gap-2 whitespace-nowrap border border-transparent font-semibold outline-none transition-[background-color,color,box-shadow]", "focus-visible:shadow-[0px_0px_0px_2px_var(--color-line-focus)]", "disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50", "group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start", "[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg]:text-current", "group-data-[size=sm]/tabs:text-gdt-xs group-data-[size=sm]/tabs:[&_svg:not([class*='size-'])]:size-3.5", "group-data-[size=md]/tabs:text-gdt-sm group-data-[size=md]/tabs:[&_svg:not([class*='size-'])]:size-4", "group-data-[size=lg]/tabs:text-gdt-md group-data-[size=lg]/tabs:[&_svg:not([class*='size-'])]:size-4.5", "group-data-[variant=underline]/tabs-list:group-data-[size=sm]/tabs:px-3 group-data-[variant=underline]/tabs-list:group-data-[size=sm]/tabs:py-1", "group-data-[variant=underline]/tabs-list:group-data-[size=md]/tabs:px-3.5 group-data-[variant=underline]/tabs-list:group-data-[size=md]/tabs:py-1.5", "group-data-[variant=underline]/tabs-list:group-data-[size=lg]/tabs:px-4 group-data-[variant=underline]/tabs-list:group-data-[size=lg]/tabs:py-1.5", "group-data-[variant=secondary]/tabs-list:group-data-[size=sm]/tabs:px-3 group-data-[variant=secondary]/tabs-list:group-data-[size=sm]/tabs:py-1", "group-data-[variant=secondary]/tabs-list:group-data-[size=md]/tabs:px-3.5 group-data-[variant=secondary]/tabs-list:group-data-[size=md]/tabs:py-1.5", "group-data-[variant=secondary]/tabs-list:group-data-[size=lg]/tabs:px-4 group-data-[variant=secondary]/tabs-list:group-data-[size=lg]/tabs:py-2", "group-data-[variant=underline]/tabs-list:-mb-px group-data-[variant=underline]/tabs-list:rounded-none group-data-[variant=underline]/tabs-list:text-fg-secondary group-data-[variant=underline]/tabs-list:hover:text-fg-primary group-data-[variant=underline]/tabs-list:data-active:text-fg-primary", "group-data-[variant=secondary]/tabs-list:rounded-4xl group-data-[variant=secondary]/tabs-list:bg-surface-raised group-data-[variant=secondary]/tabs-list:text-fg-secondary group-data-[variant=secondary]/tabs-list:hover:bg-surface group-data-[variant=secondary]/tabs-list:hover:text-fg-primary group-data-[variant=secondary]/tabs-list:data-active:bg-surface-brand group-data-[variant=secondary]/tabs-list:data-active:text-fg-on-brand group-data-[variant=secondary]/tabs-list:data-active:shadow-(--elevation-e1-shadow) group-data-[variant=secondary]/tabs-list:data-active:hover:bg-surface-brand group-data-[variant=secondary]/tabs-list:data-active:hover:text-fg-on-brand");
52
+ const tabsTriggerClassName = cn("group/tabs-trigger relative inline-flex shrink-0 items-center justify-center gap-2 whitespace-nowrap border border-transparent font-semibold outline-none transition-[background-color,color,box-shadow]", "focus-visible:shadow-[0px_0px_0px_2px_var(--color-line-focus)]", "disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50", "group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start", "[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg]:text-current", "group-data-[size=sm]/tabs-list:text-gdt-xs group-data-[size=sm]/tabs-list:[&_svg:not([class*='size-'])]:size-3.5", "group-data-[size=md]/tabs-list:text-gdt-sm group-data-[size=md]/tabs-list:[&_svg:not([class*='size-'])]:size-4", "group-data-[size=lg]/tabs-list:text-gdt-md group-data-[size=lg]/tabs-list:[&_svg:not([class*='size-'])]:size-4.5", "group-data-[variant=underline]/tabs-list:group-data-[size=sm]/tabs-list:px-3 group-data-[variant=underline]/tabs-list:group-data-[size=sm]/tabs-list:py-1", "group-data-[variant=underline]/tabs-list:group-data-[size=md]/tabs-list:px-3.5 group-data-[variant=underline]/tabs-list:group-data-[size=md]/tabs-list:py-1.5", "group-data-[variant=underline]/tabs-list:group-data-[size=lg]/tabs-list:px-4 group-data-[variant=underline]/tabs-list:group-data-[size=lg]/tabs-list:py-1.5", "group-data-[variant=secondary]/tabs-list:group-data-[size=sm]/tabs-list:px-3 group-data-[variant=secondary]/tabs-list:group-data-[size=sm]/tabs-list:py-1", "group-data-[variant=secondary]/tabs-list:group-data-[size=md]/tabs-list:px-3.5 group-data-[variant=secondary]/tabs-list:group-data-[size=md]/tabs-list:py-1.5", "group-data-[variant=secondary]/tabs-list:group-data-[size=lg]/tabs-list:px-4 group-data-[variant=secondary]/tabs-list:group-data-[size=lg]/tabs-list:py-2", "group-data-[variant=underline]/tabs-list:-mb-px group-data-[variant=underline]/tabs-list:rounded-none group-data-[variant=underline]/tabs-list:text-fg-secondary group-data-[variant=underline]/tabs-list:hover:text-fg-primary group-data-[variant=underline]/tabs-list:data-active:text-fg-primary", "group-data-[variant=secondary]/tabs-list:rounded-4xl group-data-[variant=secondary]/tabs-list:bg-surface-raised group-data-[variant=secondary]/tabs-list:text-fg-secondary group-data-[variant=secondary]/tabs-list:hover:bg-surface group-data-[variant=secondary]/tabs-list:hover:text-fg-primary group-data-[variant=secondary]/tabs-list:data-active:bg-surface-brand group-data-[variant=secondary]/tabs-list:data-active:text-fg-on-brand group-data-[variant=secondary]/tabs-list:data-active:shadow-(--elevation-e1-shadow) group-data-[variant=secondary]/tabs-list:data-active:hover:bg-surface-brand group-data-[variant=secondary]/tabs-list:data-active:hover:text-fg-on-brand");
49
53
  function TabsTrigger({ className, nativeButton = true, ...props }) {
50
54
  return /* @__PURE__ */ jsx(Tabs$1.Tab, {
51
55
  "data-slot": "tabs-trigger",
@@ -95,7 +99,7 @@ function TabsCount({ className, count, abbreviate, max, loading, children, ...pr
95
99
  "data-slot": "tabs-count",
96
100
  "data-loading": loading || void 0,
97
101
  "aria-busy": loading || void 0,
98
- className: cn("inline-flex items-center justify-center rounded-full font-semibold leading-none transition-[background-color,color]", "group-data-[size=sm]/tabs:h-4 group-data-[size=sm]/tabs:min-w-4 group-data-[size=sm]/tabs:px-1 group-data-[size=sm]/tabs:text-[10px]", "group-data-[size=md]/tabs:h-5 group-data-[size=md]/tabs:min-w-5 group-data-[size=md]/tabs:px-1 group-data-[size=md]/tabs:text-[11px]", "group-data-[size=lg]/tabs:h-5 group-data-[size=lg]/tabs:min-w-5 group-data-[size=lg]/tabs:px-1.5 group-data-[size=lg]/tabs:text-gdt-xs", "group-data-[variant=underline]/tabs-list:bg-surface-raised group-data-[variant=underline]/tabs-list:text-fg-secondary group-data-[variant=underline]/tabs-list:group-data-[active]/tabs-trigger:bg-surface-brand-subtle group-data-[variant=underline]/tabs-list:group-data-[active]/tabs-trigger:text-fg-brand", "group-data-[variant=secondary]/tabs-list:bg-surface-overlay group-data-[variant=secondary]/tabs-list:text-fg-secondary group-data-[variant=secondary]/tabs-list:group-data-[active]/tabs-trigger:bg-surface-brand-subtle group-data-[variant=secondary]/tabs-list:group-data-[active]/tabs-trigger:text-fg-brand", "data-loading:animate-pulse", className),
102
+ className: cn("inline-flex items-center justify-center rounded-full font-semibold leading-none transition-[background-color,color]", "group-data-[size=sm]/tabs-list:h-4 group-data-[size=sm]/tabs-list:min-w-4 group-data-[size=sm]/tabs-list:px-1 group-data-[size=sm]/tabs-list:text-[10px]", "group-data-[size=md]/tabs-list:h-5 group-data-[size=md]/tabs-list:min-w-5 group-data-[size=md]/tabs-list:px-1 group-data-[size=md]/tabs-list:text-[11px]", "group-data-[size=lg]/tabs-list:h-5 group-data-[size=lg]/tabs-list:min-w-5 group-data-[size=lg]/tabs-list:px-1.5 group-data-[size=lg]/tabs-list:text-gdt-xs", "group-data-[variant=underline]/tabs-list:bg-surface-raised group-data-[variant=underline]/tabs-list:text-fg-secondary group-data-[variant=underline]/tabs-list:group-data-[active]/tabs-trigger:bg-surface-brand-subtle group-data-[variant=underline]/tabs-list:group-data-[active]/tabs-trigger:text-fg-brand", "group-data-[variant=secondary]/tabs-list:bg-surface-overlay group-data-[variant=secondary]/tabs-list:text-fg-secondary group-data-[variant=secondary]/tabs-list:group-data-[active]/tabs-trigger:bg-surface-brand-subtle group-data-[variant=secondary]/tabs-list:group-data-[active]/tabs-trigger:text-fg-brand", "data-loading:animate-pulse", className),
99
103
  ...props,
100
104
  children: content
101
105
  });
@@ -1,3 +1,4 @@
1
+ import { n as InputSize } from "./input-CfoEJ8A6.js";
1
2
  import * as React from "react";
2
3
  //#region src/time-picker.d.ts
3
4
  interface TimePickerProps {
@@ -5,9 +6,11 @@ interface TimePickerProps {
5
6
  onChange?: (time: string | undefined) => void;
6
7
  format?: "12h" | "24h";
7
8
  disabled?: boolean;
9
+ /** Controls the trigger size. The time selection panel is not resized. */
10
+ size?: InputSize;
8
11
  placeholder?: string;
9
12
  className?: string;
10
13
  }
11
- declare function TimePicker({ value, onChange, format, disabled, placeholder, className }: TimePickerProps): React.JSX.Element;
14
+ declare function TimePicker({ value, onChange, format, disabled, size, placeholder, className }: TimePickerProps): React.JSX.Element;
12
15
  //#endregion
13
16
  export { TimePicker, type TimePickerProps };
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { t as cn } from "./cn-BI_4DMBf.js";
3
3
  import { Popover, PopoverContent } from "./popover.js";
4
- import { n as PickerTrigger, t as PickerFooter } from "./picker-lzgmsNfG.js";
4
+ import { n as PickerFooter, r as PickerTrigger, t as PICKER_COLLISION_AVOIDANCE } from "./picker-xSTzeYhc.js";
5
5
  import { ClockIcon } from "lucide-react";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
7
7
  import * as React from "react";
@@ -132,7 +132,7 @@ function TimeColumn({ label, items, value, onChange }) {
132
132
  role: "listbox",
133
133
  "aria-label": label,
134
134
  style: { height: `${VISIBLE_COUNT * ITEM_HEIGHT}px` },
135
- className: "relative snap-y snap-mandatory overflow-y-scroll overscroll-contain [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",
135
+ className: "relative snap-y snap-mandatory overflow-y-scroll overscroll-contain scrollbar-none [&::-webkit-scrollbar]:hidden",
136
136
  children: /* @__PURE__ */ jsx("div", {
137
137
  style: {
138
138
  paddingTop: `${SCROLL_PADDING}px`,
@@ -161,7 +161,7 @@ function TimeColumn({ label, items, value, onChange }) {
161
161
  })]
162
162
  });
163
163
  }
164
- function TimePicker({ value, onChange, format = "12h", disabled = false, placeholder = "Select time", className }) {
164
+ function TimePicker({ value, onChange, format = "12h", disabled = false, size, placeholder = "Select time", className }) {
165
165
  const [open, setOpen] = React.useState(false);
166
166
  const [pending, setPending] = React.useState(() => parseTimeString(value, format));
167
167
  function handleOpenChange(next) {
@@ -191,11 +191,14 @@ function TimePicker({ value, onChange, format = "12h", disabled = false, placeho
191
191
  placeholder,
192
192
  disabled,
193
193
  open,
194
+ size,
194
195
  className
195
196
  }), /* @__PURE__ */ jsxs(PopoverContent, {
196
197
  showArrow: false,
197
- align: "start",
198
- className: "min-w-(--anchor-width) gap-0 overflow-hidden rounded-2xl p-0",
198
+ align: "center",
199
+ side: "bottom",
200
+ collisionAvoidance: PICKER_COLLISION_AVOIDANCE,
201
+ className: "min-w-(--anchor-width) gap-0 overflow-hidden rounded-2xl p-0 border border-line-subtle",
199
202
  children: [
200
203
  /* @__PURE__ */ jsx("div", {
201
204
  className: "flex w-full items-center justify-center gap-2 border-b border-line-subtle",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@giddaa-housing/ui",
3
- "version": "1.2.0",
3
+ "version": "2.1.0",
4
4
  "description": "Giddaa reusable UI component library.",
5
5
  "type": "module",
6
6
  "private": false,
@@ -137,6 +137,10 @@
137
137
  "types": "./dist/filter.d.ts",
138
138
  "import": "./dist/filter.js"
139
139
  },
140
+ "./file-upload": {
141
+ "types": "./dist/file-upload.d.ts",
142
+ "import": "./dist/file-upload.js"
143
+ },
140
144
  "./footer": {
141
145
  "types": "./dist/footer.d.ts",
142
146
  "import": "./dist/footer.js"
@@ -157,6 +161,10 @@
157
161
  "types": "./dist/infotip.d.ts",
158
162
  "import": "./dist/infotip.js"
159
163
  },
164
+ "./infinite-scroll": {
165
+ "types": "./dist/infinite-scroll.d.ts",
166
+ "import": "./dist/infinite-scroll.js"
167
+ },
160
168
  "./input": {
161
169
  "types": "./dist/input.d.ts",
162
170
  "import": "./dist/input.js"
@@ -165,6 +173,10 @@
165
173
  "types": "./dist/input-group.d.ts",
166
174
  "import": "./dist/input-group.js"
167
175
  },
176
+ "./input-otp": {
177
+ "types": "./dist/input-otp.d.ts",
178
+ "import": "./dist/input-otp.js"
179
+ },
168
180
  "./input-size-context": {
169
181
  "types": "./dist/input-size-context.d.ts",
170
182
  "import": "./dist/input-size-context.js"
@@ -375,6 +387,7 @@
375
387
  },
376
388
  "dependencies": {
377
389
  "@base-ui/react": "^1.5.0",
390
+ "@tanstack/react-virtual": "^3.14.7",
378
391
  "@tiptap/extension-color": "^3.22.5",
379
392
  "@tiptap/extension-image": "^3.22.5",
380
393
  "@tiptap/extension-placeholder": "^3.22.5",
@@ -1,32 +0,0 @@
1
- import { t as cn } from "./cn-BI_4DMBf.js";
2
- import { Button } from "./button.js";
3
- import { PopoverTrigger } from "./popover.js";
4
- import { jsx, jsxs } from "react/jsx-runtime";
5
- //#region src/lib/picker.tsx
6
- function PickerTrigger({ icon: Icon, displayValue, placeholder, disabled, open, className }) {
7
- return /* @__PURE__ */ jsxs(PopoverTrigger, {
8
- disabled,
9
- className: cn("flex h-10 w-full items-center justify-between rounded-full border px-3.5 text-gdt-sm transition-[border-color,box-shadow] outline-none", disabled ? "cursor-not-allowed border-line-subtle bg-surface text-fg-caption-placeholder" : open ? "border-line-focus bg-canvas text-fg-primary inset-ring-1 inset-ring-line-focus" : "border-line bg-canvas text-fg-primary hover:border-line-strong", className),
10
- children: [/* @__PURE__ */ jsx("span", {
11
- className: cn("min-w-0 truncate", !displayValue && "text-fg-caption-placeholder"),
12
- children: displayValue || placeholder
13
- }), /* @__PURE__ */ jsx(Icon, { className: cn("ml-2 size-4 shrink-0", disabled ? "text-fg-caption-placeholder" : "text-fg-secondary") })]
14
- });
15
- }
16
- function PickerFooter({ secondaryLabel, onSecondary, onApply }) {
17
- return /* @__PURE__ */ jsxs("div", {
18
- className: "flex w-full items-center justify-between border-t border-line-subtle px-4 py-3",
19
- children: [/* @__PURE__ */ jsx(Button, {
20
- variant: "tertiary-outline",
21
- size: "sm",
22
- onClick: onSecondary,
23
- children: secondaryLabel
24
- }), /* @__PURE__ */ jsx(Button, {
25
- size: "sm",
26
- onClick: onApply,
27
- children: "Apply"
28
- })]
29
- });
30
- }
31
- //#endregion
32
- export { PickerTrigger as n, PickerFooter as t };