@purpur/library 9.0.10 → 9.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/CHANGELOG.json +33 -0
- package/CHANGELOG.md +15 -1
- package/dist/LICENSE.txt +45 -24
- package/dist/{autocomplete-Dy8YL7Mo.js → autocomplete-B421J7CS.js} +2 -2
- package/dist/{autocomplete-Dy8YL7Mo.js.map → autocomplete-B421J7CS.js.map} +1 -1
- package/dist/{autocomplete-Dn503hFM.mjs → autocomplete-B8L-dTmF.mjs} +3 -3
- package/dist/{autocomplete-Dn503hFM.mjs.map → autocomplete-B8L-dTmF.mjs.map} +1 -1
- package/dist/autocomplete.cjs.js +1 -1
- package/dist/autocomplete.es.js +1 -1
- package/dist/chat-field-CxOqk0-9.js +2 -0
- package/dist/chat-field-CxOqk0-9.js.map +1 -0
- package/dist/chat-field-yK-TwW0D.mjs +149 -0
- package/dist/chat-field-yK-TwW0D.mjs.map +1 -0
- package/dist/chat-field.cjs.js +2 -0
- package/dist/chat-field.cjs.js.map +1 -0
- package/dist/chat-field.es.js +5 -0
- package/dist/chat-field.es.js.map +1 -0
- package/dist/components/autocomplete/src/autocomplete.d.ts.map +1 -1
- package/dist/components/chat-field/src/chat-field.d.ts +71 -0
- package/dist/components/chat-field/src/chat-field.d.ts.map +1 -0
- package/dist/components/dismissable-chip-group/src/dismissable-chip-group-item.d.ts.map +1 -1
- package/dist/components/dismissable-chip-group/src/dismissable-chip-group.d.ts +6 -1
- package/dist/components/dismissable-chip-group/src/dismissable-chip-group.d.ts.map +1 -1
- package/dist/components/dropdown/src/dropdown-combobox.d.ts +34 -0
- package/dist/components/dropdown/src/dropdown-combobox.d.ts.map +1 -0
- package/dist/components/dropdown/src/dropdown-select.d.ts +34 -0
- package/dist/components/dropdown/src/dropdown-select.d.ts.map +1 -0
- package/dist/components/dropdown/src/dropdown-shared.d.ts +51 -0
- package/dist/components/dropdown/src/dropdown-shared.d.ts.map +1 -0
- package/dist/components/dropdown/src/dropdown.d.ts +6 -0
- package/dist/components/dropdown/src/dropdown.d.ts.map +1 -0
- package/dist/components/dropdown/src/dropdown.types.d.ts +94 -0
- package/dist/components/dropdown/src/dropdown.types.d.ts.map +1 -0
- package/dist/components/dropdown/src/useDropdown.d.ts +38 -0
- package/dist/components/dropdown/src/useDropdown.d.ts.map +1 -0
- package/dist/components/dropdown/src/useDropdownFilter.d.ts +9 -0
- package/dist/components/dropdown/src/useDropdownFilter.d.ts.map +1 -0
- package/dist/components/dropdown/src/useDropdownHighlight.d.ts +19 -0
- package/dist/components/dropdown/src/useDropdownHighlight.d.ts.map +1 -0
- package/dist/components/dropdown/src/useDropdownInput.d.ts +12 -0
- package/dist/components/dropdown/src/useDropdownInput.d.ts.map +1 -0
- package/dist/components/dropdown/src/useOnClickOutside.d.ts +2 -0
- package/dist/components/dropdown/src/useOnClickOutside.d.ts.map +1 -0
- package/dist/components/listbox/src/listbox-item.d.ts +2 -0
- package/dist/components/listbox/src/listbox-item.d.ts.map +1 -1
- package/dist/components/search-field/src/search-field-autocomplete.d.ts +73 -0
- package/dist/components/search-field/src/search-field-autocomplete.d.ts.map +1 -0
- package/dist/components/search-field/src/search-field-base.d.ts +97 -0
- package/dist/components/search-field/src/search-field-base.d.ts.map +1 -0
- package/dist/components/search-field/src/search-field.d.ts +123 -41
- package/dist/components/search-field/src/search-field.d.ts.map +1 -1
- package/dist/components/text-field/src/text-field-ai.d.ts +669 -0
- package/dist/components/text-field/src/text-field-ai.d.ts.map +1 -0
- package/dist/components/text-field/src/text-field-base.d.ts +671 -0
- package/dist/components/text-field/src/text-field-base.d.ts.map +1 -0
- package/dist/components/text-field/src/text-field.d.ts +42 -4
- package/dist/components/text-field/src/text-field.d.ts.map +1 -1
- package/dist/components-metadata.js +29 -1
- package/dist/{date-field-DACXrowI.mjs → date-field-4tYMPw89.mjs} +2 -2
- package/dist/{date-field-DACXrowI.mjs.map → date-field-4tYMPw89.mjs.map} +1 -1
- package/dist/{date-field-Z3LKO4b7.js → date-field-B7ipm5sH.js} +2 -2
- package/dist/{date-field-Z3LKO4b7.js.map → date-field-B7ipm5sH.js.map} +1 -1
- package/dist/date-field.cjs.js +1 -1
- package/dist/date-field.es.js +1 -1
- package/dist/{date-picker-5Gr_cEqA.js → date-picker-B8L1Hm8r.js} +2 -2
- package/dist/{date-picker-5Gr_cEqA.js.map → date-picker-B8L1Hm8r.js.map} +1 -1
- package/dist/{date-picker-CdVUA8NC.mjs → date-picker-Bp_XpoOF.mjs} +2 -2
- package/dist/{date-picker-CdVUA8NC.mjs.map → date-picker-Bp_XpoOF.mjs.map} +1 -1
- package/dist/date-picker.cjs.js +1 -1
- package/dist/date-picker.es.js +1 -1
- package/dist/dismissable-chip-group-Cd23yjBa.js +2 -0
- package/dist/dismissable-chip-group-Cd23yjBa.js.map +1 -0
- package/dist/dismissable-chip-group-D-gD93ON.mjs +89 -0
- package/dist/dismissable-chip-group-D-gD93ON.mjs.map +1 -0
- package/dist/dismissable-chip-group.cjs.js +1 -1
- package/dist/dismissable-chip-group.es.js +5 -2
- package/dist/dropdown-BC6evqyq.js +2 -0
- package/dist/dropdown-BC6evqyq.js.map +1 -0
- package/dist/dropdown-C-Ze4gvG.mjs +771 -0
- package/dist/dropdown-C-Ze4gvG.mjs.map +1 -0
- package/dist/dropdown.cjs.js +2 -0
- package/dist/dropdown.cjs.js.map +1 -0
- package/dist/dropdown.es.js +6 -0
- package/dist/dropdown.es.js.map +1 -0
- package/dist/libraries/library/src/chat-field.d.ts +6 -0
- package/dist/libraries/library/src/chat-field.d.ts.map +1 -0
- package/dist/libraries/library/src/dropdown.d.ts +6 -0
- package/dist/libraries/library/src/dropdown.d.ts.map +1 -0
- package/dist/libraries/library/src/library.d.ts +2 -0
- package/dist/libraries/library/src/library.d.ts.map +1 -1
- package/dist/library.cjs.js +1 -1
- package/dist/library.es.js +601 -591
- package/dist/library.es.js.map +1 -1
- package/dist/listbox-COBHLRtB.js +2 -0
- package/dist/listbox-COBHLRtB.js.map +1 -0
- package/dist/listbox-DG4KmQP_.mjs +66 -0
- package/dist/listbox-DG4KmQP_.mjs.map +1 -0
- package/dist/listbox.cjs.js +1 -1
- package/dist/listbox.es.js +1 -1
- package/dist/purpur.css +1 -1
- package/dist/{quantity-selector-w10wKMmT.mjs → quantity-selector-CsR6KTG3.mjs} +2 -2
- package/dist/{quantity-selector-w10wKMmT.mjs.map → quantity-selector-CsR6KTG3.mjs.map} +1 -1
- package/dist/{quantity-selector-D28He6R8.js → quantity-selector-DWDg4aFO.js} +2 -2
- package/dist/{quantity-selector-D28He6R8.js.map → quantity-selector-DWDg4aFO.js.map} +1 -1
- package/dist/quantity-selector.cjs.js +1 -1
- package/dist/quantity-selector.es.js +1 -1
- package/dist/search-field-Caj2dKLn.mjs +151 -0
- package/dist/search-field-Caj2dKLn.mjs.map +1 -0
- package/dist/search-field-DAktzYb0.js +2 -0
- package/dist/search-field-DAktzYb0.js.map +1 -0
- package/dist/search-field.cjs.js +1 -1
- package/dist/search-field.es.js +3 -2
- package/dist/{table-YR-bpfU0.mjs → table-DXYHrKI7.mjs} +2 -2
- package/dist/{table-YR-bpfU0.mjs.map → table-DXYHrKI7.mjs.map} +1 -1
- package/dist/{table-CJijBJsy.js → table-x3SDCR-z.js} +2 -2
- package/dist/{table-CJijBJsy.js.map → table-x3SDCR-z.js.map} +1 -1
- package/dist/table.cjs.js +1 -1
- package/dist/table.es.js +1 -1
- package/dist/text-field-BQYzwIrG.mjs +322 -0
- package/dist/text-field-BQYzwIrG.mjs.map +1 -0
- package/dist/text-field-BwxGMWds.js +2 -0
- package/dist/text-field-BwxGMWds.js.map +1 -0
- package/dist/text-field.cjs.js +1 -1
- package/dist/text-field.es.js +4 -3
- package/dist/use-autocomplete.es-BHDgQLae.js +2 -0
- package/dist/use-autocomplete.es-BHDgQLae.js.map +1 -0
- package/dist/use-autocomplete.es-CVv3z8t6.mjs +142 -0
- package/dist/use-autocomplete.es-CVv3z8t6.mjs.map +1 -0
- package/package.json +25 -23
- package/src/aliases.ts +8 -0
- package/src/chat-field.ts +6 -0
- package/src/dropdown.ts +6 -0
- package/src/entries.js +2 -0
- package/src/library.ts +4 -0
- package/dist/dismissable-chip-group-CnziecOt.js +0 -2
- package/dist/dismissable-chip-group-CnziecOt.js.map +0 -1
- package/dist/dismissable-chip-group-ZCYOt1sB.mjs +0 -79
- package/dist/dismissable-chip-group-ZCYOt1sB.mjs.map +0 -1
- package/dist/listbox-BmjBtIv8.js +0 -2
- package/dist/listbox-BmjBtIv8.js.map +0 -1
- package/dist/listbox-oDeP8FvH.mjs +0 -65
- package/dist/listbox-oDeP8FvH.mjs.map +0 -1
- package/dist/search-field-CNpJp3Tg.js +0 -2
- package/dist/search-field-CNpJp3Tg.js.map +0 -1
- package/dist/search-field-CWqLnqdo.mjs +0 -91
- package/dist/search-field-CWqLnqdo.mjs.map +0 -1
- package/dist/text-field-BMDf8j-K.mjs +0 -185
- package/dist/text-field-BMDf8j-K.mjs.map +0 -1
- package/dist/text-field-CiLEj0Fq.js +0 -2
- package/dist/text-field-CiLEj0Fq.js.map +0 -1
package/dist/library.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"library.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"library.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const s=require("react/jsx-runtime"),o=require("react"),p=require("./bind-DeUYJ6m9.js"),N=require("./checkmark.es-lYntWFA3.js"),$=require("./paragraph-BsI53OR0.js"),m={"purpur-listbox":"_purpur-listbox_l0zrf_1","purpur-listbox-item":"_purpur-listbox-item_l0zrf_15","purpur-listbox-item--hovered":"_purpur-listbox-item--hovered_l0zrf_29","purpur-listbox-item--highlighted":"_purpur-listbox-item--highlighted_l0zrf_37","purpur-listbox-item--noninteractive":"_purpur-listbox-item--noninteractive_l0zrf_41","purpur-listbox-item--disabled":"_purpur-listbox-item--disabled_l0zrf_44","purpur-listbox-item__icon":"_purpur-listbox-item__icon_l0zrf_51"},u=p.c.bind(m),e="purpur-listbox",c=o.forwardRef((i,t)=>{const{disabled:r,highlighted:d,hovered:x,selected:l,children:a,className:b,noninteractive:_,hideSelectedIcon:h,...f}=i,g=u(`${e}-item`,b,{[`${e}-item--highlighted`]:d,[`${e}-item--selected`]:l,[`${e}-item--hovered`]:x,[`${e}-item--disabled`]:r,[`${e}-item--noninteractive`]:_});return s.jsxs("li",{...f,ref:t,className:g,"aria-selected":!!l,role:"option","aria-disabled":!!r,children:[typeof a=="string"?s.jsx($.Paragraph,{children:a}):a,l&&!h&&s.jsx(N.a,{size:"xs",className:u(`${e}-item__icon`)})]})}),v=i=>o.isValidElement(i)&&i?.type===c;c.displayName="ListBoxItem";const z=p.c.bind(m),y="purpur-listbox",n=o.forwardRef(({children:i,...t},r)=>s.jsx("ul",{...t,ref:r,className:z(y,t.className),role:"listbox",children:o.Children.toArray(i).filter(v)}));n.Item=c;n.displayName="ListBox";exports.Listbox=n;
|
|
2
|
+
//# sourceMappingURL=listbox-COBHLRtB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listbox-COBHLRtB.js","sources":["../../../components/listbox/src/listbox-item.tsx","../../../components/listbox/src/listbox.tsx"],"sourcesContent":["import React, { forwardRef, isValidElement, type ReactElement, type ReactNode } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { IconCheckmark } from \"@purpur/icon/checkmark\";\nimport { Paragraph } from \"@purpur/paragraph\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./listbox.module.scss\";\n\nconst cx = c.bind(styles);\n\nconst rootClassName = \"purpur-listbox\";\n\nexport type ListboxItemProps = Omit<BaseProps<\"li\">, \"role\"> & {\n highlighted?: boolean;\n hovered?: boolean;\n key?: string;\n selected?: boolean;\n disabled?: boolean;\n noninteractive?: boolean;\n /** When true, hides the built-in checkmark icon while preserving `aria-selected`. */\n hideSelectedIcon?: boolean;\n};\n\nexport const ListboxItem = forwardRef<HTMLLIElement, ListboxItemProps>((props, ref) => {\n const {\n disabled,\n highlighted,\n hovered,\n selected,\n children,\n className,\n noninteractive,\n hideSelectedIcon,\n ...liProps\n } = props;\n\n const classes = cx(`${rootClassName}-item`, className, {\n [`${rootClassName}-item--highlighted`]: highlighted,\n [`${rootClassName}-item--selected`]: selected,\n [`${rootClassName}-item--hovered`]: hovered,\n [`${rootClassName}-item--disabled`]: disabled,\n [`${rootClassName}-item--noninteractive`]: noninteractive,\n });\n\n return (\n <li\n {...liProps}\n ref={ref}\n className={classes}\n aria-selected={!!selected}\n role=\"option\"\n aria-disabled={!!disabled}\n >\n {typeof children === \"string\" ? <Paragraph>{children}</Paragraph> : children}\n {selected && !hideSelectedIcon && (\n <IconCheckmark size=\"xs\" className={cx(`${rootClassName}-item__icon`)} />\n )}\n </li>\n );\n});\n\nexport const isListboxItem = (child?: ReactNode): child is ReactElement<ListboxItemProps> =>\n isValidElement<ListboxItemProps>(child) && child?.type === ListboxItem;\n\nListboxItem.displayName = \"ListBoxItem\";\n","import React, {\n Children,\n forwardRef,\n type ForwardRefExoticComponent,\n type PropsWithoutRef,\n} from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./listbox.module.scss\";\nimport { isListboxItem, ListboxItem } from \"./listbox-item\";\n\nconst cx = c.bind(styles);\n\nconst rootClassName = \"purpur-listbox\";\n\nexport type ListboxProps = Omit<BaseProps<\"ul\">, \"role\"> & {\n \"aria-label\": NonNullable<BaseProps<\"ul\">[\"aria-label\"]>;\n \"aria-expanded\": NonNullable<BaseProps<\"ul\">[\"aria-expanded\"]>;\n};\n\ntype ListboxStatic = {\n Item: typeof ListboxItem;\n};\n\ntype ListboxComponent = ForwardRefExoticComponent<PropsWithoutRef<ListboxProps>> & ListboxStatic;\n\nexport const Listbox = forwardRef<HTMLUListElement, ListboxProps>(\n ({ children, ...listboxProps }, ref) => (\n <ul\n {...listboxProps}\n ref={ref}\n className={cx(rootClassName, listboxProps.className)}\n role=\"listbox\"\n >\n {Children.toArray(children).filter(isListboxItem)}\n </ul>\n )\n) as ListboxComponent;\n\nexport type { ListboxItemProps } from \"./listbox-item\";\nListbox.Item = ListboxItem;\nListbox.displayName = \"ListBox\";\n"],"names":["cx","c","styles","rootClassName","ListboxItem","forwardRef","props","ref","disabled","highlighted","hovered","selected","children","className","noninteractive","hideSelectedIcon","liProps","classes","jsxs","jsx","Paragraph","IconCheckmark","isListboxItem","child","isValidElement","Listbox","listboxProps","Children"],"mappings":"ipBAQMA,EAAKC,EAAAA,EAAE,KAAKC,CAAM,EAElBC,EAAgB,iBAaTC,EAAcC,EAAAA,WAA4C,CAACC,EAAOC,IAAQ,CACrF,KAAM,CACJ,SAAAC,EACA,YAAAC,EACA,QAAAC,EACA,SAAAC,EACA,SAAAC,EACA,UAAAC,EACA,eAAAC,EACA,iBAAAC,EACA,GAAGC,CAAA,EACDV,EAEEW,EAAUjB,EAAG,GAAGG,CAAa,QAASU,EAAW,CACrD,CAAC,GAAGV,CAAa,oBAAoB,EAAGM,EACxC,CAAC,GAAGN,CAAa,iBAAiB,EAAGQ,EACrC,CAAC,GAAGR,CAAa,gBAAgB,EAAGO,EACpC,CAAC,GAAGP,CAAa,iBAAiB,EAAGK,EACrC,CAAC,GAAGL,CAAa,uBAAuB,EAAGW,CAAA,CAC5C,EAED,OACEI,EAAAA,KAAC,KAAA,CACE,GAAGF,EACJ,IAAAT,EACA,UAAWU,EACX,gBAAe,CAAC,CAACN,EACjB,KAAK,SACL,gBAAe,CAAC,CAACH,EAEhB,SAAA,CAAA,OAAOI,GAAa,SAAWO,EAAAA,IAACC,EAAAA,UAAA,CAAW,SAAAR,EAAS,EAAeA,EACnED,GAAY,CAACI,GACZI,MAACE,EAAAA,EAAA,CAAc,KAAK,KAAK,UAAWrB,EAAG,GAAGG,CAAa,aAAa,CAAA,CAAG,CAAA,CAAA,CAAA,CAI/E,CAAC,EAEYmB,EAAiBC,GAC5BC,EAAAA,eAAiCD,CAAK,GAAKA,GAAO,OAASnB,EAE7DA,EAAY,YAAc,cCpD1B,MAAMJ,EAAKC,EAAAA,EAAE,KAAKC,CAAM,EAElBC,EAAgB,iBAaTsB,EAAUpB,EAAAA,WACrB,CAAC,CAAE,SAAAO,EAAU,GAAGc,CAAA,EAAgBnB,IAC9BY,EAAAA,IAAC,KAAA,CACE,GAAGO,EACJ,IAAAnB,EACA,UAAWP,EAAGG,EAAeuB,EAAa,SAAS,EACnD,KAAK,UAEJ,SAAAC,EAAAA,SAAS,QAAQf,CAAQ,EAAE,OAAOU,CAAa,CAAA,CAAA,CAGtD,EAGAG,EAAQ,KAAOrB,EACfqB,EAAQ,YAAc"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { jsxs as N, jsx as l } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as a, isValidElement as $, Children as v } from "react";
|
|
3
|
+
import { c as n } from "./bind-CU-R61T-.mjs";
|
|
4
|
+
import { a as z } from "./checkmark.es-DdgIZN2R.mjs";
|
|
5
|
+
import { P as y } from "./paragraph-Ci50OF1u.mjs";
|
|
6
|
+
const u = {
|
|
7
|
+
"purpur-listbox": "_purpur-listbox_l0zrf_1",
|
|
8
|
+
"purpur-listbox-item": "_purpur-listbox-item_l0zrf_15",
|
|
9
|
+
"purpur-listbox-item--hovered": "_purpur-listbox-item--hovered_l0zrf_29",
|
|
10
|
+
"purpur-listbox-item--highlighted": "_purpur-listbox-item--highlighted_l0zrf_37",
|
|
11
|
+
"purpur-listbox-item--noninteractive": "_purpur-listbox-item--noninteractive_l0zrf_41",
|
|
12
|
+
"purpur-listbox-item--disabled": "_purpur-listbox-item--disabled_l0zrf_44",
|
|
13
|
+
"purpur-listbox-item__icon": "_purpur-listbox-item__icon_l0zrf_51"
|
|
14
|
+
}, m = n.bind(u), i = "purpur-listbox", p = a((e, t) => {
|
|
15
|
+
const {
|
|
16
|
+
disabled: r,
|
|
17
|
+
highlighted: d,
|
|
18
|
+
hovered: x,
|
|
19
|
+
selected: s,
|
|
20
|
+
children: o,
|
|
21
|
+
className: _,
|
|
22
|
+
noninteractive: b,
|
|
23
|
+
hideSelectedIcon: h,
|
|
24
|
+
...f
|
|
25
|
+
} = e, g = m(`${i}-item`, _, {
|
|
26
|
+
[`${i}-item--highlighted`]: d,
|
|
27
|
+
[`${i}-item--selected`]: s,
|
|
28
|
+
[`${i}-item--hovered`]: x,
|
|
29
|
+
[`${i}-item--disabled`]: r,
|
|
30
|
+
[`${i}-item--noninteractive`]: b
|
|
31
|
+
});
|
|
32
|
+
return /* @__PURE__ */ N(
|
|
33
|
+
"li",
|
|
34
|
+
{
|
|
35
|
+
...f,
|
|
36
|
+
ref: t,
|
|
37
|
+
className: g,
|
|
38
|
+
"aria-selected": !!s,
|
|
39
|
+
role: "option",
|
|
40
|
+
"aria-disabled": !!r,
|
|
41
|
+
children: [
|
|
42
|
+
typeof o == "string" ? /* @__PURE__ */ l(y, { children: o }) : o,
|
|
43
|
+
s && !h && /* @__PURE__ */ l(z, { size: "xs", className: m(`${i}-item__icon`) })
|
|
44
|
+
]
|
|
45
|
+
}
|
|
46
|
+
);
|
|
47
|
+
}), L = (e) => $(e) && e?.type === p;
|
|
48
|
+
p.displayName = "ListBoxItem";
|
|
49
|
+
const I = n.bind(u), C = "purpur-listbox", c = a(
|
|
50
|
+
({ children: e, ...t }, r) => /* @__PURE__ */ l(
|
|
51
|
+
"ul",
|
|
52
|
+
{
|
|
53
|
+
...t,
|
|
54
|
+
ref: r,
|
|
55
|
+
className: I(C, t.className),
|
|
56
|
+
role: "listbox",
|
|
57
|
+
children: v.toArray(e).filter(L)
|
|
58
|
+
}
|
|
59
|
+
)
|
|
60
|
+
);
|
|
61
|
+
c.Item = p;
|
|
62
|
+
c.displayName = "ListBox";
|
|
63
|
+
export {
|
|
64
|
+
c as L
|
|
65
|
+
};
|
|
66
|
+
//# sourceMappingURL=listbox-DG4KmQP_.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listbox-DG4KmQP_.mjs","sources":["../../../components/listbox/src/listbox-item.tsx","../../../components/listbox/src/listbox.tsx"],"sourcesContent":["import React, { forwardRef, isValidElement, type ReactElement, type ReactNode } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { IconCheckmark } from \"@purpur/icon/checkmark\";\nimport { Paragraph } from \"@purpur/paragraph\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./listbox.module.scss\";\n\nconst cx = c.bind(styles);\n\nconst rootClassName = \"purpur-listbox\";\n\nexport type ListboxItemProps = Omit<BaseProps<\"li\">, \"role\"> & {\n highlighted?: boolean;\n hovered?: boolean;\n key?: string;\n selected?: boolean;\n disabled?: boolean;\n noninteractive?: boolean;\n /** When true, hides the built-in checkmark icon while preserving `aria-selected`. */\n hideSelectedIcon?: boolean;\n};\n\nexport const ListboxItem = forwardRef<HTMLLIElement, ListboxItemProps>((props, ref) => {\n const {\n disabled,\n highlighted,\n hovered,\n selected,\n children,\n className,\n noninteractive,\n hideSelectedIcon,\n ...liProps\n } = props;\n\n const classes = cx(`${rootClassName}-item`, className, {\n [`${rootClassName}-item--highlighted`]: highlighted,\n [`${rootClassName}-item--selected`]: selected,\n [`${rootClassName}-item--hovered`]: hovered,\n [`${rootClassName}-item--disabled`]: disabled,\n [`${rootClassName}-item--noninteractive`]: noninteractive,\n });\n\n return (\n <li\n {...liProps}\n ref={ref}\n className={classes}\n aria-selected={!!selected}\n role=\"option\"\n aria-disabled={!!disabled}\n >\n {typeof children === \"string\" ? <Paragraph>{children}</Paragraph> : children}\n {selected && !hideSelectedIcon && (\n <IconCheckmark size=\"xs\" className={cx(`${rootClassName}-item__icon`)} />\n )}\n </li>\n );\n});\n\nexport const isListboxItem = (child?: ReactNode): child is ReactElement<ListboxItemProps> =>\n isValidElement<ListboxItemProps>(child) && child?.type === ListboxItem;\n\nListboxItem.displayName = \"ListBoxItem\";\n","import React, {\n Children,\n forwardRef,\n type ForwardRefExoticComponent,\n type PropsWithoutRef,\n} from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./listbox.module.scss\";\nimport { isListboxItem, ListboxItem } from \"./listbox-item\";\n\nconst cx = c.bind(styles);\n\nconst rootClassName = \"purpur-listbox\";\n\nexport type ListboxProps = Omit<BaseProps<\"ul\">, \"role\"> & {\n \"aria-label\": NonNullable<BaseProps<\"ul\">[\"aria-label\"]>;\n \"aria-expanded\": NonNullable<BaseProps<\"ul\">[\"aria-expanded\"]>;\n};\n\ntype ListboxStatic = {\n Item: typeof ListboxItem;\n};\n\ntype ListboxComponent = ForwardRefExoticComponent<PropsWithoutRef<ListboxProps>> & ListboxStatic;\n\nexport const Listbox = forwardRef<HTMLUListElement, ListboxProps>(\n ({ children, ...listboxProps }, ref) => (\n <ul\n {...listboxProps}\n ref={ref}\n className={cx(rootClassName, listboxProps.className)}\n role=\"listbox\"\n >\n {Children.toArray(children).filter(isListboxItem)}\n </ul>\n )\n) as ListboxComponent;\n\nexport type { ListboxItemProps } from \"./listbox-item\";\nListbox.Item = ListboxItem;\nListbox.displayName = \"ListBox\";\n"],"names":["cx","c","styles","rootClassName","ListboxItem","forwardRef","props","ref","disabled","highlighted","hovered","selected","children","className","noninteractive","hideSelectedIcon","liProps","classes","jsxs","jsx","Paragraph","IconCheckmark","isListboxItem","child","isValidElement","Listbox","listboxProps","Children"],"mappings":";;;;;;;;;;;;;GAQMA,IAAKC,EAAE,KAAKC,CAAM,GAElBC,IAAgB,kBAaTC,IAAcC,EAA4C,CAACC,GAAOC,MAAQ;AACrF,QAAM;AAAA,IACJ,UAAAC;AAAA,IACA,aAAAC;AAAA,IACA,SAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,IACDV,GAEEW,IAAUjB,EAAG,GAAGG,CAAa,SAASU,GAAW;AAAA,IACrD,CAAC,GAAGV,CAAa,oBAAoB,GAAGM;AAAA,IACxC,CAAC,GAAGN,CAAa,iBAAiB,GAAGQ;AAAA,IACrC,CAAC,GAAGR,CAAa,gBAAgB,GAAGO;AAAA,IACpC,CAAC,GAAGP,CAAa,iBAAiB,GAAGK;AAAA,IACrC,CAAC,GAAGL,CAAa,uBAAuB,GAAGW;AAAA,EAAA,CAC5C;AAED,SACE,gBAAAI;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAGF;AAAA,MACJ,KAAAT;AAAA,MACA,WAAWU;AAAA,MACX,iBAAe,CAAC,CAACN;AAAA,MACjB,MAAK;AAAA,MACL,iBAAe,CAAC,CAACH;AAAA,MAEhB,UAAA;AAAA,QAAA,OAAOI,KAAa,WAAW,gBAAAO,EAACC,GAAA,EAAW,UAAAR,GAAS,IAAeA;AAAA,QACnED,KAAY,CAACI,KACZ,gBAAAI,EAACE,GAAA,EAAc,MAAK,MAAK,WAAWrB,EAAG,GAAGG,CAAa,aAAa,EAAA,CAAG;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAI/E,CAAC,GAEYmB,IAAgB,CAACC,MAC5BC,EAAiCD,CAAK,KAAKA,GAAO,SAASnB;AAE7DA,EAAY,cAAc;ACpD1B,MAAMJ,IAAKC,EAAE,KAAKC,CAAM,GAElBC,IAAgB,kBAaTsB,IAAUpB;AAAA,EACrB,CAAC,EAAE,UAAAO,GAAU,GAAGc,EAAA,GAAgBnB,MAC9B,gBAAAY;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAGO;AAAA,MACJ,KAAAnB;AAAA,MACA,WAAWP,EAAGG,GAAeuB,EAAa,SAAS;AAAA,MACnD,MAAK;AAAA,MAEJ,UAAAC,EAAS,QAAQf,CAAQ,EAAE,OAAOU,CAAa;AAAA,IAAA;AAAA,EAAA;AAGtD;AAGAG,EAAQ,OAAOrB;AACfqB,EAAQ,cAAc;"}
|
package/dist/listbox.cjs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./listbox-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./listbox-COBHLRtB.js");exports.Listbox=t.Listbox;
|
|
2
2
|
//# sourceMappingURL=listbox.cjs.js.map
|
package/dist/listbox.es.js
CHANGED