@purpurds/listbox 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.
@@ -0,0 +1,15 @@
1
+ import { ListboxItem } from './listbox-item';
2
+ import { ComponentPropsWithRef, ForwardRefExoticComponent, PropsWithoutRef } from 'react';
3
+
4
+ export type ListboxProps = Omit<ComponentPropsWithRef<"ul">, "role"> & {
5
+ "data-testid"?: string;
6
+ "aria-label": NonNullable<ComponentPropsWithRef<"ul">["aria-label"]>;
7
+ "aria-expanded": NonNullable<ComponentPropsWithRef<"ul">["aria-expanded"]>;
8
+ };
9
+ type ListboxStatic = {
10
+ Item: typeof ListboxItem;
11
+ };
12
+ type ListboxComponent = ForwardRefExoticComponent<PropsWithoutRef<ListboxProps>> & ListboxStatic;
13
+ export declare const Listbox: ListboxComponent;
14
+ export type { ListboxItemProps } from './listbox-item';
15
+ //# sourceMappingURL=listbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listbox.d.ts","sourceRoot":"","sources":["../src/listbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EAErB,yBAAyB,EACzB,eAAe,EAChB,MAAM,OAAO,CAAC;AAKf,OAAO,EAAiB,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAM5D,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG;IACrE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,WAAW,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;IACrE,eAAe,EAAE,WAAW,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;CAC5E,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,IAAI,EAAE,OAAO,WAAW,CAAC;CAC1B,CAAC;AAEF,KAAK,gBAAgB,GAAG,yBAAyB,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,GAAG,aAAa,CAAC;AAEjG,eAAO,MAAM,OAAO,EAWf,gBAAgB,CAAC;AAEtB,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,277 @@
1
+ import { jsx as s, jsxs as O } from "react/jsx-runtime";
2
+ import { forwardRef as g, isValidElement as P, Children as S } from "react";
3
+ function L(t) {
4
+ return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, "default") ? t.default : t;
5
+ }
6
+ var f = { exports: {} };
7
+ /*!
8
+ Copyright (c) 2018 Jed Watson.
9
+ Licensed under the MIT License (MIT), see
10
+ http://jedwatson.github.io/classnames
11
+ */
12
+ (function(t) {
13
+ (function() {
14
+ var i = {}.hasOwnProperty;
15
+ function a() {
16
+ for (var r = "", e = 0; e < arguments.length; e++) {
17
+ var p = arguments[e];
18
+ p && (r = n(r, u.call(this, p)));
19
+ }
20
+ return r;
21
+ }
22
+ function u(r) {
23
+ if (typeof r == "string" || typeof r == "number")
24
+ return this && this[r] || r;
25
+ if (typeof r != "object")
26
+ return "";
27
+ if (Array.isArray(r))
28
+ return a.apply(this, r);
29
+ if (r.toString !== Object.prototype.toString && !r.toString.toString().includes("[native code]"))
30
+ return r.toString();
31
+ var e = "";
32
+ for (var p in r)
33
+ i.call(r, p) && r[p] && (e = n(e, this && this[p] || p));
34
+ return e;
35
+ }
36
+ function n(r, e) {
37
+ return e ? r ? r + " " + e : r + e : r;
38
+ }
39
+ t.exports ? (a.default = a, t.exports = a) : window.classNames = a;
40
+ })();
41
+ })(f);
42
+ var R = f.exports;
43
+ const v = /* @__PURE__ */ L(R), b = {
44
+ "purpur-listbox": "_purpur-listbox_qhoi7_1",
45
+ "purpur-listbox-item": "_purpur-listbox-item_qhoi7_15",
46
+ "purpur-listbox-item--hovered": "_purpur-listbox-item--hovered_qhoi7_29",
47
+ "purpur-listbox-item--highlighted": "_purpur-listbox-item--highlighted_qhoi7_37",
48
+ "purpur-listbox-item--noninteractive": "_purpur-listbox-item--noninteractive_qhoi7_41",
49
+ "purpur-listbox-item--disabled": "_purpur-listbox-item--disabled_qhoi7_44",
50
+ "purpur-listbox-item__icon": "_purpur-listbox-item__icon_qhoi7_51"
51
+ };
52
+ function j(t) {
53
+ return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, "default") ? t.default : t;
54
+ }
55
+ var x = { exports: {} };
56
+ /*!
57
+ Copyright (c) 2018 Jed Watson.
58
+ Licensed under the MIT License (MIT), see
59
+ http://jedwatson.github.io/classnames
60
+ */
61
+ (function(t) {
62
+ (function() {
63
+ var i = {}.hasOwnProperty;
64
+ function a() {
65
+ for (var r = "", e = 0; e < arguments.length; e++) {
66
+ var p = arguments[e];
67
+ p && (r = n(r, u.call(this, p)));
68
+ }
69
+ return r;
70
+ }
71
+ function u(r) {
72
+ if (typeof r == "string" || typeof r == "number")
73
+ return this && this[r] || r;
74
+ if (typeof r != "object")
75
+ return "";
76
+ if (Array.isArray(r))
77
+ return a.apply(this, r);
78
+ if (r.toString !== Object.prototype.toString && !r.toString.toString().includes("[native code]"))
79
+ return r.toString();
80
+ var e = "";
81
+ for (var p in r)
82
+ i.call(r, p) && r[p] && (e = n(e, this && this[p] || p));
83
+ return e;
84
+ }
85
+ function n(r, e) {
86
+ return e ? r ? r + " " + e : r + e : r;
87
+ }
88
+ t.exports ? (a.default = a, t.exports = a) : window.classNames = a;
89
+ })();
90
+ })(x);
91
+ var q = x.exports;
92
+ const I = /* @__PURE__ */ j(q), E = {
93
+ "purpur-icon": "_purpur-icon_8u1lq_1",
94
+ "purpur-icon--xxs": "_purpur-icon--xxs_8u1lq_4",
95
+ "purpur-icon--xs": "_purpur-icon--xs_8u1lq_8",
96
+ "purpur-icon--sm": "_purpur-icon--sm_8u1lq_12",
97
+ "purpur-icon--md": "_purpur-icon--md_8u1lq_16",
98
+ "purpur-icon--lg": "_purpur-icon--lg_8u1lq_20",
99
+ "purpur-icon--xl": "_purpur-icon--xl_8u1lq_24"
100
+ }, M = {
101
+ name: "checkmark",
102
+ svg: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path fill-rule="evenodd" d="M21.06 3.795a.9.9 0 0 1 .145 1.264l-11.5 14.5a.9.9 0 0 1-1.341.077l-6-6a.9.9 0 0 1 1.272-1.272l5.286 5.286L19.795 3.94a.9.9 0 0 1 1.264-.145Z" clip-rule="evenodd"/></svg>',
103
+ keywords: ["checkmark"],
104
+ category: "utility"
105
+ }, y = (t) => /* @__PURE__ */ s(
106
+ G,
107
+ {
108
+ ...t,
109
+ svg: M
110
+ }
111
+ );
112
+ y.displayName = "IconCheckmark";
113
+ const D = I.bind(E), _ = "purpur-icon", H = "md", B = (t) => t.filter((i) => Object.keys(i).length >= 1).map((i) => `${i.name}="${i.value}"`).join(" "), C = ({ content: t = "", title: i } = {}) => {
114
+ const a = [
115
+ { name: "xmlns", value: "http://www.w3.org/2000/svg" },
116
+ { name: "fill", value: "currentColor" },
117
+ { name: "viewBox", value: "0 0 24 24" },
118
+ i ? { name: "role", value: "img" } : { name: "aria-hidden", value: "true" }
119
+ ], u = i ? `<title>${i}</title>` : "";
120
+ return `<svg ${B(a)}>${u}${t}</svg>`;
121
+ }, k = (t) => t.replace(/<(\/?)svg([^>]*)>/g, "").trim(), G = ({
122
+ ["data-testid"]: t,
123
+ svg: i,
124
+ allyTitle: a,
125
+ className: u,
126
+ size: n = H,
127
+ ...r
128
+ }) => {
129
+ const e = C({
130
+ content: k(i.svg),
131
+ title: a
132
+ }), p = D(u, _, `${_}--${n}`);
133
+ return /* @__PURE__ */ s(
134
+ "span",
135
+ {
136
+ "aria-label": a,
137
+ className: p,
138
+ "data-testid": t,
139
+ dangerouslySetInnerHTML: { __html: e },
140
+ ...r
141
+ }
142
+ );
143
+ };
144
+ function T(t) {
145
+ return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, "default") ? t.default : t;
146
+ }
147
+ var A = { exports: {} };
148
+ /*!
149
+ Copyright (c) 2018 Jed Watson.
150
+ Licensed under the MIT License (MIT), see
151
+ http://jedwatson.github.io/classnames
152
+ */
153
+ (function(t) {
154
+ (function() {
155
+ var i = {}.hasOwnProperty;
156
+ function a() {
157
+ for (var r = "", e = 0; e < arguments.length; e++) {
158
+ var p = arguments[e];
159
+ p && (r = n(r, u(p)));
160
+ }
161
+ return r;
162
+ }
163
+ function u(r) {
164
+ if (typeof r == "string" || typeof r == "number")
165
+ return r;
166
+ if (typeof r != "object")
167
+ return "";
168
+ if (Array.isArray(r))
169
+ return a.apply(null, r);
170
+ if (r.toString !== Object.prototype.toString && !r.toString.toString().includes("[native code]"))
171
+ return r.toString();
172
+ var e = "";
173
+ for (var p in r)
174
+ i.call(r, p) && r[p] && (e = n(e, p));
175
+ return e;
176
+ }
177
+ function n(r, e) {
178
+ return e ? r ? r + " " + e : r + e : r;
179
+ }
180
+ t.exports ? (a.default = a, t.exports = a) : window.classNames = a;
181
+ })();
182
+ })(A);
183
+ var V = A.exports;
184
+ const z = /* @__PURE__ */ T(V), l = {
185
+ "purpur-paragraph": "_purpur-paragraph_1rh57_1",
186
+ "purpur-paragraph--disabled": "_purpur-paragraph--disabled_1rh57_7",
187
+ "purpur-paragraph--hyphens": "_purpur-paragraph--hyphens_1rh57_10",
188
+ "purpur-paragraph--negative": "_purpur-paragraph--negative_1rh57_13",
189
+ "purpur-paragraph--paragraph-100": "_purpur-paragraph--paragraph-100_1rh57_16",
190
+ "purpur-paragraph--paragraph-100-medium": "_purpur-paragraph--paragraph-100-medium_1rh57_22",
191
+ "purpur-paragraph--paragraph-100-bold": "_purpur-paragraph--paragraph-100-bold_1rh57_29",
192
+ "purpur-paragraph--paragraph-200": "_purpur-paragraph--paragraph-200_1rh57_36",
193
+ "purpur-paragraph--preamble-100": "_purpur-paragraph--preamble-100_1rh57_42",
194
+ "purpur-paragraph--preamble-200": "_purpur-paragraph--preamble-200_1rh57_48",
195
+ "purpur-paragraph--additional-100": "_purpur-paragraph--additional-100_1rh57_54",
196
+ "purpur-paragraph--additional-100-medium": "_purpur-paragraph--additional-100-medium_1rh57_60",
197
+ "purpur-paragraph--overline-100": "_purpur-paragraph--overline-100_1rh57_67",
198
+ "purpur-paragraph--overline-200": "_purpur-paragraph--overline-200_1rh57_75"
199
+ }, U = {
200
+ PARAGRAPH100: "paragraph-100",
201
+ PARAGRAPH100MEDIUM: "paragraph-100-medium",
202
+ PARAGRAPH100BOLD: "paragraph-100-bold",
203
+ PARAGRAPH200: "paragraph-200",
204
+ PREAMBLE100: "preamble-100",
205
+ PREAMBLE200: "preamble-200",
206
+ ADDITIONAL100: "additional-100",
207
+ ADDITIONAL100MEDIUM: "additional-100-medium",
208
+ OVERLINE100: "overline-100",
209
+ OVERLINE200: "overline-200"
210
+ }, h = "purpur-paragraph", $ = ({
211
+ ["data-testid"]: t,
212
+ children: i,
213
+ className: a,
214
+ disabled: u,
215
+ enableHyphenation: n = !1,
216
+ negative: r = !1,
217
+ variant: e = U.PARAGRAPH100,
218
+ ...p
219
+ }) => {
220
+ const c = z([
221
+ a,
222
+ l[h],
223
+ l[`${h}--${e}`],
224
+ {
225
+ [l[`${h}--hyphens`]]: n,
226
+ [l[`${h}--disabled`]]: u,
227
+ [l[`${h}--negative`]]: r
228
+ }
229
+ ]);
230
+ return /* @__PURE__ */ s("p", { ...p, className: c, "data-testid": t, children: i });
231
+ };
232
+ $.displayName = "Paragraph";
233
+ const m = v.bind(b), o = "purpur-listbox", d = g(
234
+ (t, i) => {
235
+ const { disabled: a, highlighted: u, hovered: n, selected: r, children: e, noninteractive: p, ...c } = t, w = m(`${o}-item`, c.className, {
236
+ [`${o}-item--highlighted`]: u,
237
+ [`${o}-item--selected`]: r,
238
+ [`${o}-item--hovered`]: n,
239
+ [`${o}-item--disabled`]: a,
240
+ [`${o}-item--noninteractive`]: p
241
+ });
242
+ return /* @__PURE__ */ O(
243
+ "li",
244
+ {
245
+ ...c,
246
+ ref: i,
247
+ className: w,
248
+ "aria-selected": !!r,
249
+ role: "option",
250
+ "aria-disabled": !!a,
251
+ children: [
252
+ typeof e == "string" ? /* @__PURE__ */ s($, { children: e }) : e,
253
+ r && /* @__PURE__ */ s(y, { size: "xs", className: m(`${o}-item__icon`) })
254
+ ]
255
+ }
256
+ );
257
+ }
258
+ ), F = (t) => P(t) && (t == null ? void 0 : t.type) === d;
259
+ d.displayName = "ListBoxItem";
260
+ const J = v.bind(b), X = "purpur-listbox", N = g(
261
+ ({ children: t, ...i }, a) => /* @__PURE__ */ s(
262
+ "ul",
263
+ {
264
+ ...i,
265
+ ref: a,
266
+ className: J(X, i.className),
267
+ role: "listbox",
268
+ children: S.toArray(t).filter(F)
269
+ }
270
+ )
271
+ );
272
+ N.Item = d;
273
+ N.displayName = "ListBox";
274
+ export {
275
+ N as Listbox
276
+ };
277
+ //# sourceMappingURL=listbox.es.js.map