@vikram-hegde/skeletal 0.0.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 (118) hide show
  1. package/README.md +35 -0
  2. package/dist/alert-dialog/index.d.ts +2 -0
  3. package/dist/alert-dialog/index.js +2 -0
  4. package/dist/alert-dialog-1hxVC_5N.js +71 -0
  5. package/dist/badge/index.d.ts +2 -0
  6. package/dist/badge/index.js +2 -0
  7. package/dist/badge-C3p1L0E7.css +53 -0
  8. package/dist/badge-C3p1L0E7.js +32 -0
  9. package/dist/button/index.d.ts +2 -0
  10. package/dist/button/index.js +2 -0
  11. package/dist/button-B48UNbaC.css +152 -0
  12. package/dist/button-B48UNbaC.js +46 -0
  13. package/dist/button-Dvd4n2U4.d.ts +56 -0
  14. package/dist/checkbox/index.d.ts +2 -0
  15. package/dist/checkbox/index.js +2 -0
  16. package/dist/checkbox-wh2BoiSj.css +76 -0
  17. package/dist/checkbox-wh2BoiSj.js +112 -0
  18. package/dist/cluster-BJ4m5uGN.css +9 -0
  19. package/dist/cluster-BJ4m5uGN.js +21 -0
  20. package/dist/combobox/index.d.ts +2 -0
  21. package/dist/combobox/index.js +2 -0
  22. package/dist/combobox-DWH7uSsx.css +389 -0
  23. package/dist/combobox-DWH7uSsx.js +327 -0
  24. package/dist/command-palette/index.d.ts +2 -0
  25. package/dist/command-palette/index.js +2 -0
  26. package/dist/command-palette-DF4XJ8qz.css +164 -0
  27. package/dist/command-palette-DF4XJ8qz.js +191 -0
  28. package/dist/dialog/index.d.ts +6 -0
  29. package/dist/dialog/index.js +2 -0
  30. package/dist/dialog-C4yqxII_.js +73 -0
  31. package/dist/dialog-footer-Br9KZP4v.js +29 -0
  32. package/dist/dialog-footer-bNVIVPbu.d.ts +56 -0
  33. package/dist/dialog-portal-B21WFYkQ.css +131 -0
  34. package/dist/dialog-portal-B21WFYkQ.js +26 -0
  35. package/dist/dialog-portal-BF89FBeX.d.ts +15 -0
  36. package/dist/dialog-title-DRYRIxCp.js +35 -0
  37. package/dist/dialog-title-jyf86Q8C.d.ts +36 -0
  38. package/dist/dialog-viewport-CaMWJrCJ.d.ts +42 -0
  39. package/dist/dialog-viewport-vpbsq7Ib.js +21 -0
  40. package/dist/drawer/index.d.ts +2 -0
  41. package/dist/drawer/index.js +2 -0
  42. package/dist/drawer-DQmz_uCP.css +214 -0
  43. package/dist/drawer-DQmz_uCP.js +180 -0
  44. package/dist/icon/index.d.ts +2 -0
  45. package/dist/icon/index.js +2 -0
  46. package/dist/icon-DBOdxNvH.css +6 -0
  47. package/dist/icon-DBOdxNvH.js +20 -0
  48. package/dist/index-A2QmU5r9.d.ts +37 -0
  49. package/dist/index-B0uNLS7z.d.ts +301 -0
  50. package/dist/index-B63PSP58.d.ts +94 -0
  51. package/dist/index-BBOkTl3h.d.ts +261 -0
  52. package/dist/index-BLFVnve3.d.ts +53 -0
  53. package/dist/index-BXPUT5u-.d.ts +72 -0
  54. package/dist/index-BngvATZx.d.ts +35 -0
  55. package/dist/index-Br2NrBW_.d.ts +444 -0
  56. package/dist/index-CUy-9csi.d.ts +135 -0
  57. package/dist/index-CbMW32E9.d.ts +82 -0
  58. package/dist/index-CyTcR6iv.d.ts +433 -0
  59. package/dist/index-CznsZ_1M.d.ts +85 -0
  60. package/dist/index-D-6gOciw.d.ts +350 -0
  61. package/dist/index-DdqDyczP.d.ts +209 -0
  62. package/dist/index-GOGpFujX.d.ts +144 -0
  63. package/dist/index-W3ozKcis.d.ts +245 -0
  64. package/dist/index-kpw3_4q_.d.ts +50 -0
  65. package/dist/index-rH7TJeJt.d.ts +334 -0
  66. package/dist/index-rQ7sRkqg.d.ts +122 -0
  67. package/dist/index.css +93 -0
  68. package/dist/index.d.ts +26 -0
  69. package/dist/index.js +26 -0
  70. package/dist/input/index.d.ts +2 -0
  71. package/dist/input/index.js +2 -0
  72. package/dist/input-CQ_ean8e.css +129 -0
  73. package/dist/input-CQ_ean8e.js +65 -0
  74. package/dist/layout/index.d.ts +2 -0
  75. package/dist/layout/index.js +4 -0
  76. package/dist/layout-qoyutnKU.css +181 -0
  77. package/dist/layout-qoyutnKU.js +169 -0
  78. package/dist/menu/index.d.ts +2 -0
  79. package/dist/menu/index.js +2 -0
  80. package/dist/menu-DRdGMI_-.css +236 -0
  81. package/dist/menu-DRdGMI_-.js +243 -0
  82. package/dist/merge-class-name-C4KJJGuK.js +15 -0
  83. package/dist/popover/index.d.ts +2 -0
  84. package/dist/popover/index.js +2 -0
  85. package/dist/popover-CenynT0Z.css +139 -0
  86. package/dist/popover-CenynT0Z.js +174 -0
  87. package/dist/radio/index.d.ts +2 -0
  88. package/dist/radio/index.js +2 -0
  89. package/dist/radio-BJrvdkga.css +80 -0
  90. package/dist/radio-BJrvdkga.js +75 -0
  91. package/dist/scroll-area/index.d.ts +2 -0
  92. package/dist/scroll-area/index.js +2 -0
  93. package/dist/scroll-area-DkORxJE9.css +175 -0
  94. package/dist/scroll-area-DkORxJE9.js +114 -0
  95. package/dist/select/index.d.ts +2 -0
  96. package/dist/select/index.js +2 -0
  97. package/dist/select-BaqBHUac.css +273 -0
  98. package/dist/select-BaqBHUac.js +254 -0
  99. package/dist/skeleton/index.d.ts +2 -0
  100. package/dist/skeleton/index.js +2 -0
  101. package/dist/skeleton-W6fwO5pf.css +88 -0
  102. package/dist/skeleton-W6fwO5pf.js +97 -0
  103. package/dist/spinner/index.d.ts +2 -0
  104. package/dist/spinner/index.js +2 -0
  105. package/dist/spinner-DB6ap8Si.css +43 -0
  106. package/dist/spinner-DB6ap8Si.js +27 -0
  107. package/dist/stack-BzFVrsmT.css +12 -0
  108. package/dist/stack-BzFVrsmT.js +52 -0
  109. package/dist/style-vars-ZSrCUzKx.js +13 -0
  110. package/dist/switch/index.d.ts +2 -0
  111. package/dist/switch/index.js +2 -0
  112. package/dist/switch-DizP31iF.css +76 -0
  113. package/dist/switch-DizP31iF.js +58 -0
  114. package/dist/tooltip/index.d.ts +2 -0
  115. package/dist/tooltip/index.js +2 -0
  116. package/dist/tooltip-CQk2WjUS.css +92 -0
  117. package/dist/tooltip-CQk2WjUS.js +138 -0
  118. package/package.json +68 -0
