@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.
Files changed (150) hide show
  1. package/CHANGELOG.json +33 -0
  2. package/CHANGELOG.md +15 -1
  3. package/dist/LICENSE.txt +45 -24
  4. package/dist/{autocomplete-Dy8YL7Mo.js → autocomplete-B421J7CS.js} +2 -2
  5. package/dist/{autocomplete-Dy8YL7Mo.js.map → autocomplete-B421J7CS.js.map} +1 -1
  6. package/dist/{autocomplete-Dn503hFM.mjs → autocomplete-B8L-dTmF.mjs} +3 -3
  7. package/dist/{autocomplete-Dn503hFM.mjs.map → autocomplete-B8L-dTmF.mjs.map} +1 -1
  8. package/dist/autocomplete.cjs.js +1 -1
  9. package/dist/autocomplete.es.js +1 -1
  10. package/dist/chat-field-CxOqk0-9.js +2 -0
  11. package/dist/chat-field-CxOqk0-9.js.map +1 -0
  12. package/dist/chat-field-yK-TwW0D.mjs +149 -0
  13. package/dist/chat-field-yK-TwW0D.mjs.map +1 -0
  14. package/dist/chat-field.cjs.js +2 -0
  15. package/dist/chat-field.cjs.js.map +1 -0
  16. package/dist/chat-field.es.js +5 -0
  17. package/dist/chat-field.es.js.map +1 -0
  18. package/dist/components/autocomplete/src/autocomplete.d.ts.map +1 -1
  19. package/dist/components/chat-field/src/chat-field.d.ts +71 -0
  20. package/dist/components/chat-field/src/chat-field.d.ts.map +1 -0
  21. package/dist/components/dismissable-chip-group/src/dismissable-chip-group-item.d.ts.map +1 -1
  22. package/dist/components/dismissable-chip-group/src/dismissable-chip-group.d.ts +6 -1
  23. package/dist/components/dismissable-chip-group/src/dismissable-chip-group.d.ts.map +1 -1
  24. package/dist/components/dropdown/src/dropdown-combobox.d.ts +34 -0
  25. package/dist/components/dropdown/src/dropdown-combobox.d.ts.map +1 -0
  26. package/dist/components/dropdown/src/dropdown-select.d.ts +34 -0
  27. package/dist/components/dropdown/src/dropdown-select.d.ts.map +1 -0
  28. package/dist/components/dropdown/src/dropdown-shared.d.ts +51 -0
  29. package/dist/components/dropdown/src/dropdown-shared.d.ts.map +1 -0
  30. package/dist/components/dropdown/src/dropdown.d.ts +6 -0
  31. package/dist/components/dropdown/src/dropdown.d.ts.map +1 -0
  32. package/dist/components/dropdown/src/dropdown.types.d.ts +94 -0
  33. package/dist/components/dropdown/src/dropdown.types.d.ts.map +1 -0
  34. package/dist/components/dropdown/src/useDropdown.d.ts +38 -0
  35. package/dist/components/dropdown/src/useDropdown.d.ts.map +1 -0
  36. package/dist/components/dropdown/src/useDropdownFilter.d.ts +9 -0
  37. package/dist/components/dropdown/src/useDropdownFilter.d.ts.map +1 -0
  38. package/dist/components/dropdown/src/useDropdownHighlight.d.ts +19 -0
  39. package/dist/components/dropdown/src/useDropdownHighlight.d.ts.map +1 -0
  40. package/dist/components/dropdown/src/useDropdownInput.d.ts +12 -0
  41. package/dist/components/dropdown/src/useDropdownInput.d.ts.map +1 -0
  42. package/dist/components/dropdown/src/useOnClickOutside.d.ts +2 -0
  43. package/dist/components/dropdown/src/useOnClickOutside.d.ts.map +1 -0
  44. package/dist/components/listbox/src/listbox-item.d.ts +2 -0
  45. package/dist/components/listbox/src/listbox-item.d.ts.map +1 -1
  46. package/dist/components/search-field/src/search-field-autocomplete.d.ts +73 -0
  47. package/dist/components/search-field/src/search-field-autocomplete.d.ts.map +1 -0
  48. package/dist/components/search-field/src/search-field-base.d.ts +97 -0
  49. package/dist/components/search-field/src/search-field-base.d.ts.map +1 -0
  50. package/dist/components/search-field/src/search-field.d.ts +123 -41
  51. package/dist/components/search-field/src/search-field.d.ts.map +1 -1
  52. package/dist/components/text-field/src/text-field-ai.d.ts +669 -0
  53. package/dist/components/text-field/src/text-field-ai.d.ts.map +1 -0
  54. package/dist/components/text-field/src/text-field-base.d.ts +671 -0
  55. package/dist/components/text-field/src/text-field-base.d.ts.map +1 -0
  56. package/dist/components/text-field/src/text-field.d.ts +42 -4
  57. package/dist/components/text-field/src/text-field.d.ts.map +1 -1
  58. package/dist/components-metadata.js +29 -1
  59. package/dist/{date-field-DACXrowI.mjs → date-field-4tYMPw89.mjs} +2 -2
  60. package/dist/{date-field-DACXrowI.mjs.map → date-field-4tYMPw89.mjs.map} +1 -1
  61. package/dist/{date-field-Z3LKO4b7.js → date-field-B7ipm5sH.js} +2 -2
  62. package/dist/{date-field-Z3LKO4b7.js.map → date-field-B7ipm5sH.js.map} +1 -1
  63. package/dist/date-field.cjs.js +1 -1
  64. package/dist/date-field.es.js +1 -1
  65. package/dist/{date-picker-5Gr_cEqA.js → date-picker-B8L1Hm8r.js} +2 -2
  66. package/dist/{date-picker-5Gr_cEqA.js.map → date-picker-B8L1Hm8r.js.map} +1 -1
  67. package/dist/{date-picker-CdVUA8NC.mjs → date-picker-Bp_XpoOF.mjs} +2 -2
  68. package/dist/{date-picker-CdVUA8NC.mjs.map → date-picker-Bp_XpoOF.mjs.map} +1 -1
  69. package/dist/date-picker.cjs.js +1 -1
  70. package/dist/date-picker.es.js +1 -1
  71. package/dist/dismissable-chip-group-Cd23yjBa.js +2 -0
  72. package/dist/dismissable-chip-group-Cd23yjBa.js.map +1 -0
  73. package/dist/dismissable-chip-group-D-gD93ON.mjs +89 -0
  74. package/dist/dismissable-chip-group-D-gD93ON.mjs.map +1 -0
  75. package/dist/dismissable-chip-group.cjs.js +1 -1
  76. package/dist/dismissable-chip-group.es.js +5 -2
  77. package/dist/dropdown-BC6evqyq.js +2 -0
  78. package/dist/dropdown-BC6evqyq.js.map +1 -0
  79. package/dist/dropdown-C-Ze4gvG.mjs +771 -0
  80. package/dist/dropdown-C-Ze4gvG.mjs.map +1 -0
  81. package/dist/dropdown.cjs.js +2 -0
  82. package/dist/dropdown.cjs.js.map +1 -0
  83. package/dist/dropdown.es.js +6 -0
  84. package/dist/dropdown.es.js.map +1 -0
  85. package/dist/libraries/library/src/chat-field.d.ts +6 -0
  86. package/dist/libraries/library/src/chat-field.d.ts.map +1 -0
  87. package/dist/libraries/library/src/dropdown.d.ts +6 -0
  88. package/dist/libraries/library/src/dropdown.d.ts.map +1 -0
  89. package/dist/libraries/library/src/library.d.ts +2 -0
  90. package/dist/libraries/library/src/library.d.ts.map +1 -1
  91. package/dist/library.cjs.js +1 -1
  92. package/dist/library.es.js +601 -591
  93. package/dist/library.es.js.map +1 -1
  94. package/dist/listbox-COBHLRtB.js +2 -0
  95. package/dist/listbox-COBHLRtB.js.map +1 -0
  96. package/dist/listbox-DG4KmQP_.mjs +66 -0
  97. package/dist/listbox-DG4KmQP_.mjs.map +1 -0
  98. package/dist/listbox.cjs.js +1 -1
  99. package/dist/listbox.es.js +1 -1
  100. package/dist/purpur.css +1 -1
  101. package/dist/{quantity-selector-w10wKMmT.mjs → quantity-selector-CsR6KTG3.mjs} +2 -2
  102. package/dist/{quantity-selector-w10wKMmT.mjs.map → quantity-selector-CsR6KTG3.mjs.map} +1 -1
  103. package/dist/{quantity-selector-D28He6R8.js → quantity-selector-DWDg4aFO.js} +2 -2
  104. package/dist/{quantity-selector-D28He6R8.js.map → quantity-selector-DWDg4aFO.js.map} +1 -1
  105. package/dist/quantity-selector.cjs.js +1 -1
  106. package/dist/quantity-selector.es.js +1 -1
  107. package/dist/search-field-Caj2dKLn.mjs +151 -0
  108. package/dist/search-field-Caj2dKLn.mjs.map +1 -0
  109. package/dist/search-field-DAktzYb0.js +2 -0
  110. package/dist/search-field-DAktzYb0.js.map +1 -0
  111. package/dist/search-field.cjs.js +1 -1
  112. package/dist/search-field.es.js +3 -2
  113. package/dist/{table-YR-bpfU0.mjs → table-DXYHrKI7.mjs} +2 -2
  114. package/dist/{table-YR-bpfU0.mjs.map → table-DXYHrKI7.mjs.map} +1 -1
  115. package/dist/{table-CJijBJsy.js → table-x3SDCR-z.js} +2 -2
  116. package/dist/{table-CJijBJsy.js.map → table-x3SDCR-z.js.map} +1 -1
  117. package/dist/table.cjs.js +1 -1
  118. package/dist/table.es.js +1 -1
  119. package/dist/text-field-BQYzwIrG.mjs +322 -0
  120. package/dist/text-field-BQYzwIrG.mjs.map +1 -0
  121. package/dist/text-field-BwxGMWds.js +2 -0
  122. package/dist/text-field-BwxGMWds.js.map +1 -0
  123. package/dist/text-field.cjs.js +1 -1
  124. package/dist/text-field.es.js +4 -3
  125. package/dist/use-autocomplete.es-BHDgQLae.js +2 -0
  126. package/dist/use-autocomplete.es-BHDgQLae.js.map +1 -0
  127. package/dist/use-autocomplete.es-CVv3z8t6.mjs +142 -0
  128. package/dist/use-autocomplete.es-CVv3z8t6.mjs.map +1 -0
  129. package/package.json +25 -23
  130. package/src/aliases.ts +8 -0
  131. package/src/chat-field.ts +6 -0
  132. package/src/dropdown.ts +6 -0
  133. package/src/entries.js +2 -0
  134. package/src/library.ts +4 -0
  135. package/dist/dismissable-chip-group-CnziecOt.js +0 -2
  136. package/dist/dismissable-chip-group-CnziecOt.js.map +0 -1
  137. package/dist/dismissable-chip-group-ZCYOt1sB.mjs +0 -79
  138. package/dist/dismissable-chip-group-ZCYOt1sB.mjs.map +0 -1
  139. package/dist/listbox-BmjBtIv8.js +0 -2
  140. package/dist/listbox-BmjBtIv8.js.map +0 -1
  141. package/dist/listbox-oDeP8FvH.mjs +0 -65
  142. package/dist/listbox-oDeP8FvH.mjs.map +0 -1
  143. package/dist/search-field-CNpJp3Tg.js +0 -2
  144. package/dist/search-field-CNpJp3Tg.js.map +0 -1
  145. package/dist/search-field-CWqLnqdo.mjs +0 -91
  146. package/dist/search-field-CWqLnqdo.mjs.map +0 -1
  147. package/dist/text-field-BMDf8j-K.mjs +0 -185
  148. package/dist/text-field-BMDf8j-K.mjs.map +0 -1
  149. package/dist/text-field-CiLEj0Fq.js +0 -2
  150. package/dist/text-field-CiLEj0Fq.js.map +0 -1
@@ -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;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./listbox-BmjBtIv8.js");exports.Listbox=t.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
@@ -1,4 +1,4 @@
1
- import { L as s } from "./listbox-oDeP8FvH.mjs";
1
+ import { L as s } from "./listbox-DG4KmQP_.mjs";
2
2
  export {
3
3
  s as Listbox
4
4
  };