@@ -0,0 +1,53 @@
1
+ import { HTMLAttributes, ReactNode } from "react";
2
+ //#region src/skeleton/skeleton.d.ts
3
+ /**
4
+ * A layout-aware skeleton for loading states. Wrap a real component — rendered
5
+ * with mock content while data loads, or the actual UI once it arrives — and
6
+ * its text, media, and form controls are replaced by shimmer bars. No manual
7
+ * rectangle sizing.
8
+ *
9
+ * Each text node is wrapped in an inline span whose text is transparent; with
10
+ * `box-decoration-break: clone` every wrapped line fragment becomes its own
11
+ * solid shimmer bar, so the bars inherit the exact line box (width per wrapped
12
+ * line, height from font size × line-height) of the content. Images / video /
13
+ * svg / buttons become a shimmer block sized to the element, and inputs keep
14
+ * their box with shimmering value text.
15
+ *
16
+ * Pass `loading` to render the real content when it's not loading, or default
17
+ * (mock) mode by simply wrapping mock content. The two states cross-fade
18
+ * smoothly (the real content and shimmer overlap in the same box and swap
19
+ * opacity), so toggling `loading` never jumps — and the real images are
20
+ * already loaded by the time loading ends.
21
+ *
22
+ * The wrapper adds no box (`display: contents`) and is `aria-hidden` while
23
+ * loading — announce the loading state from a live region around it, e.g.
24
+ * `<div role="status">Loading…</div>`.
25
+ *
26
+ * Customize per instance via CSS custom properties on the wrapper:
27
+ * `--_skeleton-base`, `--_skeleton-highlight`, `--_skeleton-duration`,
28
+ * `--_skeleton-radius` (media), and `--_skeleton-text-radius` (text bars).
29
+ */
30
+ interface SkeletonProps extends HTMLAttributes<HTMLDivElement> {
31
+ /**
32
+ * Whether to show the shimmer instead of the real content.
33
+ *
34
+ * Defaults to `true` — content wrapped in a Skeleton is treated as mock and
35
+ * shimmered. Pass `loading={false}`, or a boolean you toggle once data
36
+ * arrives, to render the children as-is. The layout never jumps: both states
37
+ * keep the same structure, only the paint changes.
38
+ *
39
+ * @default true
40
+ */
41
+ loading?: boolean;
42
+ /**
43
+ * The content to shimmer. While `loading` is `true`, any text, images, and
44
+ * form controls inside are replaced with the shimmer effect while keeping
45
+ * their exact layout; when `false` they render normally.
46
+ *
47
+ * @required
48
+ */
49
+ children: ReactNode;
50
+ }
51
+ declare function Skeleton({ children, loading, className, style, ...props }: SkeletonProps): import("react").JSX.Element;
52
+ //#endregion
53
+ export { SkeletonProps as n, Skeleton as t };
@@ -0,0 +1,72 @@
1
+ import { InputProps } from "@base-ui/react/input";
2
+ import { FieldDescriptionProps, FieldErrorProps, FieldLabelProps, FieldRootProps } from "@base-ui/react/field";
3
+ //#region src/input/input.d.ts
4
+ /**
5
+ * The height and text size of the input:
6
+ * - `sm`: 2rem tall — dense forms, inline filters, table toolbars.
7
+ * - `md`: 2.5rem tall — default; most form fields.
8
+ * - `lg`: 3rem tall — prominent search bars, hero CTAs.
9
+ *
10
+ * @default size = 'md'
11
+ */
12
+ type InputSize = "sm" | "md" | "lg";
13
+ /**
14
+ * A styled text input. Renders a native `<input>` element.
15
+ *
16
+ * Wraps Base UI's `Input`, so every Base UI prop works: `render` to swap the
17
+ * element, `value`/`defaultValue`/`onValueChange` for controlled usage,
18
+ * `className`, `disabled`, etc.
19
+ *
20
+ * It is designed to live inside Base UI's `Field` (`Field.Root`,
21
+ * `Field.Label`, `Field.Description`, `Field.Error`, `Field.Control`). When it
22
+ * is, it automatically reflects validation state via `data-valid`,
23
+ * `data-invalid`, `data-filled`, `data-touched`, `data-dirty`, and `data-focused`
24
+ * attributes set by Base UI — so the border and ring restyle themselves with no
25
+ * extra wiring. The same styling works standalone (unwrapped) too.
26
+ *
27
+ * All props are optional.
28
+ */
29
+ interface InputProps$1 extends Omit<InputProps, "size"> {
30
+ /** Height and text size of the input. @default 'md' */
31
+ size?: InputSize;
32
+ /** Whether the input stretches to fill its parent width. @default false */
33
+ fullWidth?: boolean;
34
+ }
35
+ declare function Input$1({ className, size, fullWidth, ...props }: InputProps$1): import("react").JSX.Element;
36
+ //#endregion
37
+ //#region src/input/field.d.ts
38
+ /**
39
+ * Groups a label, control, description, and error into a single accessible
40
+ * field. Wraps Base UI's `Field.Root`, so every Base UI prop works
41
+ * (`disabled`, `name`, `validate`, `validationMode`, etc.). All parts placed
42
+ * inside it (including Skeletal's `Input`) automatically share validation
43
+ * state.
44
+ *
45
+ * All props are optional.
46
+ */
47
+ interface FieldRootProps$1 extends FieldRootProps {}
48
+ /**
49
+ * An accessible label automatically associated with the field's control.
50
+ * Wraps Base UI's `Field.Label`. All props are optional.
51
+ */
52
+ interface FieldLabelProps$1 extends FieldLabelProps {}
53
+ /**
54
+ * Helper text shown beneath the label, before the control. Use it to clarify
55
+ * the expected format or purpose. Wraps Base UI's `Field.Description`. All
56
+ * props are optional.
57
+ */
58
+ interface FieldDescriptionProps$1 extends FieldDescriptionProps {}
59
+ /**
60
+ * An error message revealed when the field fails validation (driven by the
61
+ * field's `ValidityState`). Wraps Base UI's `Field.Error`, so its `match` prop
62
+ * controls visibility. All props are optional.
63
+ */
64
+ interface FieldErrorProps$1 extends FieldErrorProps {}
65
+ declare const Field$1: {
66
+ Root: ({ className, ...props }: FieldRootProps$1) => import("react").JSX.Element;
67
+ Label: ({ className, ...props }: FieldLabelProps$1) => import("react").JSX.Element;
68
+ Description: ({ className, ...props }: FieldDescriptionProps$1) => import("react").JSX.Element;
69
+ Error: ({ className, ...props }: FieldErrorProps$1) => import("react").JSX.Element;
70
+ };
71
+ //#endregion
72
+ export { FieldRootProps$1 as a, InputSize as c, FieldLabelProps$1 as i, FieldDescriptionProps$1 as n, Input$1 as o, FieldErrorProps$1 as r, InputProps$1 as s, Field$1 as t };
@@ -0,0 +1,35 @@
1
+ import { HTMLAttributes } from "react";
2
+ //#region src/spinner/spinner.d.ts
3
+ /**
4
+ * A rotating arc indicator for pending states. Renders a `<span>`.
5
+ *
6
+ * Pure CSS (conic-gradient arc + mask ring) — no state, no library. Inherits
7
+ * the surrounding text color via `currentColor`, so it works on any
8
+ * foreground, including inside a `Button` or on a `--primary` fill.
9
+ *
10
+ * By default it is decorative (`aria-hidden`). Pass `label` to announce the
11
+ * pending state to screen readers (`role="status"`); for a `Button` with
12
+ * `loading` the label is redundant, so omit it there.
13
+ *
14
+ * The rotation is essential feedback and is kept under
15
+ * `prefers-reduced-motion`.
16
+ */
17
+ interface SpinnerProps extends HTMLAttributes<HTMLSpanElement> {
18
+ /**
19
+ * The spinner diameter, in any CSS length.
20
+ *
21
+ * @default '1em'
22
+ */
23
+ size?: string;
24
+ /**
25
+ * Accessible status text read by screen readers while pending.
26
+ *
27
+ * Omit for decorative use (e.g. inside a `Button` with `loading`).
28
+ *
29
+ * @default undefined
30
+ */
31
+ label?: string;
32
+ }
33
+ declare function Spinner({ size, label, className, style, ...props }: SpinnerProps): import("react").JSX.Element;
34
+ //#endregion
35
+ export { SpinnerProps as n, Spinner as t };
@@ -0,0 +1,444 @@
1
+ import { n as ButtonProps } from "./button-Dvd4n2U4.js";
2
+ import { ComboboxArrowProps, ComboboxBackdropProps, ComboboxChipProps, ComboboxChipRemoveProps, ComboboxChipsProps, ComboboxClearProps, ComboboxCollectionProps, ComboboxEmptyProps, ComboboxGroupLabelProps, ComboboxGroupProps, ComboboxInputGroupProps, ComboboxInputProps, ComboboxItemIndicatorProps, ComboboxItemProps, ComboboxLabelProps, ComboboxListProps, ComboboxPopupProps, ComboboxPortalProps, ComboboxPositionerProps, ComboboxRootProps, ComboboxRowProps, ComboboxSeparatorProps, ComboboxStatusProps, ComboboxTriggerProps, ComboboxValueProps } from "@base-ui/react/combobox";
3
+ //#region src/combobox/combobox-arrow.d.ts
4
+ /**
5
+ * A small arrow pointing from the popup to the anchor. Renders a `<div>`
6
+ * element.
7
+ *
8
+ * Place it inside `Combobox.Popup` (before the list). It orients itself based
9
+ * on the popup's `data-side` attribute, so it works for any placement. Pair
10
+ * with a larger `sideOffset` on the `Combobox.Positioner` so the arrow has room.
11
+ */
12
+ interface ComboboxArrowProps$1 extends ComboboxArrowProps {}
13
+ declare function ComboboxArrow({ className, ...props }: ComboboxArrowProps$1): import("react").JSX.Element;
14
+ //#endregion
15
+ //#region src/combobox/combobox-backdrop.d.ts
16
+ /**
17
+ * An overlay rendered beneath the combobox popup. Renders a `<div>` element.
18
+ *
19
+ * Only rendered when the combobox is modal. Clicking the backdrop dismisses the
20
+ * popup. The overlay is translucent; set a fully opaque color (or remove it) if
21
+ * you prefer a "dimmed page" look vs. a light scrim.
22
+ */
23
+ interface ComboboxBackdropProps$1 extends ComboboxBackdropProps {}
24
+ declare function ComboboxBackdrop({ className, ...props }: ComboboxBackdropProps$1): import("react").JSX.Element;
25
+ //#endregion
26
+ //#region src/combobox/combobox-chip.d.ts
27
+ /**
28
+ * An individual chip representing one selected value in a multi-select
29
+ * combobox. Renders a `<div>` element.
30
+ *
31
+ * Give it the value's label as children and a `Combobox.ChipRemove` for the
32
+ * remove affordance. Provide an `aria-label` describing the value.
33
+ */
34
+ interface ComboboxChipProps$1 extends ComboboxChipProps {}
35
+ declare function ComboboxChip({ className, ...props }: ComboboxChipProps$1): import("react").JSX.Element;
36
+ //#endregion
37
+ //#region src/combobox/combobox-chip-remove.d.ts
38
+ /**
39
+ * A button that removes its parent `Combobox.Chip`. Renders a `<button>`
40
+ * element.
41
+ *
42
+ * Place it as the last child of a chip with an `x` icon. Give it an
43
+ * `aria-label` like `Remove <value>`.
44
+ */
45
+ interface ComboboxChipRemoveProps$1 extends ComboboxChipRemoveProps {}
46
+ declare function ComboboxChipRemove({ className, ...props }: ComboboxChipRemoveProps$1): import("react").JSX.Element;
47
+ //#endregion
48
+ //#region src/combobox/combobox-chips.d.ts
49
+ /**
50
+ * A container for the chips in a multi-select combobox. Renders a `<div>`
51
+ * element.
52
+ *
53
+ * Wrap the `<Combobox.Value>` (which renders one `Combobox.Chip` per selected
54
+ * value, followed by the `<Combobox.Input>`) inside it. Chips wrap onto multiple
55
+ * lines as the selection grows.
56
+ */
57
+ interface ComboboxChipsProps$1 extends ComboboxChipsProps {}
58
+ declare function ComboboxChips({ className, ...props }: ComboboxChipsProps$1): import("react").JSX.Element;
59
+ //#endregion
60
+ //#region src/combobox/combobox-clear.d.ts
61
+ /**
62
+ * A button that clears the current selection (and input text). Renders a
63
+ * `<button>` element.
64
+ *
65
+ * Composed from the `Button` component via Base UI's `render` prop, so it
66
+ * accepts all `Button` props plus the combobox-clear props from Base UI
67
+ * (`keepMounted`, `disabled`). Defaults to the `ghost` `sm` variant, compacted
68
+ * into an icon-sized square when inside a `Combobox.InputGroup`.
69
+ *
70
+ * It is only visible when there is a value to clear (single/multi select) or
71
+ * non-empty input text; pass `keepMounted` to keep it in the DOM and drive its
72
+ * show/hide styling yourself. Give it an `aria-label` and an `x` icon child.
73
+ *
74
+ * @default keepMounted = false
75
+ */
76
+ interface ComboboxClearProps$1 extends ButtonProps, Omit<ComboboxClearProps, "className" | "style" | "render" | "nativeButton"> {}
77
+ declare function ComboboxClear({ className, variant, size, fullWidth, ...props }: ComboboxClearProps$1): import("react").JSX.Element;
78
+ //#endregion
79
+ //#region src/combobox/combobox-collection.d.ts
80
+ /**
81
+ * Renders filtered list items as a group. Renders no DOM element.
82
+ *
83
+ * Provide a render function receiving each item (and index) to map filtered
84
+ * items to `Combobox.Item`s. This is the building block for custom layouts
85
+ * (e.g. grouped/grid lists); for a flat list, pass the same function directly
86
+ * to `Combobox.List`, which implicitly wraps it.
87
+ */
88
+ interface ComboboxCollectionProps$1 extends ComboboxCollectionProps {}
89
+ declare function ComboboxCollection(props: ComboboxCollectionProps$1): import("react").JSX.Element;
90
+ //#endregion
91
+ //#region src/combobox/combobox-empty.d.ts
92
+ /**
93
+ * Renders its children only when the filtered list is empty. Renders a `<div>`
94
+ * element.
95
+ *
96
+ * Requires the `items` prop on `Combobox.Root`. Keep the element mounted in the
97
+ * DOM (don't `display: none` or conditionally unmount it) — render or update its
98
+ * children instead — so the "no results" announcement is consistent across
99
+ * screen readers.
100
+ */
101
+ interface ComboboxEmptyProps$1 extends ComboboxEmptyProps {}
102
+ declare function ComboboxEmpty({ className, ...props }: ComboboxEmptyProps$1): import("react").JSX.Element;
103
+ //#endregion
104
+ //#region src/combobox/combobox-group.d.ts
105
+ /**
106
+ * Groups related items under an accessible label. Renders a `<div>` element.
107
+ *
108
+ * Pair with `<Combobox.GroupLabel>` inside the group; Base UI wires the
109
+ * `aria-labelledby` association automatically.
110
+ *
111
+ * Rendered with `display: contents` so its items participate directly in the
112
+ * popup layout.
113
+ */
114
+ interface ComboboxGroupProps$1 extends ComboboxGroupProps {}
115
+ declare function ComboboxGroup({ className, ...props }: ComboboxGroupProps$1): import("react").JSX.Element;
116
+ //#endregion
117
+ //#region src/combobox/combobox-group-label.d.ts
118
+ /**
119
+ * A label for a `<Combobox.Group>`, automatically associated with it for screen
120
+ * readers. Renders a `<div>` element.
121
+ *
122
+ * Styled small and muted; add a `Combobox.Separator` before the group to
123
+ * visually divide it from the items above.
124
+ */
125
+ interface ComboboxGroupLabelProps$1 extends ComboboxGroupLabelProps {}
126
+ declare function ComboboxGroupLabel({ className, ...props }: ComboboxGroupLabelProps$1): import("react").JSX.Element;
127
+ //#endregion
128
+ //#region src/combobox/combobox-input.d.ts
129
+ /**
130
+ * The text input used to filter the items. Renders an `<input>` element.
131
+ *
132
+ * Inside a `Combobox.InputGroup` the input grows to fill it, and trailing
133
+ * controls push against its right edge; the group provides the border, focus
134
+ * ring, and leading gutter. Rendered directly inside `Combobox.Popup` (the
135
+ * searchable-select pattern) it spans the popup end-to-end with a bottom
136
+ * divider, and its inline gutter matches the list's so text lines up with
137
+ * items. Placeholder text is muted.
138
+ *
139
+ * This is the combobox's form control, so label it with a native `<label>` (or
140
+ * `aria-label`) for an accessible name.
141
+ */
142
+ interface ComboboxInputProps$1 extends ComboboxInputProps {}
143
+ declare function ComboboxInput({ className, ...props }: ComboboxInputProps$1): import("react").JSX.Element;
144
+ //#endregion
145
+ //#region src/combobox/combobox-input-group.d.ts
146
+ /**
147
+ * A bordered container that wraps the input and its trailing controls (clear
148
+ * and trigger buttons, or chips). Renders a `<div>` element.
149
+ *
150
+ * The group reads as the field's focus target: it shows a focus ring whenever
151
+ * the inner input is focused, and dims when `disabled`. Place the
152
+ * `<Combobox.Input>` first, then `<Combobox.Clear>` / `<Combobox.Trigger>` (or
153
+ * `<Combobox.Chips>` for multi-select) so they line up against the trailing
154
+ * edge.
155
+ */
156
+ interface ComboboxInputGroupProps$1 extends ComboboxInputGroupProps {}
157
+ declare function ComboboxInputGroup({ className, ...props }: ComboboxInputGroupProps$1): import("react").JSX.Element;
158
+ //#endregion
159
+ //#region src/combobox/combobox-item.d.ts
160
+ /**
161
+ * An individual option in the combobox list. Renders a `<div>` element.
162
+ *
163
+ * Accepts all Base UI item props: `value` (any primitive or object),
164
+ * `disabled`, `label` for keyboard text navigation, and `onClick`. Give each
165
+ * item a unique `value`; when `Combobox.Value` renders the label, pass the same
166
+ * `items` to `Combobox.Root`.
167
+ *
168
+ * A selected item shows its `Combobox.ItemIndicator` (e.g. a check icon) in the
169
+ * leading column; the highlighted item (keyboard/pointer) gets the accent
170
+ * background.
171
+ *
172
+ * The leading column is always reserved: every item mirrors the list's
173
+ * two-column grid template, so labels line up on the same baseline whether or
174
+ * not an indicator is mounted.
175
+ *
176
+ * @default value = null
177
+ * @default disabled = false
178
+ */
179
+ interface ComboboxItemProps$1 extends ComboboxItemProps {}
180
+ declare function ComboboxItem({ className, ...props }: ComboboxItemProps$1): import("react").JSX.Element;
181
+ //#endregion
182
+ //#region src/combobox/combobox-item-indicator.d.ts
183
+ /**
184
+ * A checkmark slot shown on the selected item. Renders a `<span>` element.
185
+ *
186
+ * Place it as the first child of a `Combobox.Item`; it sits in the leading grid
187
+ * column. The indicator (and its children) unmount when the item is not
188
+ * selected unless `keepMounted` is set. It animates in/out via
189
+ * `data-starting-style` / `data-ending-style`.
190
+ *
191
+ * @default keepMounted = false
192
+ */
193
+ interface ComboboxItemIndicatorProps$1 extends ComboboxItemIndicatorProps {}
194
+ declare function ComboboxItemIndicator({ className, ...props }: ComboboxItemIndicatorProps$1): import("react").JSX.Element;
195
+ //#endregion
196
+ //#region src/combobox/combobox-label.d.ts
197
+ /**
198
+ * An accessible label for the combobox. Renders a `<div>` element.
199
+ *
200
+ * In the trigger pattern this labels the trigger; in the input pattern, label
201
+ * the `<Combobox.Input>` with a native `<label>` (or pass `aria-label`) instead.
202
+ * Place it as a sibling of the input/trigger inside `Combobox.Root`; Base UI
203
+ * wires the `aria-labelledby` association automatically.
204
+ *
205
+ * Styled medium-weight with comfortable spacing below it (0.5rem), so the label
206
+ * reads as a field caption rather than crowding the control. It dims to the
207
+ * muted color when the combobox is `disabled`.
208
+ */
209
+ interface ComboboxLabelProps$1 extends ComboboxLabelProps {}
210
+ declare function ComboboxLabel({ className, ...props }: ComboboxLabelProps$1): import("react").JSX.Element;
211
+ //#endregion
212
+ //#region src/combobox/combobox-list.d.ts
213
+ /**
214
+ * A scrollable container for the filtered items. Renders a `<div>` element.
215
+ *
216
+ * Constrained by `--available-height` so long lists scroll. Children may be a
217
+ * render function that receives each item (and index), which is the idiomatic
218
+ * way to map filtered items to `Combobox.Item`s.
219
+ */
220
+ interface ComboboxListProps$1 extends ComboboxListProps {}
221
+ declare function ComboboxList({ className, ...props }: ComboboxListProps$1): import("react").JSX.Element;
222
+ //#endregion
223
+ //#region src/combobox/combobox-popup.d.ts
224
+ /**
225
+ * The popup panel that holds the list (and optionally the input). Renders a
226
+ * `<div>` element.
227
+ *
228
+ * Accepts all Base UI popup props, including `initialFocus` / `finalFocus` for
229
+ * controlling focus when the popup opens/closes. Content animates in/out via
230
+ * the `data-starting-style` / `data-ending-style` transitions.
231
+ *
232
+ * By default the popup is at least as wide as its anchor (`min-width:
233
+ * var(--anchor-width)`), so the list aligns with the input group. Pass
234
+ * `style={{ width: ... }}` or a `className` to constrain it.
235
+ */
236
+ interface ComboboxPopupProps$1 extends ComboboxPopupProps {}
237
+ declare function ComboboxPopup({ className, ...props }: ComboboxPopupProps$1): import("react").JSX.Element;
238
+ //#endregion
239
+ //#region src/combobox/combobox-portal.d.ts
240
+ /**
241
+ * Moves the combobox popup to a different part of the DOM, appended to `<body>`
242
+ * by default. Renders a `<div>` element.
243
+ *
244
+ * `container` overrides the portal target. `keepMounted` keeps the portal in
245
+ * the DOM while closed.
246
+ *
247
+ * @default keepMounted = false
248
+ */
249
+ interface ComboboxPortalProps$1 extends ComboboxPortalProps {}
250
+ declare function ComboboxPortal({ className, ...props }: ComboboxPortalProps$1): import("react").JSX.Element;
251
+ //#endregion
252
+ //#region src/combobox/combobox-positioner.d.ts
253
+ /**
254
+ * Positions the combobox popup against the anchor. Renders a `<div>` element.
255
+ *
256
+ * Accepts all Base UI positioner props: `side`, `align`, `sideOffset`,
257
+ * `alignOffset`, `collisionAvoidance`, `collisionBoundary`, `collisionPadding`,
258
+ * `sticky`, `positionMethod`, `arrowPadding`, and `anchor`.
259
+ *
260
+ * By default the popup anchors to the `Combobox.InputGroup` (so it matches the
261
+ * field's width), or to the trigger when the input lives inside the popup.
262
+ *
263
+ * @default sideOffset = 4
264
+ */
265
+ interface ComboboxPositionerProps$1 extends ComboboxPositionerProps {}
266
+ declare function ComboboxPositioner({ className, sideOffset, ...props }: ComboboxPositionerProps$1): import("react").JSX.Element;
267
+ //#endregion
268
+ //#region src/combobox/combobox-root.d.ts
269
+ /**
270
+ * The root of the combobox, grouping all parts together. Renders no DOM element.
271
+ *
272
+ * All Base UI root props are supported: `value` / `defaultValue`,
273
+ * `onValueChange`, `multiple`, `items`, `itemToStringLabel`,
274
+ * `itemToStringValue`, `isItemEqualToValue`, `open` / `defaultOpen`,
275
+ * `onOpenChange`, `onInputValueChange`, `autoHighlight`, `highlightItemOnHover`,
276
+ * `disabled`, `readOnly`, `required`, `name`, `form`, `autoComplete`, and the
277
+ * `filter` function.
278
+ *
279
+ * Pass `items` (an array of `{ value, label }` or a record of label lookups)
280
+ * so filtering and value formatting work. The `Value` type is inferred from
281
+ * `value` / `defaultValue`. Add `multiple` to allow multi-selection with chips.
282
+ *
283
+ * @default multiple = false
284
+ */
285
+ interface ComboboxProps<Value, Multiple extends boolean | undefined = false> extends ComboboxRootProps<Value, Multiple> {}
286
+ declare function ComboboxRoot<Value, Multiple extends boolean | undefined = false>(props: ComboboxProps<Value, Multiple>): import("react").JSX.Element;
287
+ //#endregion
288
+ //#region src/combobox/combobox-row.d.ts
289
+ /**
290
+ * Displays a single row of items in a grid list. Renders a `<div>` element.
291
+ *
292
+ * Enable `grid` on `Combobox.Root` to turn the listbox into a grid, then wrap
293
+ * each row's items in a `Combobox.Row`. Rendered with `display: contents` so
294
+ * rows don't disrupt the flat list layout when `grid` is off.
295
+ */
296
+ interface ComboboxRowProps$1 extends ComboboxRowProps {}
297
+ declare function ComboboxRow({ className, ...props }: ComboboxRowProps$1): import("react").JSX.Element;
298
+ //#endregion
299
+ //#region src/combobox/combobox-separator.d.ts
300
+ /**
301
+ * A horizontal divider between groups of items. Renders a `<div>` element.
302
+ *
303
+ * It is announced to screen readers via `role="separator"`.
304
+ *
305
+ * @default orientation = 'horizontal'
306
+ */
307
+ interface ComboboxSeparatorProps$1 extends ComboboxSeparatorProps {}
308
+ declare function ComboboxSeparator({ className, ...props }: ComboboxSeparatorProps$1): import("react").JSX.Element;
309
+ //#endregion
310
+ //#region src/combobox/combobox-status.d.ts
311
+ /**
312
+ * Displays a status message (e.g. "Loading…") whose changes are announced
313
+ * politely to screen readers. Renders a `<div>` element.
314
+ *
315
+ * Useful for conveying the state of an asynchronously loaded list. Keep the
316
+ * element mounted in the DOM — update or conditionally render its children
317
+ * instead — so announcements are consistent.
318
+ */
319
+ interface ComboboxStatusProps$1 extends ComboboxStatusProps {}
320
+ declare function ComboboxStatus({ className, ...props }: ComboboxStatusProps$1): import("react").JSX.Element;
321
+ //#endregion
322
+ //#region src/combobox/combobox-trigger.d.ts
323
+ /**
324
+ * A button that opens the combobox popup. Renders a `<button>` element.
325
+ *
326
+ * Composed from the `Button` component via Base UI's `render` prop, so it
327
+ * accepts all `Button` props (`variant`, `size`, `fullWidth`, `disabled`, ...)
328
+ * plus the combobox-trigger props from Base UI. Defaults to the `ghost` `sm`
329
+ * variant, which — when placed inside a `Combobox.InputGroup` — compacts into
330
+ * an icon-sized square button. For the "input inside popup" (select-like)
331
+ * pattern, pass `variant="outline"` / `size="md"` and wrap a
332
+ * `<Combobox.Value>` inside.
333
+ *
334
+ * The disclosure `CaretDown` chevron is always rendered by the trigger itself
335
+ * (via `BaseCombobox.Icon`, rotating 180° when open) — no `Combobox.Icon`
336
+ * prop is needed.
337
+ */
338
+ interface ComboboxTriggerProps$1 extends ButtonProps, Omit<ComboboxTriggerProps, "className" | "style" | "render" | "nativeButton"> {}
339
+ declare function ComboboxTrigger({ className, variant, size, fullWidth, children, ...props }: ComboboxTriggerProps$1): import("react").JSX.Element;
340
+ //#endregion
341
+ //#region src/combobox/combobox-value.d.ts
342
+ /**
343
+ * The current selected value, for formatting. Renders no DOM element.
344
+ *
345
+ * By default renders the selected value's label (when `items` is passed to
346
+ * `Combobox.Root`) or the raw value. Pass `placeholder` to show hint text when
347
+ * no value is selected, or a function as `children` to format the value:
348
+ *
349
+ * ```tsx
350
+ * <Combobox.Value placeholder="Choose a fruit">
351
+ * {(value) => value ? value.label.toUpperCase() : ''}
352
+ * </Combobox.Value>
353
+ * ```
354
+ *
355
+ * In multi-select mode the child function receives the array of selected values
356
+ * (the place to render `Combobox.Chip`s).
357
+ */
358
+ interface ComboboxValueProps$1 extends ComboboxValueProps {}
359
+ declare function ComboboxValue(props: ComboboxValueProps$1): import("react").JSX.Element;
360
+ //#endregion
361
+ //#region src/combobox/index.d.ts
362
+ /**
363
+ * Compound component for a filterable select — an input combined with a list of
364
+ * predefined items.
365
+ *
366
+ * Assemble the parts as properties of the object:
367
+ *
368
+ * ```tsx
369
+ * import { Combobox } from '@vikram-hegde/skeletal'
370
+ *
371
+ * const fruits = [
372
+ * { value: 'apple', label: 'Apple' },
373
+ * { value: 'banana', label: 'Banana' },
374
+ * { value: 'orange', label: 'Orange' },
375
+ * ]
376
+ *
377
+ * <Combobox.Root items={fruits}>
378
+ * <Combobox.Label>Choose a fruit</Combobox.Label>
379
+ * <Combobox.InputGroup>
380
+ * <Combobox.Input placeholder="e.g. Apple" />
381
+ * <Combobox.Clear aria-label="Clear selection">
382
+ * <Icon name={X} size={14} />
383
+ * </Combobox.Clear>
384
+ * <Combobox.Trigger aria-label="Open popup" />
385
+ * </Combobox.InputGroup>
386
+ * <Combobox.Portal>
387
+ * <Combobox.Positioner>
388
+ * <Combobox.Popup>
389
+ * <Combobox.Empty>No fruits found.</Combobox.Empty>
390
+ * <Combobox.List>
391
+ * {(fruit) => (
392
+ * <Combobox.Item key={fruit.value} value={fruit}>
393
+ * <Combobox.ItemIndicator>
394
+ * <Icon name={Check} size={14} />
395
+ * </Combobox.ItemIndicator>
396
+ * {fruit.label}
397
+ * </Combobox.Item>
398
+ * )}
399
+ * </Combobox.List>
400
+ * </Combobox.Popup>
401
+ * </Combobox.Positioner>
402
+ * </Combobox.Portal>
403
+ * </Combobox.Root>
404
+ * ```
405
+ *
406
+ * Composition follows the Base UI anatomy — the popup anchors to the
407
+ * `Combobox.InputGroup` (so it matches the field's width) and handles collision
408
+ * avoidance; `Combobox.Portal` moves it to `<body>`. Add `multiple` to
409
+ * `Combobox.Root` and render `Combobox.Chip`s inside `Combobox.Value` for
410
+ * multi-select. The trigger owns its `CaretDown` chevron — no `Combobox.Icon` is needed.
411
+ *
412
+ * All parts are thin styled wrappers over Base UI's `Combobox`, so every Base UI
413
+ * prop, `render` override, and ref behaves the same. Part prop types are
414
+ * exported separately (`ComboboxProps`, `ComboboxItemProps`, etc.).
415
+ */
416
+ declare const Combobox$1: {
417
+ Root: typeof ComboboxRoot;
418
+ Label: typeof ComboboxLabel;
419
+ InputGroup: typeof ComboboxInputGroup;
420
+ Input: typeof ComboboxInput;
421
+ Trigger: typeof ComboboxTrigger;
422
+ Clear: typeof ComboboxClear;
423
+ Value: typeof ComboboxValue;
424
+ Chips: typeof ComboboxChips;
425
+ Chip: typeof ComboboxChip;
426
+ ChipRemove: typeof ComboboxChipRemove;
427
+ Portal: typeof ComboboxPortal;
428
+ Backdrop: typeof ComboboxBackdrop;
429
+ Positioner: typeof ComboboxPositioner;
430
+ Popup: typeof ComboboxPopup;
431
+ Arrow: typeof ComboboxArrow;
432
+ Status: typeof ComboboxStatus;
433
+ Empty: typeof ComboboxEmpty;
434
+ List: typeof ComboboxList;
435
+ Row: typeof ComboboxRow;
436
+ Item: typeof ComboboxItem;
437
+ ItemIndicator: typeof ComboboxItemIndicator;
438
+ Separator: typeof ComboboxSeparator;
439
+ Group: typeof ComboboxGroup;
440
+ GroupLabel: typeof ComboboxGroupLabel;
441
+ Collection: typeof ComboboxCollection;
442
+ };
443
+ //#endregion
444
+ export { ComboboxChipRemoveProps$1 as C, ComboboxArrowProps$1 as E, ComboboxChipsProps$1 as S, ComboboxBackdropProps$1 as T, ComboboxGroupLabelProps$1 as _, ComboboxSeparatorProps$1 as a, ComboboxCollectionProps$1 as b, ComboboxPositionerProps$1 as c, ComboboxListProps$1 as d, ComboboxLabelProps$1 as f, ComboboxInputProps$1 as g, ComboboxInputGroupProps$1 as h, ComboboxStatusProps$1 as i, ComboboxPortalProps$1 as l, ComboboxItemProps$1 as m, ComboboxValueProps$1 as n, ComboboxRowProps$1 as o, ComboboxItemIndicatorProps$1 as p, ComboboxTriggerProps$1 as r, ComboboxProps as s, Combobox$1 as t, ComboboxPopupProps$1 as u, ComboboxGroupProps$1 as v, ComboboxChipProps$1 as w, ComboboxClearProps$1 as x, ComboboxEmptyProps$1 as y };