@purpur/library 8.21.0 → 9.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 (93) hide show
  1. package/CHANGELOG.json +60 -1
  2. package/CHANGELOG.md +30 -2
  3. package/dist/LICENSE.txt +5 -5
  4. package/dist/checkbox-Dk3bZkZ3.js.map +1 -1
  5. package/dist/checkbox-LYzMiXu7.mjs.map +1 -1
  6. package/dist/chip-group-CJVvfl_J.mjs.map +1 -1
  7. package/dist/chip-group-aj1fdnjC.js.map +1 -1
  8. package/dist/{date-picker-BRkh2YEH.mjs → date-picker-BRnwwZv1.mjs} +364 -354
  9. package/dist/date-picker-BRnwwZv1.mjs.map +1 -0
  10. package/dist/date-picker-DlJGggam.js +2 -0
  11. package/dist/date-picker-DlJGggam.js.map +1 -0
  12. package/dist/date-picker.cjs.js +1 -1
  13. package/dist/date-picker.es.js +1 -1
  14. package/dist/floating-ui.react-dom-0ol4sFzt.mjs +1363 -0
  15. package/dist/floating-ui.react-dom-0ol4sFzt.mjs.map +1 -0
  16. package/dist/floating-ui.react-dom-Cc_YSprQ.js +2 -0
  17. package/dist/floating-ui.react-dom-Cc_YSprQ.js.map +1 -0
  18. package/dist/index-2cFVyGXq.js.map +1 -1
  19. package/dist/index-B8Mazo6u.mjs.map +1 -1
  20. package/dist/index-BG6K_yAm.js.map +1 -1
  21. package/dist/index-BVmlsxuF.js.map +1 -1
  22. package/dist/index-BbtRr5Q6.js.map +1 -1
  23. package/dist/index-BtWPC8xc.js.map +1 -1
  24. package/dist/index-ByaXH_ih.mjs.map +1 -1
  25. package/dist/index-C1AXAWlO.mjs.map +1 -1
  26. package/dist/index-CCNZ9uWB.mjs.map +1 -1
  27. package/dist/index-CEQ35j8b.mjs.map +1 -1
  28. package/dist/index-CKCTy3ZL.mjs.map +1 -1
  29. package/dist/index-CLMd7NJE.mjs.map +1 -1
  30. package/dist/index-Cje7xxa1.js.map +1 -1
  31. package/dist/index-CleLBinl.js.map +1 -1
  32. package/dist/index-CoR7YA3H.js.map +1 -1
  33. package/dist/index-CxBG4Ssm.js.map +1 -1
  34. package/dist/index-DA01QPpC.js.map +1 -1
  35. package/dist/index-DCcK_d4W.mjs.map +1 -1
  36. package/dist/index-DDrLXRUs.mjs.map +1 -1
  37. package/dist/index-DLcqcWxM.mjs.map +1 -1
  38. package/dist/index-DOFLOnao.js.map +1 -1
  39. package/dist/index-DOfn3ixy.mjs.map +1 -1
  40. package/dist/index-DPxjTK4w.mjs.map +1 -1
  41. package/dist/index-DSf4qCR-.mjs.map +1 -1
  42. package/dist/index-DlMXYAr3.js.map +1 -1
  43. package/dist/index-HJvG7FXj.js.map +1 -1
  44. package/dist/index-Hk_HrrHM.js.map +1 -1
  45. package/dist/index-IpWiejWQ.mjs.map +1 -1
  46. package/dist/index-MiRhI3nq.mjs.map +1 -1
  47. package/dist/index-_XxjJPRD.js.map +1 -1
  48. package/dist/index-kcwFA4Dv.js.map +1 -1
  49. package/dist/index-tyLV0iiH.mjs.map +1 -1
  50. package/dist/label-7sJe5-pX.mjs.map +1 -1
  51. package/dist/label-yHK80hhV.js.map +1 -1
  52. package/dist/library.cjs.js +1 -1
  53. package/dist/library.es.js +5 -5
  54. package/dist/{popover-CYyCtoef.js → popover-B1BgSoQx.js} +2 -2
  55. package/dist/{popover-CYyCtoef.js.map → popover-B1BgSoQx.js.map} +1 -1
  56. package/dist/{popover-C6nZb3cQ.mjs → popover-DBMI9Jy1.mjs} +4 -4
  57. package/dist/{popover-C6nZb3cQ.mjs.map → popover-DBMI9Jy1.mjs.map} +1 -1
  58. package/dist/popover.cjs.js +1 -1
  59. package/dist/popover.es.js +1 -1
  60. package/dist/slider-CDOrFmK-.mjs.map +1 -1
  61. package/dist/slider-_R6JmPZl.js.map +1 -1
  62. package/dist/{stepper-DA0c9Utm.js → stepper-B248FwO-.js} +2 -2
  63. package/dist/{stepper-DA0c9Utm.js.map → stepper-B248FwO-.js.map} +1 -1
  64. package/dist/{stepper-D81jmbEf.mjs → stepper-BfIbJwZn.mjs} +2 -2
  65. package/dist/{stepper-D81jmbEf.mjs.map → stepper-BfIbJwZn.mjs.map} +1 -1
  66. package/dist/stepper.cjs.js +1 -1
  67. package/dist/stepper.es.js +1 -1
  68. package/dist/{table-Dd58bK_Q.js → table-BNeo_B1h.js} +2 -2
  69. package/dist/{table-Dd58bK_Q.js.map → table-BNeo_B1h.js.map} +1 -1
  70. package/dist/{table-CIrmGGb2.mjs → table-DvcpczWf.mjs} +2 -2
  71. package/dist/{table-CIrmGGb2.mjs.map → table-DvcpczWf.mjs.map} +1 -1
  72. package/dist/table.cjs.js +1 -1
  73. package/dist/table.es.js +1 -1
  74. package/dist/tabs-CfHd4UQ2.js.map +1 -1
  75. package/dist/tabs-CoXMAwMx.mjs.map +1 -1
  76. package/dist/toggle-C8IwTbX8.js.map +1 -1
  77. package/dist/toggle-Cezg5MUc.mjs.map +1 -1
  78. package/dist/{tooltip-870Nmk-v.js → tooltip-CLQLxoaf.js} +2 -2
  79. package/dist/{tooltip-870Nmk-v.js.map → tooltip-CLQLxoaf.js.map} +1 -1
  80. package/dist/{tooltip-Cqfj0lSz.mjs → tooltip-DXi7ikUT.mjs} +2 -2
  81. package/dist/{tooltip-Cqfj0lSz.mjs.map → tooltip-DXi7ikUT.mjs.map} +1 -1
  82. package/dist/tooltip.cjs.js +1 -1
  83. package/dist/tooltip.es.js +1 -1
  84. package/dist/visually-hidden-BYFkJEp1.mjs.map +1 -1
  85. package/dist/visually-hidden-C2CKovZx.js.map +1 -1
  86. package/package.json +68 -68
  87. package/dist/date-picker-BRkh2YEH.mjs.map +0 -1
  88. package/dist/date-picker-C2Wtf7XQ.js +0 -2
  89. package/dist/date-picker-C2Wtf7XQ.js.map +0 -1
  90. package/dist/floating-ui.react-dom-B_rB55Mr.mjs +0 -1340
  91. package/dist/floating-ui.react-dom-B_rB55Mr.mjs.map +0 -1
  92. package/dist/floating-ui.react-dom-z0lMBJ4R.js +0 -2
  93. package/dist/floating-ui.react-dom-z0lMBJ4R.js.map +0 -1
package/CHANGELOG.json CHANGED
@@ -1,6 +1,65 @@
1
1
  {
2
- "name": "@purpur/purpur",
2
+ "name": "@purpur/library",
3
3
  "entries": [
4
+ {
5
+ "version": "9.0.1",
6
+ "tag": "@purpur/library_v9.0.1",
7
+ "date": "Thu, 12 Mar 2026 10:51:49 GMT",
8
+ "comments": {
9
+ "none": [
10
+ {
11
+ "comment": "Move internal dependencies from deps to devDeps"
12
+ }
13
+ ]
14
+ }
15
+ },
16
+ {
17
+ "version": "9.0.0",
18
+ "tag": "@purpur/library_v9.0.0",
19
+ "date": "Thu, 12 Mar 2026 09:14:57 GMT",
20
+ "comments": {
21
+ "none": [
22
+ {
23
+ "comment": "Add suffixes for static and animated for illustrative icons"
24
+ },
25
+ {
26
+ "comment": "Remove the depricated promotionCardScheme from theme"
27
+ },
28
+ {
29
+ "comment": "Rename icon ai-robot => robot"
30
+ },
31
+ {
32
+ "comment": "Remove button-separated for SearchField"
33
+ },
34
+ {
35
+ "comment": "Improve the build output and rename to @purpur/library."
36
+ },
37
+ {
38
+ "comment": "Update theming mechanism from inline styling to data attribute."
39
+ },
40
+ {
41
+ "comment": "Popover: Full width button on mobile. Fix bug where PopoverSteps where shown on a standalone popover when it was within a PopoverFlow"
42
+ },
43
+ {
44
+ "comment": "Updated Card padding to use spacing-400 on large breakpoint"
45
+ },
46
+ {
47
+ "comment": "Table: Fix UI glitches when single row selection (radio buttons) mode is used together with sticky first column"
48
+ },
49
+ {
50
+ "comment": "Table: Change \"Reorder columns\" button in the table settings drawer to text variant instead of tertiary"
51
+ },
52
+ {
53
+ "comment": "Table: Drag handles on primary variant have the same color as the rest of the column heading; The drag overlay on secondary variant now have the same background colors as the real column"
54
+ }
55
+ ],
56
+ "patch": [
57
+ {
58
+ "comment": "Table: Fix getComputedStyle SSR crash by adding typeof document guard in pxToRem"
59
+ }
60
+ ]
61
+ }
62
+ },
4
63
  {
5
64
  "version": "8.21.0",
6
65
  "tag": "@purpur/purpur_v8.21.0",
package/CHANGELOG.md CHANGED
@@ -1,6 +1,34 @@
1
- # Change Log - @purpur/purpur
1
+ # Change Log - @purpur/library
2
2
 
3
- This log was last generated on Thu, 26 Feb 2026 14:45:04 GMT and should not be manually modified.
3
+ This log was last generated on Thu, 12 Mar 2026 10:51:49 GMT and should not be manually modified.
4
+
5
+ ## 9.0.1
6
+ Thu, 12 Mar 2026 10:51:49 GMT
7
+
8
+ ### Updates
9
+
10
+ - Move internal dependencies from deps to devDeps
11
+
12
+ ## 9.0.0
13
+ Thu, 12 Mar 2026 09:14:57 GMT
14
+
15
+ ### Patches
16
+
17
+ - Table: Fix getComputedStyle SSR crash by adding typeof document guard in pxToRem
18
+
19
+ ### Updates
20
+
21
+ - Add suffixes for static and animated for illustrative icons
22
+ - Remove the depricated promotionCardScheme from theme
23
+ - Rename icon ai-robot => robot
24
+ - Remove button-separated for SearchField
25
+ - Improve the build output and rename to @purpur/library.
26
+ - Update theming mechanism from inline styling to data attribute.
27
+ - Popover: Full width button on mobile. Fix bug where PopoverSteps where shown on a standalone popover when it was within a PopoverFlow
28
+ - Updated Card padding to use spacing-400 on large breakpoint
29
+ - Table: Fix UI glitches when single row selection (radio buttons) mode is used together with sticky first column
30
+ - Table: Change "Reorder columns" button in the table settings drawer to text variant instead of tertiary
31
+ - Table: Drag handles on primary variant have the same color as the rest of the column heading; The drag overlay on secondary variant now have the same background colors as the real column
4
32
 
5
33
  ## 8.21.0
6
34
  Thu, 26 Feb 2026 14:45:04 GMT
package/dist/LICENSE.txt CHANGED
@@ -592,7 +592,7 @@ Private: false
592
592
  ---
593
593
 
594
594
  Name: @floating-ui/utils
595
- Version: 0.2.10
595
+ Version: 0.2.11
596
596
  License: MIT
597
597
  Private: false
598
598
  Description: Utilities for Floating UI
@@ -626,7 +626,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
626
626
  ---
627
627
 
628
628
  Name: @floating-ui/core
629
- Version: 1.7.4
629
+ Version: 1.7.5
630
630
  License: MIT
631
631
  Private: false
632
632
  Description: Positioning library for floating elements: tooltips, popovers, dropdowns, and more
@@ -660,7 +660,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
660
660
  ---
661
661
 
662
662
  Name: @floating-ui/dom
663
- Version: 1.7.5
663
+ Version: 1.7.6
664
664
  License: MIT
665
665
  Private: false
666
666
  Description: Floating UI for the web
@@ -694,7 +694,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
694
694
  ---
695
695
 
696
696
  Name: @floating-ui/react-dom
697
- Version: 2.1.7
697
+ Version: 2.1.8
698
698
  License: MIT
699
699
  Private: false
700
700
  Description: Floating UI for React DOM
@@ -887,7 +887,7 @@ SOFTWARE.
887
887
  ---
888
888
 
889
889
  Name: @floating-ui/react
890
- Version: 0.27.17
890
+ Version: 0.27.19
891
891
  License: MIT
892
892
  Private: false
893
893
  Description: Floating UI for React
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox-Dk3bZkZ3.js","sources":["../../../components/icon/dist/assets/minus-bold.es.js","../../../common/temp/node_modules/.pnpm/@radix-ui+react-checkbox@1.1.5_@types+react-dom@19.2.3_@types+react@19.2.10__@types+rea_7d7c8acb6bd594327a255e9f07e4d0ca/node_modules/@radix-ui/react-checkbox/dist/index.mjs","../../../components/checkbox/src/checkbox.tsx"],"sourcesContent":["const l = {\n name: \"minus-bold\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M3 12c0-1.105.711-2 1.588-2h14.824c.877 0 1.588.895 1.588 2s-.711 2-1.588 2H4.588C3.711 14 3 13.105 3 12Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"minus-bold\"],\n category: \"utility\"\n};\nexport {\n l as minusBold\n};\n//# sourceMappingURL=minus-bold.es.js.map\n","\"use client\";\n\n// packages/react/checkbox/src/checkbox.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar CHECKBOX_NAME = \"Checkbox\";\nvar [createCheckboxContext, createCheckboxScope] = createContextScope(CHECKBOX_NAME);\nvar [CheckboxProvider, useCheckboxContext] = createCheckboxContext(CHECKBOX_NAME);\nvar Checkbox = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeCheckbox,\n name,\n checked: checkedProp,\n defaultChecked,\n required,\n disabled,\n value = \"on\",\n onCheckedChange,\n form,\n ...checkboxProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n const [checked = false, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked,\n onChange: onCheckedChange\n });\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const form2 = button?.form;\n if (form2) {\n const reset = () => setChecked(initialCheckedStateRef.current);\n form2.addEventListener(\"reset\", reset);\n return () => form2.removeEventListener(\"reset\", reset);\n }\n }, [button, setChecked]);\n return /* @__PURE__ */ jsxs(CheckboxProvider, { scope: __scopeCheckbox, state: checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"checkbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...checkboxProps,\n ref: composedRefs,\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Enter\") event.preventDefault();\n }),\n onClick: composeEventHandlers(props.onClick, (event) => {\n setChecked((prevChecked) => isIndeterminate(prevChecked) ? true : !prevChecked);\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n BubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" },\n defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked\n }\n )\n ] });\n }\n);\nCheckbox.displayName = CHECKBOX_NAME;\nvar INDICATOR_NAME = \"CheckboxIndicator\";\nvar CheckboxIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeCheckbox, forceMount, ...indicatorProps } = props;\n const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isIndeterminate(context.state) || context.state === true, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.state),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...indicatorProps,\n ref: forwardedRef,\n style: { pointerEvents: \"none\", ...props.style }\n }\n ) });\n }\n);\nCheckboxIndicator.displayName = INDICATOR_NAME;\nvar BubbleInput = (props) => {\n const { control, checked, bubbles = true, defaultChecked, ...inputProps } = props;\n const ref = React.useRef(null);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"checked\");\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n input.indeterminate = isIndeterminate(checked);\n setChecked.call(input, isIndeterminate(checked) ? false : checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n const defaultCheckedRef = React.useRef(isIndeterminate(checked) ? false : checked);\n return /* @__PURE__ */ jsx(\n \"input\",\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: defaultChecked ?? defaultCheckedRef.current,\n ...inputProps,\n tabIndex: -1,\n ref,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n};\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nvar Root = Checkbox;\nvar Indicator = CheckboxIndicator;\nexport {\n Checkbox,\n CheckboxIndicator,\n Indicator,\n Root,\n createCheckboxScope\n};\n//# sourceMappingURL=index.mjs.map\n","import React, { forwardRef, type ReactNode } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { FieldErrorText } from \"@purpur/field-error-text\";\nimport { FieldHelperText } from \"@purpur/field-helper-text\";\nimport { Icon } from \"@purpur/icon\";\nimport { checkmarkBold } from \"@purpur/icon/assets/checkmark-bold\";\nimport { minusBold } from \"@purpur/icon/assets/minus-bold\";\nimport { Label } from \"@purpur/label\";\nimport { Paragraph } from \"@purpur/paragraph\";\nimport * as RadixCheckbox from \"@radix-ui/react-checkbox\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./checkbox.module.scss\";\nconst cx = c.bind(styles);\n\nexport const checkedState = [\"indeterminate\", true, false] as const;\n\nexport type CheckedState = (typeof checkedState)[number];\nexport type CheckboxProps = Omit<BaseProps<\"button\">, \"onChange\" | \"children\"> & {\n /**\n * To use with custom label (not recommended).\n * */\n [\"aria-labelledby\"]?: string;\n /**\n * To use when no label is given (not recommended).\n * */\n [\"aria-label\"]?: string;\n checked?: CheckedState;\n /**\n * The checked state of the checkbox when it is initially rendered. Use when you do not need to control its checked state.\n */\n defaultChecked?: boolean;\n /**\n * When `true`, prevents the user from interacting with the checkbox.\n */\n disabled?: boolean;\n /**\n * Use to render error state on the actual checkbox only. No error text below the checkbox will appear and the label will not\n * be shown as an error, unless errorText is set.\n * */\n error?: boolean;\n /**\n * Use to render error message below the checkbox. The checkbox renders with error appearance.\n * */\n errorText?: string;\n /**\n * ID of the checkbox.\n * */\n id: string;\n /**\n * The label of the checkbox. Label can't be a block element\n * */\n label?: ReactNode;\n /**\n * The name of the checkbox. Submitted with its owning form as part of a name/value pair.\n * */\n name?: string;\n /**\n * The helper text displayed below the checkbox.\n */\n helperText?: string;\n /**\n * Event handler called when the checked state of the checkbox changes.\n * */\n onChange?: (value: CheckedState) => void;\n /**\n * When `true`, indicates that the user must check the checkbox before the owning form can be submitted.\n * */\n required?: boolean;\n /**\n * The value given as data when submitted with a name.\n * */\n value?: string;\n};\n\nconst rootClassName = \"purpur-checkbox\";\n\nexport const Checkbox = forwardRef<HTMLButtonElement, CheckboxProps>(\n (\n {\n [\"data-testid\"]: dataTestId,\n checked,\n className,\n error = false,\n errorText,\n label,\n helperText,\n onChange,\n ...props\n },\n ref\n ) => {\n const isError = errorText && !checked;\n const isCheckboxError = error && !checked;\n\n return (\n <div className={cx([`${rootClassName}__wrapper`, className])}>\n <div className={cx([`${rootClassName}__container`, className])}>\n <RadixCheckbox.Root\n {...props}\n checked={checked}\n className={cx([\n rootClassName,\n {\n [`${rootClassName}--error`]: isError,\n [`${rootClassName}--error-checkbox`]: isCheckboxError,\n },\n ])}\n data-testid={dataTestId}\n onCheckedChange={onChange}\n ref={ref}\n >\n <span className={cx(`${rootClassName}__box`)}>\n <RadixCheckbox.Indicator className={cx(`${rootClassName}__indicator`)}>\n {checked === \"indeterminate\" ? (\n <Icon\n data-testid={dataTestId && `${dataTestId}-checked-icon`}\n size=\"xs\"\n svg={minusBold}\n />\n ) : (\n <Icon\n data-testid={dataTestId && `${dataTestId}-indeterminate-icon`}\n size=\"xs\"\n svg={checkmarkBold}\n />\n )}\n </RadixCheckbox.Indicator>\n </span>\n </RadixCheckbox.Root>\n <span className={cx(`${rootClassName}__label-container`)}>\n {label && (\n <Label\n htmlFor={props.id}\n data-testid={dataTestId && `${dataTestId}-label`}\n disabled={props.disabled}\n >\n <Paragraph variant=\"paragraph-100\" disabled={props.disabled}>\n {props.required && <span aria-hidden>{\"* \"}</span>}\n {label}\n </Paragraph>\n </Label>\n )}\n {helperText && (\n <FieldHelperText\n className={cx(`${rootClassName}__helper`)}\n data-testid={dataTestId && `${dataTestId}-helper-text`}\n disabled={props.disabled}\n id={`${props.id}-helper-text`}\n >\n {helperText}\n </FieldHelperText>\n )}\n </span>\n </div>\n {isError && (\n <FieldErrorText data-testid={dataTestId && `${dataTestId}-error-text`}>\n {errorText}\n </FieldErrorText>\n )}\n </div>\n );\n }\n);\n\nCheckbox.displayName = \"Checkbox\";\n"],"names":["l","CHECKBOX_NAME","createCheckboxContext","createContextScope","CheckboxProvider","useCheckboxContext","Checkbox","React","props","forwardedRef","__scopeCheckbox","name","checkedProp","defaultChecked","required","disabled","value","onCheckedChange","form","checkboxProps","button","setButton","composedRefs","useComposedRefs","node","hasConsumerStoppedPropagationRef","isFormControl","checked","setChecked","useControllableState","initialCheckedStateRef","form2","reset","jsxs","jsx","Primitive","isIndeterminate","getState","composeEventHandlers","event","prevChecked","BubbleInput","INDICATOR_NAME","CheckboxIndicator","forceMount","indicatorProps","context","Presence","control","bubbles","inputProps","ref","usePrevious","controlSize","useSize","input","inputProto","defaultCheckedRef","Root","Indicator","cx","c","styles","checkedState","rootClassName","forwardRef","dataTestId","className","error","errorText","label","helperText","onChange","isError","isCheckboxError","RadixCheckbox.Root","RadixCheckbox.Indicator","Icon","minusBold","checkmarkBold","Label","Paragraph","FieldHelperText","FieldErrorText"],"mappings":"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","x_google_ignoreList":[1]}
1
+ {"version":3,"file":"checkbox-Dk3bZkZ3.js","sources":["../../../components/icon/dist/assets/minus-bold.es.js","../../../common/temp/node_modules/.pnpm/@radix-ui+react-checkbox@1.1.5_@types+react-dom@19.2.3_@types+react@19.2.14__@types+rea_f616ca483e8f11c8b6f09ac94c17a7b2/node_modules/@radix-ui/react-checkbox/dist/index.mjs","../../../components/checkbox/src/checkbox.tsx"],"sourcesContent":["const l = {\n name: \"minus-bold\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M3 12c0-1.105.711-2 1.588-2h14.824c.877 0 1.588.895 1.588 2s-.711 2-1.588 2H4.588C3.711 14 3 13.105 3 12Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"minus-bold\"],\n category: \"utility\"\n};\nexport {\n l as minusBold\n};\n//# sourceMappingURL=minus-bold.es.js.map\n","\"use client\";\n\n// packages/react/checkbox/src/checkbox.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar CHECKBOX_NAME = \"Checkbox\";\nvar [createCheckboxContext, createCheckboxScope] = createContextScope(CHECKBOX_NAME);\nvar [CheckboxProvider, useCheckboxContext] = createCheckboxContext(CHECKBOX_NAME);\nvar Checkbox = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeCheckbox,\n name,\n checked: checkedProp,\n defaultChecked,\n required,\n disabled,\n value = \"on\",\n onCheckedChange,\n form,\n ...checkboxProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n const [checked = false, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked,\n onChange: onCheckedChange\n });\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const form2 = button?.form;\n if (form2) {\n const reset = () => setChecked(initialCheckedStateRef.current);\n form2.addEventListener(\"reset\", reset);\n return () => form2.removeEventListener(\"reset\", reset);\n }\n }, [button, setChecked]);\n return /* @__PURE__ */ jsxs(CheckboxProvider, { scope: __scopeCheckbox, state: checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"checkbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...checkboxProps,\n ref: composedRefs,\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Enter\") event.preventDefault();\n }),\n onClick: composeEventHandlers(props.onClick, (event) => {\n setChecked((prevChecked) => isIndeterminate(prevChecked) ? true : !prevChecked);\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n BubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" },\n defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked\n }\n )\n ] });\n }\n);\nCheckbox.displayName = CHECKBOX_NAME;\nvar INDICATOR_NAME = \"CheckboxIndicator\";\nvar CheckboxIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeCheckbox, forceMount, ...indicatorProps } = props;\n const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isIndeterminate(context.state) || context.state === true, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.state),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...indicatorProps,\n ref: forwardedRef,\n style: { pointerEvents: \"none\", ...props.style }\n }\n ) });\n }\n);\nCheckboxIndicator.displayName = INDICATOR_NAME;\nvar BubbleInput = (props) => {\n const { control, checked, bubbles = true, defaultChecked, ...inputProps } = props;\n const ref = React.useRef(null);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"checked\");\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n input.indeterminate = isIndeterminate(checked);\n setChecked.call(input, isIndeterminate(checked) ? false : checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n const defaultCheckedRef = React.useRef(isIndeterminate(checked) ? false : checked);\n return /* @__PURE__ */ jsx(\n \"input\",\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: defaultChecked ?? defaultCheckedRef.current,\n ...inputProps,\n tabIndex: -1,\n ref,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n};\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nvar Root = Checkbox;\nvar Indicator = CheckboxIndicator;\nexport {\n Checkbox,\n CheckboxIndicator,\n Indicator,\n Root,\n createCheckboxScope\n};\n//# sourceMappingURL=index.mjs.map\n","import React, { forwardRef, type ReactNode } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { FieldErrorText } from \"@purpur/field-error-text\";\nimport { FieldHelperText } from \"@purpur/field-helper-text\";\nimport { Icon } from \"@purpur/icon\";\nimport { checkmarkBold } from \"@purpur/icon/assets/checkmark-bold\";\nimport { minusBold } from \"@purpur/icon/assets/minus-bold\";\nimport { Label } from \"@purpur/label\";\nimport { Paragraph } from \"@purpur/paragraph\";\nimport * as RadixCheckbox from \"@radix-ui/react-checkbox\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./checkbox.module.scss\";\nconst cx = c.bind(styles);\n\nexport const checkedState = [\"indeterminate\", true, false] as const;\n\nexport type CheckedState = (typeof checkedState)[number];\nexport type CheckboxProps = Omit<BaseProps<\"button\">, \"onChange\" | \"children\"> & {\n /**\n * To use with custom label (not recommended).\n * */\n [\"aria-labelledby\"]?: string;\n /**\n * To use when no label is given (not recommended).\n * */\n [\"aria-label\"]?: string;\n checked?: CheckedState;\n /**\n * The checked state of the checkbox when it is initially rendered. Use when you do not need to control its checked state.\n */\n defaultChecked?: boolean;\n /**\n * When `true`, prevents the user from interacting with the checkbox.\n */\n disabled?: boolean;\n /**\n * Use to render error state on the actual checkbox only. No error text below the checkbox will appear and the label will not\n * be shown as an error, unless errorText is set.\n * */\n error?: boolean;\n /**\n * Use to render error message below the checkbox. The checkbox renders with error appearance.\n * */\n errorText?: string;\n /**\n * ID of the checkbox.\n * */\n id: string;\n /**\n * The label of the checkbox. Label can't be a block element\n * */\n label?: ReactNode;\n /**\n * The name of the checkbox. Submitted with its owning form as part of a name/value pair.\n * */\n name?: string;\n /**\n * The helper text displayed below the checkbox.\n */\n helperText?: string;\n /**\n * Event handler called when the checked state of the checkbox changes.\n * */\n onChange?: (value: CheckedState) => void;\n /**\n * When `true`, indicates that the user must check the checkbox before the owning form can be submitted.\n * */\n required?: boolean;\n /**\n * The value given as data when submitted with a name.\n * */\n value?: string;\n};\n\nconst rootClassName = \"purpur-checkbox\";\n\nexport const Checkbox = forwardRef<HTMLButtonElement, CheckboxProps>(\n (\n {\n [\"data-testid\"]: dataTestId,\n checked,\n className,\n error = false,\n errorText,\n label,\n helperText,\n onChange,\n ...props\n },\n ref\n ) => {\n const isError = errorText && !checked;\n const isCheckboxError = error && !checked;\n\n return (\n <div className={cx([`${rootClassName}__wrapper`, className])}>\n <div className={cx([`${rootClassName}__container`, className])}>\n <RadixCheckbox.Root\n {...props}\n checked={checked}\n className={cx([\n rootClassName,\n {\n [`${rootClassName}--error`]: isError,\n [`${rootClassName}--error-checkbox`]: isCheckboxError,\n },\n ])}\n data-testid={dataTestId}\n onCheckedChange={onChange}\n ref={ref}\n >\n <span className={cx(`${rootClassName}__box`)}>\n <RadixCheckbox.Indicator className={cx(`${rootClassName}__indicator`)}>\n {checked === \"indeterminate\" ? (\n <Icon\n data-testid={dataTestId && `${dataTestId}-checked-icon`}\n size=\"xs\"\n svg={minusBold}\n />\n ) : (\n <Icon\n data-testid={dataTestId && `${dataTestId}-indeterminate-icon`}\n size=\"xs\"\n svg={checkmarkBold}\n />\n )}\n </RadixCheckbox.Indicator>\n </span>\n </RadixCheckbox.Root>\n <span className={cx(`${rootClassName}__label-container`)}>\n {label && (\n <Label\n htmlFor={props.id}\n data-testid={dataTestId && `${dataTestId}-label`}\n disabled={props.disabled}\n >\n <Paragraph variant=\"paragraph-100\" disabled={props.disabled}>\n {props.required && <span aria-hidden>{\"* \"}</span>}\n {label}\n </Paragraph>\n </Label>\n )}\n {helperText && (\n <FieldHelperText\n className={cx(`${rootClassName}__helper`)}\n data-testid={dataTestId && `${dataTestId}-helper-text`}\n disabled={props.disabled}\n id={`${props.id}-helper-text`}\n >\n {helperText}\n </FieldHelperText>\n )}\n </span>\n </div>\n {isError && (\n <FieldErrorText data-testid={dataTestId && `${dataTestId}-error-text`}>\n {errorText}\n </FieldErrorText>\n )}\n </div>\n );\n }\n);\n\nCheckbox.displayName = \"Checkbox\";\n"],"names":["l","CHECKBOX_NAME","createCheckboxContext","createContextScope","CheckboxProvider","useCheckboxContext","Checkbox","React","props","forwardedRef","__scopeCheckbox","name","checkedProp","defaultChecked","required","disabled","value","onCheckedChange","form","checkboxProps","button","setButton","composedRefs","useComposedRefs","node","hasConsumerStoppedPropagationRef","isFormControl","checked","setChecked","useControllableState","initialCheckedStateRef","form2","reset","jsxs","jsx","Primitive","isIndeterminate","getState","composeEventHandlers","event","prevChecked","BubbleInput","INDICATOR_NAME","CheckboxIndicator","forceMount","indicatorProps","context","Presence","control","bubbles","inputProps","ref","usePrevious","controlSize","useSize","input","inputProto","defaultCheckedRef","Root","Indicator","cx","c","styles","checkedState","rootClassName","forwardRef","dataTestId","className","error","errorText","label","helperText","onChange","isError","isCheckboxError","RadixCheckbox.Root","RadixCheckbox.Indicator","Icon","minusBold","checkmarkBold","Label","Paragraph","FieldHelperText","FieldErrorText"],"mappings":"ozBAAMA,EAAI,CACR,KAAM,aACN,IAAK,sPACL,SAAU,CAAC,YAAY,EACvB,SAAU,SACZ,ECQA,IAAIC,EAAgB,WAChB,CAACC,CAA0C,EAAIC,EAAAA,mBAAmBF,CAAa,EAC/E,CAACG,EAAkBC,CAAkB,EAAIH,EAAsBD,CAAa,EAC5EK,EAAWC,EAAM,WACnB,CAACC,EAAOC,IAAiB,CACvB,KAAM,CACJ,gBAAAC,EACA,KAAAC,EACA,QAASC,EACT,eAAAC,EACA,SAAAC,EACA,SAAAC,EACA,MAAAC,EAAQ,KACR,gBAAAC,EACA,KAAAC,EACA,GAAGC,CACT,EAAQX,EACE,CAACY,EAAQC,CAAS,EAAId,EAAM,SAAS,IAAI,EACzCe,EAAeC,EAAAA,gBAAgBd,EAAee,GAASH,EAAUG,CAAI,CAAC,EACtEC,EAAmClB,EAAM,OAAO,EAAK,EACrDmB,EAAgBN,EAASF,GAAQ,CAAC,CAACE,EAAO,QAAQ,MAAM,EAAI,GAC5D,CAACO,EAAU,GAAOC,CAAU,EAAIC,EAAAA,qBAAqB,CACzD,KAAMjB,EACN,YAAaC,EACb,SAAUI,CAChB,CAAK,EACKa,EAAyBvB,EAAM,OAAOoB,CAAO,EACnDpB,OAAAA,EAAM,UAAU,IAAM,CACpB,MAAMwB,EAAQX,GAAQ,KACtB,GAAIW,EAAO,CACT,MAAMC,EAAQ,IAAMJ,EAAWE,EAAuB,OAAO,EAC7D,OAAAC,EAAM,iBAAiB,QAASC,CAAK,EAC9B,IAAMD,EAAM,oBAAoB,QAASC,CAAK,CACvD,CACF,EAAG,CAACZ,EAAQQ,CAAU,CAAC,EACAK,EAAAA,KAAK7B,EAAkB,CAAE,MAAOM,EAAiB,MAAOiB,EAAS,SAAAZ,EAAU,SAAU,CAC1FmB,EAAAA,IACdC,EAAAA,UAAU,OACV,CACE,KAAM,SACN,KAAM,WACN,eAAgBC,EAAgBT,CAAO,EAAI,QAAUA,EACrD,gBAAiBb,EACjB,aAAcuB,EAASV,CAAO,EAC9B,gBAAiBZ,EAAW,GAAK,OACjC,SAAAA,EACA,MAAAC,EACA,GAAGG,EACH,IAAKG,EACL,UAAWgB,EAAAA,qBAAqB9B,EAAM,UAAY+B,GAAU,CACtDA,EAAM,MAAQ,SAASA,EAAM,eAAc,CACjD,CAAC,EACD,QAASD,EAAAA,qBAAqB9B,EAAM,QAAU+B,GAAU,CACtDX,EAAYY,GAAgBJ,EAAgBI,CAAW,EAAI,GAAO,CAACA,CAAW,EAC1Ed,IACFD,EAAiC,QAAUc,EAAM,qBAAoB,EAChEd,EAAiC,SAASc,EAAM,gBAAe,EAExE,CAAC,CACX,CACA,EACMb,GAAiCQ,EAAAA,IAC/BO,EACA,CACE,QAASrB,EACT,QAAS,CAACK,EAAiC,QAC3C,KAAAd,EACA,MAAAK,EACA,QAAAW,EACA,SAAAb,EACA,SAAAC,EACA,KAAAG,EACA,MAAO,CAAE,UAAW,mBAAmB,EACvC,eAAgBkB,EAAgBvB,CAAc,EAAI,GAAQA,CACpE,CACA,CACA,EAAO,CACL,CACF,EACAP,EAAS,YAAcL,EACvB,IAAIyC,EAAiB,oBACjBC,EAAoBpC,EAAM,WAC5B,CAACC,EAAOC,IAAiB,CACvB,KAAM,CAAE,gBAAAC,EAAiB,WAAAkC,EAAY,GAAGC,CAAc,EAAKrC,EACrDsC,EAAUzC,EAAmBqC,EAAgBhC,CAAe,EAClE,OAAuBwB,EAAAA,IAAIa,EAAAA,SAAU,CAAE,QAASH,GAAcR,EAAgBU,EAAQ,KAAK,GAAKA,EAAQ,QAAU,GAAM,SAA0BZ,EAAAA,IAChJC,EAAAA,UAAU,KACV,CACE,aAAcE,EAASS,EAAQ,KAAK,EACpC,gBAAiBA,EAAQ,SAAW,GAAK,OACzC,GAAGD,EACH,IAAKpC,EACL,MAAO,CAAE,cAAe,OAAQ,GAAGD,EAAM,KAAK,CACtD,CACA,EAAO,CACL,CACF,EACAmC,EAAkB,YAAcD,EAChC,IAAID,EAAejC,GAAU,CAC3B,KAAM,CAAE,QAAAwC,EAAS,QAAArB,EAAS,QAAAsB,EAAU,GAAM,eAAApC,EAAgB,GAAGqC,CAAU,EAAK1C,EACtE2C,EAAM5C,EAAM,OAAO,IAAI,EACvBiC,EAAcY,EAAAA,YAAYzB,CAAO,EACjC0B,EAAcC,EAAAA,QAAQN,CAAO,EACnCzC,EAAM,UAAU,IAAM,CACpB,MAAMgD,EAAQJ,EAAI,QACZK,EAAa,OAAO,iBAAiB,UAErC5B,EADa,OAAO,yBAAyB4B,EAAY,SAAS,EAC1C,IAC9B,GAAIhB,IAAgBb,GAAWC,EAAY,CACzC,MAAMW,EAAQ,IAAI,MAAM,QAAS,CAAE,QAAAU,CAAO,CAAE,EAC5CM,EAAM,cAAgBnB,EAAgBT,CAAO,EAC7CC,EAAW,KAAK2B,EAAOnB,EAAgBT,CAAO,EAAI,GAAQA,CAAO,EACjE4B,EAAM,cAAchB,CAAK,CAC3B,CACF,EAAG,CAACC,EAAab,EAASsB,CAAO,CAAC,EAClC,MAAMQ,EAAoBlD,EAAM,OAAO6B,EAAgBT,CAAO,EAAI,GAAQA,CAAO,EACjF,OAAuBO,EAAAA,IACrB,QACA,CACE,KAAM,WACN,cAAe,GACf,eAAgBrB,GAAkB4C,EAAkB,QACpD,GAAGP,EACH,SAAU,GACV,IAAAC,EACA,MAAO,CACL,GAAG3C,EAAM,MACT,GAAG6C,EACH,SAAU,WACV,cAAe,OACf,QAAS,EACT,OAAQ,CAChB,CACA,CACA,CACA,EACA,SAASjB,EAAgBT,EAAS,CAChC,OAAOA,IAAY,eACrB,CACA,SAASU,EAASV,EAAS,CACzB,OAAOS,EAAgBT,CAAO,EAAI,gBAAkBA,EAAU,UAAY,WAC5E,CACA,IAAI+B,EAAOpD,EACPqD,GAAYhB,mhBC/IViB,EAAKC,EAAAA,EAAE,KAAKC,EAAM,EAEXC,GAAe,CAAC,gBAAiB,GAAM,EAAK,EA4DnDC,EAAgB,kBAET1D,EAAW2D,EAAAA,WACtB,CACE,CACE,CAAC,eAAgBC,EACjB,QAAAvC,EACA,UAAAwC,EACA,MAAAC,EAAQ,GACR,UAAAC,EAAA,MACAC,EACA,WAAAC,EACA,SAAAC,EACA,GAAGhE,CAAA,EAEL2C,IACG,CACH,MAAMsB,EAAUJ,GAAa,CAAC1C,EACxB+C,EAAkBN,GAAS,CAACzC,EAElC,OACEM,OAAC,MAAA,CAAI,UAAW2B,EAAG,CAAC,GAAGI,CAAa,YAAaG,CAAS,CAAC,EACzD,SAAA,CAAAlC,EAAAA,KAAC,MAAA,CAAI,UAAW2B,EAAG,CAAC,GAAGI,CAAa,cAAeG,CAAS,CAAC,EAC3D,SAAA,CAAAjC,EAAAA,IAACyC,EAAA,CACE,GAAGnE,EACJ,QAAAmB,EACA,UAAWiC,EAAG,CACZI,EACA,CACE,CAAC,GAAGA,CAAa,SAAS,EAAGS,EAC7B,CAAC,GAAGT,CAAa,kBAAkB,EAAGU,CAAA,CACxC,CACD,EACD,cAAaR,EACb,gBAAiBM,EACjB,IAAArB,EAEA,eAAC,OAAA,CAAK,UAAWS,EAAG,GAAGI,CAAa,OAAO,EACzC,SAAA9B,EAAAA,IAAC0C,GAAA,CAAwB,UAAWhB,EAAG,GAAGI,CAAa,aAAa,EACjE,aAAY,gBACX9B,EAAAA,IAAC2C,EAAAA,EAAA,CACC,cAAaX,GAAc,GAAGA,CAAU,gBACxC,KAAK,KACL,IAAKY,CAAA,CAAA,EAGP5C,EAAAA,IAAC2C,EAAAA,EAAA,CACC,cAAaX,GAAc,GAAGA,CAAU,sBACxC,KAAK,KACL,IAAKa,EAAAA,CAAA,CAAA,EAGX,CAAA,CACF,CAAA,CAAA,SAED,OAAA,CAAK,UAAWnB,EAAG,GAAGI,CAAa,mBAAmB,EACpD,SAAA,CAAAM,GACCpC,EAAAA,IAAC8C,EAAAA,MAAA,CACC,QAASxE,EAAM,GACf,cAAa0D,GAAc,GAAGA,CAAU,SACxC,SAAU1D,EAAM,SAEhB,gBAACyE,EAAAA,UAAA,CAAU,QAAQ,gBAAgB,SAAUzE,EAAM,SAChD,SAAA,CAAAA,EAAM,UAAY0B,EAAAA,IAAC,OAAA,CAAK,cAAW,GAAE,SAAA,KAAK,EAC1CoC,CAAA,CAAA,CACH,CAAA,CAAA,EAGHC,GACCrC,EAAAA,IAACgD,EAAAA,gBAAA,CACC,UAAWtB,EAAG,GAAGI,CAAa,UAAU,EACxC,cAAaE,GAAc,GAAGA,CAAU,eACxC,SAAU1D,EAAM,SAChB,GAAI,GAAGA,EAAM,EAAE,eAEd,SAAA+D,CAAA,CAAA,CACH,CAAA,CAEJ,CAAA,EACF,EACCE,SACEU,iBAAA,CAAe,cAAajB,GAAc,GAAGA,CAAU,cACrD,SAAAG,CAAA,CACH,CAAA,EAEJ,CAEJ,CACF,EAEA/D,EAAS,YAAc","x_google_ignoreList":[1]}
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox-LYzMiXu7.mjs","sources":["../../../components/icon/dist/assets/minus-bold.es.js","../../../common/temp/node_modules/.pnpm/@radix-ui+react-checkbox@1.1.5_@types+react-dom@19.2.3_@types+react@19.2.10__@types+rea_7d7c8acb6bd594327a255e9f07e4d0ca/node_modules/@radix-ui/react-checkbox/dist/index.mjs","../../../components/checkbox/src/checkbox.tsx"],"sourcesContent":["const l = {\n name: \"minus-bold\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M3 12c0-1.105.711-2 1.588-2h14.824c.877 0 1.588.895 1.588 2s-.711 2-1.588 2H4.588C3.711 14 3 13.105 3 12Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"minus-bold\"],\n category: \"utility\"\n};\nexport {\n l as minusBold\n};\n//# sourceMappingURL=minus-bold.es.js.map\n","\"use client\";\n\n// packages/react/checkbox/src/checkbox.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar CHECKBOX_NAME = \"Checkbox\";\nvar [createCheckboxContext, createCheckboxScope] = createContextScope(CHECKBOX_NAME);\nvar [CheckboxProvider, useCheckboxContext] = createCheckboxContext(CHECKBOX_NAME);\nvar Checkbox = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeCheckbox,\n name,\n checked: checkedProp,\n defaultChecked,\n required,\n disabled,\n value = \"on\",\n onCheckedChange,\n form,\n ...checkboxProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n const [checked = false, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked,\n onChange: onCheckedChange\n });\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const form2 = button?.form;\n if (form2) {\n const reset = () => setChecked(initialCheckedStateRef.current);\n form2.addEventListener(\"reset\", reset);\n return () => form2.removeEventListener(\"reset\", reset);\n }\n }, [button, setChecked]);\n return /* @__PURE__ */ jsxs(CheckboxProvider, { scope: __scopeCheckbox, state: checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"checkbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...checkboxProps,\n ref: composedRefs,\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Enter\") event.preventDefault();\n }),\n onClick: composeEventHandlers(props.onClick, (event) => {\n setChecked((prevChecked) => isIndeterminate(prevChecked) ? true : !prevChecked);\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n BubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" },\n defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked\n }\n )\n ] });\n }\n);\nCheckbox.displayName = CHECKBOX_NAME;\nvar INDICATOR_NAME = \"CheckboxIndicator\";\nvar CheckboxIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeCheckbox, forceMount, ...indicatorProps } = props;\n const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isIndeterminate(context.state) || context.state === true, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.state),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...indicatorProps,\n ref: forwardedRef,\n style: { pointerEvents: \"none\", ...props.style }\n }\n ) });\n }\n);\nCheckboxIndicator.displayName = INDICATOR_NAME;\nvar BubbleInput = (props) => {\n const { control, checked, bubbles = true, defaultChecked, ...inputProps } = props;\n const ref = React.useRef(null);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"checked\");\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n input.indeterminate = isIndeterminate(checked);\n setChecked.call(input, isIndeterminate(checked) ? false : checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n const defaultCheckedRef = React.useRef(isIndeterminate(checked) ? false : checked);\n return /* @__PURE__ */ jsx(\n \"input\",\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: defaultChecked ?? defaultCheckedRef.current,\n ...inputProps,\n tabIndex: -1,\n ref,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n};\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nvar Root = Checkbox;\nvar Indicator = CheckboxIndicator;\nexport {\n Checkbox,\n CheckboxIndicator,\n Indicator,\n Root,\n createCheckboxScope\n};\n//# sourceMappingURL=index.mjs.map\n","import React, { forwardRef, type ReactNode } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { FieldErrorText } from \"@purpur/field-error-text\";\nimport { FieldHelperText } from \"@purpur/field-helper-text\";\nimport { Icon } from \"@purpur/icon\";\nimport { checkmarkBold } from \"@purpur/icon/assets/checkmark-bold\";\nimport { minusBold } from \"@purpur/icon/assets/minus-bold\";\nimport { Label } from \"@purpur/label\";\nimport { Paragraph } from \"@purpur/paragraph\";\nimport * as RadixCheckbox from \"@radix-ui/react-checkbox\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./checkbox.module.scss\";\nconst cx = c.bind(styles);\n\nexport const checkedState = [\"indeterminate\", true, false] as const;\n\nexport type CheckedState = (typeof checkedState)[number];\nexport type CheckboxProps = Omit<BaseProps<\"button\">, \"onChange\" | \"children\"> & {\n /**\n * To use with custom label (not recommended).\n * */\n [\"aria-labelledby\"]?: string;\n /**\n * To use when no label is given (not recommended).\n * */\n [\"aria-label\"]?: string;\n checked?: CheckedState;\n /**\n * The checked state of the checkbox when it is initially rendered. Use when you do not need to control its checked state.\n */\n defaultChecked?: boolean;\n /**\n * When `true`, prevents the user from interacting with the checkbox.\n */\n disabled?: boolean;\n /**\n * Use to render error state on the actual checkbox only. No error text below the checkbox will appear and the label will not\n * be shown as an error, unless errorText is set.\n * */\n error?: boolean;\n /**\n * Use to render error message below the checkbox. The checkbox renders with error appearance.\n * */\n errorText?: string;\n /**\n * ID of the checkbox.\n * */\n id: string;\n /**\n * The label of the checkbox. Label can't be a block element\n * */\n label?: ReactNode;\n /**\n * The name of the checkbox. Submitted with its owning form as part of a name/value pair.\n * */\n name?: string;\n /**\n * The helper text displayed below the checkbox.\n */\n helperText?: string;\n /**\n * Event handler called when the checked state of the checkbox changes.\n * */\n onChange?: (value: CheckedState) => void;\n /**\n * When `true`, indicates that the user must check the checkbox before the owning form can be submitted.\n * */\n required?: boolean;\n /**\n * The value given as data when submitted with a name.\n * */\n value?: string;\n};\n\nconst rootClassName = \"purpur-checkbox\";\n\nexport const Checkbox = forwardRef<HTMLButtonElement, CheckboxProps>(\n (\n {\n [\"data-testid\"]: dataTestId,\n checked,\n className,\n error = false,\n errorText,\n label,\n helperText,\n onChange,\n ...props\n },\n ref\n ) => {\n const isError = errorText && !checked;\n const isCheckboxError = error && !checked;\n\n return (\n <div className={cx([`${rootClassName}__wrapper`, className])}>\n <div className={cx([`${rootClassName}__container`, className])}>\n <RadixCheckbox.Root\n {...props}\n checked={checked}\n className={cx([\n rootClassName,\n {\n [`${rootClassName}--error`]: isError,\n [`${rootClassName}--error-checkbox`]: isCheckboxError,\n },\n ])}\n data-testid={dataTestId}\n onCheckedChange={onChange}\n ref={ref}\n >\n <span className={cx(`${rootClassName}__box`)}>\n <RadixCheckbox.Indicator className={cx(`${rootClassName}__indicator`)}>\n {checked === \"indeterminate\" ? (\n <Icon\n data-testid={dataTestId && `${dataTestId}-checked-icon`}\n size=\"xs\"\n svg={minusBold}\n />\n ) : (\n <Icon\n data-testid={dataTestId && `${dataTestId}-indeterminate-icon`}\n size=\"xs\"\n svg={checkmarkBold}\n />\n )}\n </RadixCheckbox.Indicator>\n </span>\n </RadixCheckbox.Root>\n <span className={cx(`${rootClassName}__label-container`)}>\n {label && (\n <Label\n htmlFor={props.id}\n data-testid={dataTestId && `${dataTestId}-label`}\n disabled={props.disabled}\n >\n <Paragraph variant=\"paragraph-100\" disabled={props.disabled}>\n {props.required && <span aria-hidden>{\"* \"}</span>}\n {label}\n </Paragraph>\n </Label>\n )}\n {helperText && (\n <FieldHelperText\n className={cx(`${rootClassName}__helper`)}\n data-testid={dataTestId && `${dataTestId}-helper-text`}\n disabled={props.disabled}\n id={`${props.id}-helper-text`}\n >\n {helperText}\n </FieldHelperText>\n )}\n </span>\n </div>\n {isError && (\n <FieldErrorText data-testid={dataTestId && `${dataTestId}-error-text`}>\n {errorText}\n </FieldErrorText>\n )}\n </div>\n );\n }\n);\n\nCheckbox.displayName = \"Checkbox\";\n"],"names":["l","CHECKBOX_NAME","createCheckboxContext","createContextScope","CheckboxProvider","useCheckboxContext","Checkbox","React","props","forwardedRef","__scopeCheckbox","name","checkedProp","defaultChecked","required","disabled","value","onCheckedChange","form","checkboxProps","button","setButton","composedRefs","useComposedRefs","node","hasConsumerStoppedPropagationRef","isFormControl","checked","setChecked","useControllableState","initialCheckedStateRef","form2","reset","jsxs","jsx","Primitive","isIndeterminate","getState","composeEventHandlers","event","prevChecked","BubbleInput","INDICATOR_NAME","CheckboxIndicator","forceMount","indicatorProps","context","Presence","control","bubbles","inputProps","ref","usePrevious","controlSize","useSize","input","inputProto","defaultCheckedRef","Root","Indicator","cx","c","styles","checkedState","rootClassName","forwardRef","dataTestId","className","error","errorText","label","helperText","onChange","isError","isCheckboxError","RadixCheckbox.Root","RadixCheckbox.Indicator","Icon","minusBold","checkmarkBold","Label","Paragraph","FieldHelperText","FieldErrorText"],"mappings":"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","x_google_ignoreList":[1]}
1
+ {"version":3,"file":"checkbox-LYzMiXu7.mjs","sources":["../../../components/icon/dist/assets/minus-bold.es.js","../../../common/temp/node_modules/.pnpm/@radix-ui+react-checkbox@1.1.5_@types+react-dom@19.2.3_@types+react@19.2.14__@types+rea_f616ca483e8f11c8b6f09ac94c17a7b2/node_modules/@radix-ui/react-checkbox/dist/index.mjs","../../../components/checkbox/src/checkbox.tsx"],"sourcesContent":["const l = {\n name: \"minus-bold\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M3 12c0-1.105.711-2 1.588-2h14.824c.877 0 1.588.895 1.588 2s-.711 2-1.588 2H4.588C3.711 14 3 13.105 3 12Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"minus-bold\"],\n category: \"utility\"\n};\nexport {\n l as minusBold\n};\n//# sourceMappingURL=minus-bold.es.js.map\n","\"use client\";\n\n// packages/react/checkbox/src/checkbox.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar CHECKBOX_NAME = \"Checkbox\";\nvar [createCheckboxContext, createCheckboxScope] = createContextScope(CHECKBOX_NAME);\nvar [CheckboxProvider, useCheckboxContext] = createCheckboxContext(CHECKBOX_NAME);\nvar Checkbox = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeCheckbox,\n name,\n checked: checkedProp,\n defaultChecked,\n required,\n disabled,\n value = \"on\",\n onCheckedChange,\n form,\n ...checkboxProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n const [checked = false, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked,\n onChange: onCheckedChange\n });\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const form2 = button?.form;\n if (form2) {\n const reset = () => setChecked(initialCheckedStateRef.current);\n form2.addEventListener(\"reset\", reset);\n return () => form2.removeEventListener(\"reset\", reset);\n }\n }, [button, setChecked]);\n return /* @__PURE__ */ jsxs(CheckboxProvider, { scope: __scopeCheckbox, state: checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"checkbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...checkboxProps,\n ref: composedRefs,\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Enter\") event.preventDefault();\n }),\n onClick: composeEventHandlers(props.onClick, (event) => {\n setChecked((prevChecked) => isIndeterminate(prevChecked) ? true : !prevChecked);\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n BubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" },\n defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked\n }\n )\n ] });\n }\n);\nCheckbox.displayName = CHECKBOX_NAME;\nvar INDICATOR_NAME = \"CheckboxIndicator\";\nvar CheckboxIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeCheckbox, forceMount, ...indicatorProps } = props;\n const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isIndeterminate(context.state) || context.state === true, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.state),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...indicatorProps,\n ref: forwardedRef,\n style: { pointerEvents: \"none\", ...props.style }\n }\n ) });\n }\n);\nCheckboxIndicator.displayName = INDICATOR_NAME;\nvar BubbleInput = (props) => {\n const { control, checked, bubbles = true, defaultChecked, ...inputProps } = props;\n const ref = React.useRef(null);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"checked\");\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n input.indeterminate = isIndeterminate(checked);\n setChecked.call(input, isIndeterminate(checked) ? false : checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n const defaultCheckedRef = React.useRef(isIndeterminate(checked) ? false : checked);\n return /* @__PURE__ */ jsx(\n \"input\",\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: defaultChecked ?? defaultCheckedRef.current,\n ...inputProps,\n tabIndex: -1,\n ref,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n};\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nvar Root = Checkbox;\nvar Indicator = CheckboxIndicator;\nexport {\n Checkbox,\n CheckboxIndicator,\n Indicator,\n Root,\n createCheckboxScope\n};\n//# sourceMappingURL=index.mjs.map\n","import React, { forwardRef, type ReactNode } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { FieldErrorText } from \"@purpur/field-error-text\";\nimport { FieldHelperText } from \"@purpur/field-helper-text\";\nimport { Icon } from \"@purpur/icon\";\nimport { checkmarkBold } from \"@purpur/icon/assets/checkmark-bold\";\nimport { minusBold } from \"@purpur/icon/assets/minus-bold\";\nimport { Label } from \"@purpur/label\";\nimport { Paragraph } from \"@purpur/paragraph\";\nimport * as RadixCheckbox from \"@radix-ui/react-checkbox\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./checkbox.module.scss\";\nconst cx = c.bind(styles);\n\nexport const checkedState = [\"indeterminate\", true, false] as const;\n\nexport type CheckedState = (typeof checkedState)[number];\nexport type CheckboxProps = Omit<BaseProps<\"button\">, \"onChange\" | \"children\"> & {\n /**\n * To use with custom label (not recommended).\n * */\n [\"aria-labelledby\"]?: string;\n /**\n * To use when no label is given (not recommended).\n * */\n [\"aria-label\"]?: string;\n checked?: CheckedState;\n /**\n * The checked state of the checkbox when it is initially rendered. Use when you do not need to control its checked state.\n */\n defaultChecked?: boolean;\n /**\n * When `true`, prevents the user from interacting with the checkbox.\n */\n disabled?: boolean;\n /**\n * Use to render error state on the actual checkbox only. No error text below the checkbox will appear and the label will not\n * be shown as an error, unless errorText is set.\n * */\n error?: boolean;\n /**\n * Use to render error message below the checkbox. The checkbox renders with error appearance.\n * */\n errorText?: string;\n /**\n * ID of the checkbox.\n * */\n id: string;\n /**\n * The label of the checkbox. Label can't be a block element\n * */\n label?: ReactNode;\n /**\n * The name of the checkbox. Submitted with its owning form as part of a name/value pair.\n * */\n name?: string;\n /**\n * The helper text displayed below the checkbox.\n */\n helperText?: string;\n /**\n * Event handler called when the checked state of the checkbox changes.\n * */\n onChange?: (value: CheckedState) => void;\n /**\n * When `true`, indicates that the user must check the checkbox before the owning form can be submitted.\n * */\n required?: boolean;\n /**\n * The value given as data when submitted with a name.\n * */\n value?: string;\n};\n\nconst rootClassName = \"purpur-checkbox\";\n\nexport const Checkbox = forwardRef<HTMLButtonElement, CheckboxProps>(\n (\n {\n [\"data-testid\"]: dataTestId,\n checked,\n className,\n error = false,\n errorText,\n label,\n helperText,\n onChange,\n ...props\n },\n ref\n ) => {\n const isError = errorText && !checked;\n const isCheckboxError = error && !checked;\n\n return (\n <div className={cx([`${rootClassName}__wrapper`, className])}>\n <div className={cx([`${rootClassName}__container`, className])}>\n <RadixCheckbox.Root\n {...props}\n checked={checked}\n className={cx([\n rootClassName,\n {\n [`${rootClassName}--error`]: isError,\n [`${rootClassName}--error-checkbox`]: isCheckboxError,\n },\n ])}\n data-testid={dataTestId}\n onCheckedChange={onChange}\n ref={ref}\n >\n <span className={cx(`${rootClassName}__box`)}>\n <RadixCheckbox.Indicator className={cx(`${rootClassName}__indicator`)}>\n {checked === \"indeterminate\" ? (\n <Icon\n data-testid={dataTestId && `${dataTestId}-checked-icon`}\n size=\"xs\"\n svg={minusBold}\n />\n ) : (\n <Icon\n data-testid={dataTestId && `${dataTestId}-indeterminate-icon`}\n size=\"xs\"\n svg={checkmarkBold}\n />\n )}\n </RadixCheckbox.Indicator>\n </span>\n </RadixCheckbox.Root>\n <span className={cx(`${rootClassName}__label-container`)}>\n {label && (\n <Label\n htmlFor={props.id}\n data-testid={dataTestId && `${dataTestId}-label`}\n disabled={props.disabled}\n >\n <Paragraph variant=\"paragraph-100\" disabled={props.disabled}>\n {props.required && <span aria-hidden>{\"* \"}</span>}\n {label}\n </Paragraph>\n </Label>\n )}\n {helperText && (\n <FieldHelperText\n className={cx(`${rootClassName}__helper`)}\n data-testid={dataTestId && `${dataTestId}-helper-text`}\n disabled={props.disabled}\n id={`${props.id}-helper-text`}\n >\n {helperText}\n </FieldHelperText>\n )}\n </span>\n </div>\n {isError && (\n <FieldErrorText data-testid={dataTestId && `${dataTestId}-error-text`}>\n {errorText}\n </FieldErrorText>\n )}\n </div>\n );\n }\n);\n\nCheckbox.displayName = \"Checkbox\";\n"],"names":["l","CHECKBOX_NAME","createCheckboxContext","createContextScope","CheckboxProvider","useCheckboxContext","Checkbox","React","props","forwardedRef","__scopeCheckbox","name","checkedProp","defaultChecked","required","disabled","value","onCheckedChange","form","checkboxProps","button","setButton","composedRefs","useComposedRefs","node","hasConsumerStoppedPropagationRef","isFormControl","checked","setChecked","useControllableState","initialCheckedStateRef","form2","reset","jsxs","jsx","Primitive","isIndeterminate","getState","composeEventHandlers","event","prevChecked","BubbleInput","INDICATOR_NAME","CheckboxIndicator","forceMount","indicatorProps","context","Presence","control","bubbles","inputProps","ref","usePrevious","controlSize","useSize","input","inputProto","defaultCheckedRef","Root","Indicator","cx","c","styles","checkedState","rootClassName","forwardRef","dataTestId","className","error","errorText","label","helperText","onChange","isError","isCheckboxError","RadixCheckbox.Root","RadixCheckbox.Indicator","Icon","minusBold","checkmarkBold","Label","Paragraph","FieldHelperText","FieldErrorText"],"mappings":"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","x_google_ignoreList":[1]}
@@ -1 +1 @@
1
- {"version":3,"file":"chip-group-CJVvfl_J.mjs","sources":["../../../common/temp/node_modules/.pnpm/@radix-ui+react-toggle@1.1.10_@types+react-dom@19.2.3_@types+react@19.2.10__@types+reac_ac954931be38b8943a4772f30be6b8cd/node_modules/@radix-ui/react-toggle/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-toggle-group@1.1.11_@types+react-dom@19.2.3_@types+react@19.2.10__@type_1c3e06769648befb283f52b0de4ae8b0/node_modules/@radix-ui/react-toggle-group/dist/index.mjs","../../../components/chip-group/src/chip-group-item.tsx","../../../components/chip-group/src/chip-group.tsx"],"sourcesContent":["\"use client\";\n\n// src/toggle.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Toggle\";\nvar Toggle = React.forwardRef((props, forwardedRef) => {\n const { pressed: pressedProp, defaultPressed, onPressedChange, ...buttonProps } = props;\n const [pressed, setPressed] = useControllableState({\n prop: pressedProp,\n onChange: onPressedChange,\n defaultProp: defaultPressed ?? false,\n caller: NAME\n });\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n \"aria-pressed\": pressed,\n \"data-state\": pressed ? \"on\" : \"off\",\n \"data-disabled\": props.disabled ? \"\" : void 0,\n ...buttonProps,\n ref: forwardedRef,\n onClick: composeEventHandlers(props.onClick, () => {\n if (!props.disabled) {\n setPressed(!pressed);\n }\n })\n }\n );\n});\nToggle.displayName = NAME;\nvar Root = Toggle;\nexport {\n Root,\n Toggle\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/toggle-group.tsx\nimport React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { Toggle } from \"@radix-ui/react-toggle\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TOGGLE_GROUP_NAME = \"ToggleGroup\";\nvar [createToggleGroupContext, createToggleGroupScope] = createContextScope(TOGGLE_GROUP_NAME, [\n createRovingFocusGroupScope\n]);\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar ToggleGroup = React.forwardRef((props, forwardedRef) => {\n const { type, ...toggleGroupProps } = props;\n if (type === \"single\") {\n const singleProps = toggleGroupProps;\n return /* @__PURE__ */ jsx(ToggleGroupImplSingle, { ...singleProps, ref: forwardedRef });\n }\n if (type === \"multiple\") {\n const multipleProps = toggleGroupProps;\n return /* @__PURE__ */ jsx(ToggleGroupImplMultiple, { ...multipleProps, ref: forwardedRef });\n }\n throw new Error(`Missing prop \\`type\\` expected on \\`${TOGGLE_GROUP_NAME}\\``);\n});\nToggleGroup.displayName = TOGGLE_GROUP_NAME;\nvar [ToggleGroupValueProvider, useToggleGroupValueContext] = createToggleGroupContext(TOGGLE_GROUP_NAME);\nvar ToggleGroupImplSingle = React.forwardRef((props, forwardedRef) => {\n const {\n value: valueProp,\n defaultValue,\n onValueChange = () => {\n },\n ...toggleGroupSingleProps\n } = props;\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue ?? \"\",\n onChange: onValueChange,\n caller: TOGGLE_GROUP_NAME\n });\n return /* @__PURE__ */ jsx(\n ToggleGroupValueProvider,\n {\n scope: props.__scopeToggleGroup,\n type: \"single\",\n value: React.useMemo(() => value ? [value] : [], [value]),\n onItemActivate: setValue,\n onItemDeactivate: React.useCallback(() => setValue(\"\"), [setValue]),\n children: /* @__PURE__ */ jsx(ToggleGroupImpl, { ...toggleGroupSingleProps, ref: forwardedRef })\n }\n );\n});\nvar ToggleGroupImplMultiple = React.forwardRef((props, forwardedRef) => {\n const {\n value: valueProp,\n defaultValue,\n onValueChange = () => {\n },\n ...toggleGroupMultipleProps\n } = props;\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue ?? [],\n onChange: onValueChange,\n caller: TOGGLE_GROUP_NAME\n });\n const handleButtonActivate = React.useCallback(\n (itemValue) => setValue((prevValue = []) => [...prevValue, itemValue]),\n [setValue]\n );\n const handleButtonDeactivate = React.useCallback(\n (itemValue) => setValue((prevValue = []) => prevValue.filter((value2) => value2 !== itemValue)),\n [setValue]\n );\n return /* @__PURE__ */ jsx(\n ToggleGroupValueProvider,\n {\n scope: props.__scopeToggleGroup,\n type: \"multiple\",\n value,\n onItemActivate: handleButtonActivate,\n onItemDeactivate: handleButtonDeactivate,\n children: /* @__PURE__ */ jsx(ToggleGroupImpl, { ...toggleGroupMultipleProps, ref: forwardedRef })\n }\n );\n});\nToggleGroup.displayName = TOGGLE_GROUP_NAME;\nvar [ToggleGroupContext, useToggleGroupContext] = createToggleGroupContext(TOGGLE_GROUP_NAME);\nvar ToggleGroupImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeToggleGroup,\n disabled = false,\n rovingFocus = true,\n orientation,\n dir,\n loop = true,\n ...toggleGroupProps\n } = props;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeToggleGroup);\n const direction = useDirection(dir);\n const commonProps = { role: \"group\", dir: direction, ...toggleGroupProps };\n return /* @__PURE__ */ jsx(ToggleGroupContext, { scope: __scopeToggleGroup, rovingFocus, disabled, children: rovingFocus ? /* @__PURE__ */ jsx(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation,\n dir: direction,\n loop,\n children: /* @__PURE__ */ jsx(Primitive.div, { ...commonProps, ref: forwardedRef })\n }\n ) : /* @__PURE__ */ jsx(Primitive.div, { ...commonProps, ref: forwardedRef }) });\n }\n);\nvar ITEM_NAME = \"ToggleGroupItem\";\nvar ToggleGroupItem = React.forwardRef(\n (props, forwardedRef) => {\n const valueContext = useToggleGroupValueContext(ITEM_NAME, props.__scopeToggleGroup);\n const context = useToggleGroupContext(ITEM_NAME, props.__scopeToggleGroup);\n const rovingFocusGroupScope = useRovingFocusGroupScope(props.__scopeToggleGroup);\n const pressed = valueContext.value.includes(props.value);\n const disabled = context.disabled || props.disabled;\n const commonProps = { ...props, pressed, disabled };\n const ref = React.useRef(null);\n return context.rovingFocus ? /* @__PURE__ */ jsx(\n RovingFocusGroup.Item,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !disabled,\n active: pressed,\n ref,\n children: /* @__PURE__ */ jsx(ToggleGroupItemImpl, { ...commonProps, ref: forwardedRef })\n }\n ) : /* @__PURE__ */ jsx(ToggleGroupItemImpl, { ...commonProps, ref: forwardedRef });\n }\n);\nToggleGroupItem.displayName = ITEM_NAME;\nvar ToggleGroupItemImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeToggleGroup, value, ...itemProps } = props;\n const valueContext = useToggleGroupValueContext(ITEM_NAME, __scopeToggleGroup);\n const singleProps = { role: \"radio\", \"aria-checked\": props.pressed, \"aria-pressed\": void 0 };\n const typeProps = valueContext.type === \"single\" ? singleProps : void 0;\n return /* @__PURE__ */ jsx(\n Toggle,\n {\n ...typeProps,\n ...itemProps,\n ref: forwardedRef,\n onPressedChange: (pressed) => {\n if (pressed) {\n valueContext.onItemActivate(value);\n } else {\n valueContext.onItemDeactivate(value);\n }\n }\n }\n );\n }\n);\nvar Root2 = ToggleGroup;\nvar Item2 = ToggleGroupItem;\nexport {\n Item2 as Item,\n Root2 as Root,\n ToggleGroup,\n ToggleGroupItem,\n createToggleGroupScope\n};\n//# sourceMappingURL=index.mjs.map\n","import React, { isValidElement, type MouseEvent, type ReactElement, type ReactNode } from \"react\";\nimport { IconCheckmark } from \"@purpur/icon/checkmark\";\nimport * as RadixToggleGroup from \"@radix-ui/react-toggle-group\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./chip-group-item.module.scss\";\n\ntype StylingProps = Pick<React.HTMLAttributes<HTMLElement>, \"style\" | \"className\">;\n\ntype ChipGroupItemProps = StylingProps & {\n [\"aria-label\"]?: string;\n [\"data-testid\"]?: string;\n children: ReactNode;\n /**\n * When `true`, prevents the user from interacting with the item.\n * */\n disabled?: boolean;\n /**\n * This prop will be passed automatically from the parent component (ChipGroup) when `type` is `\"filter\"`.\n * */\n showCheckmark?: boolean;\n /**\n * A unique value for the item.\n * */\n value: string;\n /**\n * This prop will only be used when `type` is `\"choice\"`.\n * When `true`, we recommend using `aria-label` to announce to screen readers that the option is unavailable.\n * */\n unavailable?: boolean;\n};\n\nconst cx = c.bind(styles);\nexport const rootClassName = \"purpur-chip-group-item\";\n\nexport const ChipGroupItem = ({\n [\"aria-label\"]: allyLabel,\n children,\n className,\n [\"data-testid\"]: dataTestId,\n disabled = false,\n showCheckmark = false,\n unavailable = false,\n value,\n ...props\n}: ChipGroupItemProps) => {\n const classes = cx([\n rootClassName,\n {\n [`${rootClassName}--disabled`]: disabled,\n [`${rootClassName}--unavailable`]: unavailable,\n },\n className,\n ]);\n\n const handleClick = (e: MouseEvent<HTMLButtonElement>) => {\n if (disabled) {\n e.preventDefault();\n }\n };\n\n return (\n <RadixToggleGroup.Item\n aria-label={allyLabel}\n data-testid={dataTestId}\n className={`${classes} ${rootClassName}`}\n value={value}\n onClick={handleClick}\n aria-disabled={disabled}\n {...props}\n >\n {children}\n {showCheckmark && (\n <IconCheckmark\n size=\"sm\"\n className={cx(`${rootClassName}__checkmark-icon`)}\n data-testid=\"checkmark icon\"\n />\n )}\n {unavailable && (\n <span\n className={cx(`${rootClassName}__line-wrapper`)}\n data-testid=\"unavailable line wrapper\"\n />\n )}\n </RadixToggleGroup.Item>\n );\n};\n\nexport const isChipGroupItem = (child?: ReactNode): child is ReactElement<ChipGroupItemProps> =>\n isValidElement<ChipGroupItemProps>(child) && child?.type === ChipGroupItem;\n","import React, { Children, cloneElement, type ReactNode, useEffect, useId } from \"react\";\nimport { Heading, type HeadingTagType } from \"@purpur/heading\";\nimport * as RadixToggleGroup from \"@radix-ui/react-toggle-group\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./chip-group.module.scss\";\nimport { ChipGroupItem, isChipGroupItem } from \"./chip-group-item\";\n\ntype StylingProps = Pick<React.HTMLAttributes<HTMLElement>, \"style\" | \"className\">;\n\ntype ChipGroupProps = StylingProps & {\n [\"data-testid\"]?: string;\n /**\n * Will only render given ChipGroupItems.\n * */\n children: ReactNode;\n /**\n * Makes the chips span the full container width if set to `true`.\n * */\n fullWidth?: boolean;\n /**\n * Renders above the chip group as a heading.\n * */\n title?: ReactNode;\n /**\n * Allows to customise title.\n */\n titleProps?: TitlePropsType;\n /**\n * Optional name for form submission\n */\n name?: string;\n};\n\nexport type TitlePropsType = StylingProps & {\n /**\n * Use custom id for connecting title and chip group.\n */\n id?: string;\n /**\n * Changes heading level.\n * @default h2\n */\n tag?: HeadingTagType;\n};\n\nexport type ChipGroupChoiceProps = {\n /**\n * Event handler called when the pressed state of an item changes.\n * */\n onValueChange: (value: string) => void;\n /**\n * Determines whether a single (`\"choice\"`) or multiple (`\"filter\"`) items can be pressed at a time.\n * */\n type: \"choice\";\n /**\n * The value of the pressed item(s).\n * */\n value: string;\n};\n\nexport type ChipGroupFilterProps = {\n /**\n * Event handler called when the pressed state of an item changes.\n * */\n onValueChange: (value: string[]) => void;\n /**\n * Determines whether a single (`\"choice\"`) or multiple (`\"filter\"`) items can be pressed at a time.\n * */\n type: \"filter\";\n /**\n * The value of the pressed item(s).\n * */\n value: string[];\n};\n\nconst isChoiceProps = (\n props: ChipGroupChoiceProps | ChipGroupFilterProps\n): props is ChipGroupChoiceProps => props.type === \"choice\";\n\ntype ChipGroupCmp<P> = React.FunctionComponent<P> & {\n Item: typeof ChipGroupItem;\n};\n\nconst MIN_CHOICE_OPTIONS = 2;\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-chip-group\";\n\nexport const ChipGroup: ChipGroupCmp<\n ChipGroupProps & (ChipGroupChoiceProps | ChipGroupFilterProps)\n> = ({ children, className, fullWidth = false, title, titleProps, name, ...props }) => {\n const classes = cx([\n rootClassName,\n {\n [`${rootClassName}--full-width`]: fullWidth,\n },\n className,\n ]);\n\n const id = useId();\n\n const chipGroupItemChildren = Children.toArray(children).filter(isChipGroupItem);\n\n const clonedChildren = Children.map(chipGroupItemChildren, (child) =>\n cloneElement(child, {\n showCheckmark: props.type === \"filter\" && props.value.includes(child.props.value),\n unavailable: props.type === \"choice\" && child.props.unavailable,\n })\n );\n\n const handleValueChange = (value: string & string[]) => {\n if (props.type === \"filter\" || value !== \"\") {\n props.onValueChange(value);\n }\n };\n\n useEffect(() => {\n if (props.type === \"choice\" && clonedChildren.length < MIN_CHOICE_OPTIONS) {\n console.warn(\n `Minimum number of chips should be ${MIN_CHOICE_OPTIONS} when using the \"choice\" type`\n );\n }\n }, [clonedChildren, props.type]);\n\n const chipGroupChildren = () => {\n if (isChoiceProps(props)) {\n return (\n <RadixToggleGroup.Root\n className={classes}\n {...props}\n aria-labelledby={title ? `${titleProps?.id ?? id}-label` : undefined}\n onValueChange={handleValueChange}\n type=\"single\"\n >\n {clonedChildren}\n </RadixToggleGroup.Root>\n );\n }\n return (\n <RadixToggleGroup.Root\n className={classes}\n {...props}\n aria-labelledby={title ? `${titleProps?.id ?? id}-label` : undefined}\n onValueChange={handleValueChange}\n type=\"multiple\"\n >\n {clonedChildren}\n </RadixToggleGroup.Root>\n );\n };\n\n return (\n <div className={styles[`${rootClassName}--container`]}>\n {title && (\n <Heading\n tag=\"h2\"\n variant=\"subsection-100\"\n {...titleProps}\n id={`${titleProps?.id ?? id}-label`}\n >\n {title}\n </Heading>\n )}\n {chipGroupChildren()}\n {name && props.type === \"choice\" && <input type=\"hidden\" name={name} value={props.value} />}\n </div>\n );\n};\n\nChipGroup.Item = ChipGroupItem;\n\nChipGroup.displayName = \"ChipGroup\";\n"],"names":["NAME","Toggle","React","props","forwardedRef","pressedProp","defaultPressed","onPressedChange","buttonProps","pressed","setPressed","useControllableState","jsx","Primitive","composeEventHandlers","TOGGLE_GROUP_NAME","createToggleGroupContext","createContextScope","createRovingFocusGroupScope","useRovingFocusGroupScope","ToggleGroup","type","toggleGroupProps","ToggleGroupImplSingle","ToggleGroupImplMultiple","ToggleGroupValueProvider","useToggleGroupValueContext","valueProp","defaultValue","onValueChange","toggleGroupSingleProps","value","setValue","ToggleGroupImpl","toggleGroupMultipleProps","handleButtonActivate","itemValue","prevValue","handleButtonDeactivate","value2","ToggleGroupContext","useToggleGroupContext","__scopeToggleGroup","disabled","rovingFocus","orientation","dir","loop","rovingFocusGroupScope","direction","useDirection","commonProps","RovingFocusGroup.Root","ITEM_NAME","ToggleGroupItem","valueContext","context","ref","RovingFocusGroup.Item","ToggleGroupItemImpl","itemProps","singleProps","typeProps","Root2","Item2","cx","c","styles","rootClassName","ChipGroupItem","allyLabel","children","className","dataTestId","showCheckmark","unavailable","classes","handleClick","e","jsxs","RadixToggleGroup.Item","IconCheckmark","isChipGroupItem","child","isValidElement","isChoiceProps","MIN_CHOICE_OPTIONS","ChipGroup","fullWidth","title","titleProps","name","id","useId","chipGroupItemChildren","Children","clonedChildren","cloneElement","handleValueChange","useEffect","chipGroupChildren","RadixToggleGroup.Root","Heading"],"mappings":"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","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"chip-group-CJVvfl_J.mjs","sources":["../../../common/temp/node_modules/.pnpm/@radix-ui+react-toggle@1.1.10_@types+react-dom@19.2.3_@types+react@19.2.14__@types+reac_63d136f11f5f79b42c1373b9162ffc86/node_modules/@radix-ui/react-toggle/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-toggle-group@1.1.11_@types+react-dom@19.2.3_@types+react@19.2.14__@type_0c124bdbaa351e80a671757a596f81ce/node_modules/@radix-ui/react-toggle-group/dist/index.mjs","../../../components/chip-group/src/chip-group-item.tsx","../../../components/chip-group/src/chip-group.tsx"],"sourcesContent":["\"use client\";\n\n// src/toggle.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Toggle\";\nvar Toggle = React.forwardRef((props, forwardedRef) => {\n const { pressed: pressedProp, defaultPressed, onPressedChange, ...buttonProps } = props;\n const [pressed, setPressed] = useControllableState({\n prop: pressedProp,\n onChange: onPressedChange,\n defaultProp: defaultPressed ?? false,\n caller: NAME\n });\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n \"aria-pressed\": pressed,\n \"data-state\": pressed ? \"on\" : \"off\",\n \"data-disabled\": props.disabled ? \"\" : void 0,\n ...buttonProps,\n ref: forwardedRef,\n onClick: composeEventHandlers(props.onClick, () => {\n if (!props.disabled) {\n setPressed(!pressed);\n }\n })\n }\n );\n});\nToggle.displayName = NAME;\nvar Root = Toggle;\nexport {\n Root,\n Toggle\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/toggle-group.tsx\nimport React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { Toggle } from \"@radix-ui/react-toggle\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TOGGLE_GROUP_NAME = \"ToggleGroup\";\nvar [createToggleGroupContext, createToggleGroupScope] = createContextScope(TOGGLE_GROUP_NAME, [\n createRovingFocusGroupScope\n]);\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar ToggleGroup = React.forwardRef((props, forwardedRef) => {\n const { type, ...toggleGroupProps } = props;\n if (type === \"single\") {\n const singleProps = toggleGroupProps;\n return /* @__PURE__ */ jsx(ToggleGroupImplSingle, { ...singleProps, ref: forwardedRef });\n }\n if (type === \"multiple\") {\n const multipleProps = toggleGroupProps;\n return /* @__PURE__ */ jsx(ToggleGroupImplMultiple, { ...multipleProps, ref: forwardedRef });\n }\n throw new Error(`Missing prop \\`type\\` expected on \\`${TOGGLE_GROUP_NAME}\\``);\n});\nToggleGroup.displayName = TOGGLE_GROUP_NAME;\nvar [ToggleGroupValueProvider, useToggleGroupValueContext] = createToggleGroupContext(TOGGLE_GROUP_NAME);\nvar ToggleGroupImplSingle = React.forwardRef((props, forwardedRef) => {\n const {\n value: valueProp,\n defaultValue,\n onValueChange = () => {\n },\n ...toggleGroupSingleProps\n } = props;\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue ?? \"\",\n onChange: onValueChange,\n caller: TOGGLE_GROUP_NAME\n });\n return /* @__PURE__ */ jsx(\n ToggleGroupValueProvider,\n {\n scope: props.__scopeToggleGroup,\n type: \"single\",\n value: React.useMemo(() => value ? [value] : [], [value]),\n onItemActivate: setValue,\n onItemDeactivate: React.useCallback(() => setValue(\"\"), [setValue]),\n children: /* @__PURE__ */ jsx(ToggleGroupImpl, { ...toggleGroupSingleProps, ref: forwardedRef })\n }\n );\n});\nvar ToggleGroupImplMultiple = React.forwardRef((props, forwardedRef) => {\n const {\n value: valueProp,\n defaultValue,\n onValueChange = () => {\n },\n ...toggleGroupMultipleProps\n } = props;\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue ?? [],\n onChange: onValueChange,\n caller: TOGGLE_GROUP_NAME\n });\n const handleButtonActivate = React.useCallback(\n (itemValue) => setValue((prevValue = []) => [...prevValue, itemValue]),\n [setValue]\n );\n const handleButtonDeactivate = React.useCallback(\n (itemValue) => setValue((prevValue = []) => prevValue.filter((value2) => value2 !== itemValue)),\n [setValue]\n );\n return /* @__PURE__ */ jsx(\n ToggleGroupValueProvider,\n {\n scope: props.__scopeToggleGroup,\n type: \"multiple\",\n value,\n onItemActivate: handleButtonActivate,\n onItemDeactivate: handleButtonDeactivate,\n children: /* @__PURE__ */ jsx(ToggleGroupImpl, { ...toggleGroupMultipleProps, ref: forwardedRef })\n }\n );\n});\nToggleGroup.displayName = TOGGLE_GROUP_NAME;\nvar [ToggleGroupContext, useToggleGroupContext] = createToggleGroupContext(TOGGLE_GROUP_NAME);\nvar ToggleGroupImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeToggleGroup,\n disabled = false,\n rovingFocus = true,\n orientation,\n dir,\n loop = true,\n ...toggleGroupProps\n } = props;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeToggleGroup);\n const direction = useDirection(dir);\n const commonProps = { role: \"group\", dir: direction, ...toggleGroupProps };\n return /* @__PURE__ */ jsx(ToggleGroupContext, { scope: __scopeToggleGroup, rovingFocus, disabled, children: rovingFocus ? /* @__PURE__ */ jsx(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation,\n dir: direction,\n loop,\n children: /* @__PURE__ */ jsx(Primitive.div, { ...commonProps, ref: forwardedRef })\n }\n ) : /* @__PURE__ */ jsx(Primitive.div, { ...commonProps, ref: forwardedRef }) });\n }\n);\nvar ITEM_NAME = \"ToggleGroupItem\";\nvar ToggleGroupItem = React.forwardRef(\n (props, forwardedRef) => {\n const valueContext = useToggleGroupValueContext(ITEM_NAME, props.__scopeToggleGroup);\n const context = useToggleGroupContext(ITEM_NAME, props.__scopeToggleGroup);\n const rovingFocusGroupScope = useRovingFocusGroupScope(props.__scopeToggleGroup);\n const pressed = valueContext.value.includes(props.value);\n const disabled = context.disabled || props.disabled;\n const commonProps = { ...props, pressed, disabled };\n const ref = React.useRef(null);\n return context.rovingFocus ? /* @__PURE__ */ jsx(\n RovingFocusGroup.Item,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !disabled,\n active: pressed,\n ref,\n children: /* @__PURE__ */ jsx(ToggleGroupItemImpl, { ...commonProps, ref: forwardedRef })\n }\n ) : /* @__PURE__ */ jsx(ToggleGroupItemImpl, { ...commonProps, ref: forwardedRef });\n }\n);\nToggleGroupItem.displayName = ITEM_NAME;\nvar ToggleGroupItemImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeToggleGroup, value, ...itemProps } = props;\n const valueContext = useToggleGroupValueContext(ITEM_NAME, __scopeToggleGroup);\n const singleProps = { role: \"radio\", \"aria-checked\": props.pressed, \"aria-pressed\": void 0 };\n const typeProps = valueContext.type === \"single\" ? singleProps : void 0;\n return /* @__PURE__ */ jsx(\n Toggle,\n {\n ...typeProps,\n ...itemProps,\n ref: forwardedRef,\n onPressedChange: (pressed) => {\n if (pressed) {\n valueContext.onItemActivate(value);\n } else {\n valueContext.onItemDeactivate(value);\n }\n }\n }\n );\n }\n);\nvar Root2 = ToggleGroup;\nvar Item2 = ToggleGroupItem;\nexport {\n Item2 as Item,\n Root2 as Root,\n ToggleGroup,\n ToggleGroupItem,\n createToggleGroupScope\n};\n//# sourceMappingURL=index.mjs.map\n","import React, { isValidElement, type MouseEvent, type ReactElement, type ReactNode } from \"react\";\nimport { IconCheckmark } from \"@purpur/icon/checkmark\";\nimport * as RadixToggleGroup from \"@radix-ui/react-toggle-group\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./chip-group-item.module.scss\";\n\ntype StylingProps = Pick<React.HTMLAttributes<HTMLElement>, \"style\" | \"className\">;\n\ntype ChipGroupItemProps = StylingProps & {\n [\"aria-label\"]?: string;\n [\"data-testid\"]?: string;\n children: ReactNode;\n /**\n * When `true`, prevents the user from interacting with the item.\n * */\n disabled?: boolean;\n /**\n * This prop will be passed automatically from the parent component (ChipGroup) when `type` is `\"filter\"`.\n * */\n showCheckmark?: boolean;\n /**\n * A unique value for the item.\n * */\n value: string;\n /**\n * This prop will only be used when `type` is `\"choice\"`.\n * When `true`, we recommend using `aria-label` to announce to screen readers that the option is unavailable.\n * */\n unavailable?: boolean;\n};\n\nconst cx = c.bind(styles);\nexport const rootClassName = \"purpur-chip-group-item\";\n\nexport const ChipGroupItem = ({\n [\"aria-label\"]: allyLabel,\n children,\n className,\n [\"data-testid\"]: dataTestId,\n disabled = false,\n showCheckmark = false,\n unavailable = false,\n value,\n ...props\n}: ChipGroupItemProps) => {\n const classes = cx([\n rootClassName,\n {\n [`${rootClassName}--disabled`]: disabled,\n [`${rootClassName}--unavailable`]: unavailable,\n },\n className,\n ]);\n\n const handleClick = (e: MouseEvent<HTMLButtonElement>) => {\n if (disabled) {\n e.preventDefault();\n }\n };\n\n return (\n <RadixToggleGroup.Item\n aria-label={allyLabel}\n data-testid={dataTestId}\n className={`${classes} ${rootClassName}`}\n value={value}\n onClick={handleClick}\n aria-disabled={disabled}\n {...props}\n >\n {children}\n {showCheckmark && (\n <IconCheckmark\n size=\"sm\"\n className={cx(`${rootClassName}__checkmark-icon`)}\n data-testid=\"checkmark icon\"\n />\n )}\n {unavailable && (\n <span\n className={cx(`${rootClassName}__line-wrapper`)}\n data-testid=\"unavailable line wrapper\"\n />\n )}\n </RadixToggleGroup.Item>\n );\n};\n\nexport const isChipGroupItem = (child?: ReactNode): child is ReactElement<ChipGroupItemProps> =>\n isValidElement<ChipGroupItemProps>(child) && child?.type === ChipGroupItem;\n","import React, { Children, cloneElement, type ReactNode, useEffect, useId } from \"react\";\nimport { Heading, type HeadingTagType } from \"@purpur/heading\";\nimport * as RadixToggleGroup from \"@radix-ui/react-toggle-group\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./chip-group.module.scss\";\nimport { ChipGroupItem, isChipGroupItem } from \"./chip-group-item\";\n\ntype StylingProps = Pick<React.HTMLAttributes<HTMLElement>, \"style\" | \"className\">;\n\ntype ChipGroupProps = StylingProps & {\n [\"data-testid\"]?: string;\n /**\n * Will only render given ChipGroupItems.\n * */\n children: ReactNode;\n /**\n * Makes the chips span the full container width if set to `true`.\n * */\n fullWidth?: boolean;\n /**\n * Renders above the chip group as a heading.\n * */\n title?: ReactNode;\n /**\n * Allows to customise title.\n */\n titleProps?: TitlePropsType;\n /**\n * Optional name for form submission\n */\n name?: string;\n};\n\nexport type TitlePropsType = StylingProps & {\n /**\n * Use custom id for connecting title and chip group.\n */\n id?: string;\n /**\n * Changes heading level.\n * @default h2\n */\n tag?: HeadingTagType;\n};\n\nexport type ChipGroupChoiceProps = {\n /**\n * Event handler called when the pressed state of an item changes.\n * */\n onValueChange: (value: string) => void;\n /**\n * Determines whether a single (`\"choice\"`) or multiple (`\"filter\"`) items can be pressed at a time.\n * */\n type: \"choice\";\n /**\n * The value of the pressed item(s).\n * */\n value: string;\n};\n\nexport type ChipGroupFilterProps = {\n /**\n * Event handler called when the pressed state of an item changes.\n * */\n onValueChange: (value: string[]) => void;\n /**\n * Determines whether a single (`\"choice\"`) or multiple (`\"filter\"`) items can be pressed at a time.\n * */\n type: \"filter\";\n /**\n * The value of the pressed item(s).\n * */\n value: string[];\n};\n\nconst isChoiceProps = (\n props: ChipGroupChoiceProps | ChipGroupFilterProps\n): props is ChipGroupChoiceProps => props.type === \"choice\";\n\ntype ChipGroupCmp<P> = React.FunctionComponent<P> & {\n Item: typeof ChipGroupItem;\n};\n\nconst MIN_CHOICE_OPTIONS = 2;\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-chip-group\";\n\nexport const ChipGroup: ChipGroupCmp<\n ChipGroupProps & (ChipGroupChoiceProps | ChipGroupFilterProps)\n> = ({ children, className, fullWidth = false, title, titleProps, name, ...props }) => {\n const classes = cx([\n rootClassName,\n {\n [`${rootClassName}--full-width`]: fullWidth,\n },\n className,\n ]);\n\n const id = useId();\n\n const chipGroupItemChildren = Children.toArray(children).filter(isChipGroupItem);\n\n const clonedChildren = Children.map(chipGroupItemChildren, (child) =>\n cloneElement(child, {\n showCheckmark: props.type === \"filter\" && props.value.includes(child.props.value),\n unavailable: props.type === \"choice\" && child.props.unavailable,\n })\n );\n\n const handleValueChange = (value: string & string[]) => {\n if (props.type === \"filter\" || value !== \"\") {\n props.onValueChange(value);\n }\n };\n\n useEffect(() => {\n if (props.type === \"choice\" && clonedChildren.length < MIN_CHOICE_OPTIONS) {\n console.warn(\n `Minimum number of chips should be ${MIN_CHOICE_OPTIONS} when using the \"choice\" type`\n );\n }\n }, [clonedChildren, props.type]);\n\n const chipGroupChildren = () => {\n if (isChoiceProps(props)) {\n return (\n <RadixToggleGroup.Root\n className={classes}\n {...props}\n aria-labelledby={title ? `${titleProps?.id ?? id}-label` : undefined}\n onValueChange={handleValueChange}\n type=\"single\"\n >\n {clonedChildren}\n </RadixToggleGroup.Root>\n );\n }\n return (\n <RadixToggleGroup.Root\n className={classes}\n {...props}\n aria-labelledby={title ? `${titleProps?.id ?? id}-label` : undefined}\n onValueChange={handleValueChange}\n type=\"multiple\"\n >\n {clonedChildren}\n </RadixToggleGroup.Root>\n );\n };\n\n return (\n <div className={styles[`${rootClassName}--container`]}>\n {title && (\n <Heading\n tag=\"h2\"\n variant=\"subsection-100\"\n {...titleProps}\n id={`${titleProps?.id ?? id}-label`}\n >\n {title}\n </Heading>\n )}\n {chipGroupChildren()}\n {name && props.type === \"choice\" && <input type=\"hidden\" name={name} value={props.value} />}\n </div>\n );\n};\n\nChipGroup.Item = ChipGroupItem;\n\nChipGroup.displayName = \"ChipGroup\";\n"],"names":["NAME","Toggle","React","props","forwardedRef","pressedProp","defaultPressed","onPressedChange","buttonProps","pressed","setPressed","useControllableState","jsx","Primitive","composeEventHandlers","TOGGLE_GROUP_NAME","createToggleGroupContext","createContextScope","createRovingFocusGroupScope","useRovingFocusGroupScope","ToggleGroup","type","toggleGroupProps","ToggleGroupImplSingle","ToggleGroupImplMultiple","ToggleGroupValueProvider","useToggleGroupValueContext","valueProp","defaultValue","onValueChange","toggleGroupSingleProps","value","setValue","ToggleGroupImpl","toggleGroupMultipleProps","handleButtonActivate","itemValue","prevValue","handleButtonDeactivate","value2","ToggleGroupContext","useToggleGroupContext","__scopeToggleGroup","disabled","rovingFocus","orientation","dir","loop","rovingFocusGroupScope","direction","useDirection","commonProps","RovingFocusGroup.Root","ITEM_NAME","ToggleGroupItem","valueContext","context","ref","RovingFocusGroup.Item","ToggleGroupItemImpl","itemProps","singleProps","typeProps","Root2","Item2","cx","c","styles","rootClassName","ChipGroupItem","allyLabel","children","className","dataTestId","showCheckmark","unavailable","classes","handleClick","e","jsxs","RadixToggleGroup.Item","IconCheckmark","isChipGroupItem","child","isValidElement","isChoiceProps","MIN_CHOICE_OPTIONS","ChipGroup","fullWidth","title","titleProps","name","id","useId","chipGroupItemChildren","Children","clonedChildren","cloneElement","handleValueChange","useEffect","chipGroupChildren","RadixToggleGroup.Root","Heading"],"mappings":"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","x_google_ignoreList":[0,1]}
@@ -1 +1 @@
1
- {"version":3,"file":"chip-group-aj1fdnjC.js","sources":["../../../common/temp/node_modules/.pnpm/@radix-ui+react-toggle@1.1.10_@types+react-dom@19.2.3_@types+react@19.2.10__@types+reac_ac954931be38b8943a4772f30be6b8cd/node_modules/@radix-ui/react-toggle/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-toggle-group@1.1.11_@types+react-dom@19.2.3_@types+react@19.2.10__@type_1c3e06769648befb283f52b0de4ae8b0/node_modules/@radix-ui/react-toggle-group/dist/index.mjs","../../../components/chip-group/src/chip-group-item.tsx","../../../components/chip-group/src/chip-group.tsx"],"sourcesContent":["\"use client\";\n\n// src/toggle.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Toggle\";\nvar Toggle = React.forwardRef((props, forwardedRef) => {\n const { pressed: pressedProp, defaultPressed, onPressedChange, ...buttonProps } = props;\n const [pressed, setPressed] = useControllableState({\n prop: pressedProp,\n onChange: onPressedChange,\n defaultProp: defaultPressed ?? false,\n caller: NAME\n });\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n \"aria-pressed\": pressed,\n \"data-state\": pressed ? \"on\" : \"off\",\n \"data-disabled\": props.disabled ? \"\" : void 0,\n ...buttonProps,\n ref: forwardedRef,\n onClick: composeEventHandlers(props.onClick, () => {\n if (!props.disabled) {\n setPressed(!pressed);\n }\n })\n }\n );\n});\nToggle.displayName = NAME;\nvar Root = Toggle;\nexport {\n Root,\n Toggle\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/toggle-group.tsx\nimport React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { Toggle } from \"@radix-ui/react-toggle\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TOGGLE_GROUP_NAME = \"ToggleGroup\";\nvar [createToggleGroupContext, createToggleGroupScope] = createContextScope(TOGGLE_GROUP_NAME, [\n createRovingFocusGroupScope\n]);\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar ToggleGroup = React.forwardRef((props, forwardedRef) => {\n const { type, ...toggleGroupProps } = props;\n if (type === \"single\") {\n const singleProps = toggleGroupProps;\n return /* @__PURE__ */ jsx(ToggleGroupImplSingle, { ...singleProps, ref: forwardedRef });\n }\n if (type === \"multiple\") {\n const multipleProps = toggleGroupProps;\n return /* @__PURE__ */ jsx(ToggleGroupImplMultiple, { ...multipleProps, ref: forwardedRef });\n }\n throw new Error(`Missing prop \\`type\\` expected on \\`${TOGGLE_GROUP_NAME}\\``);\n});\nToggleGroup.displayName = TOGGLE_GROUP_NAME;\nvar [ToggleGroupValueProvider, useToggleGroupValueContext] = createToggleGroupContext(TOGGLE_GROUP_NAME);\nvar ToggleGroupImplSingle = React.forwardRef((props, forwardedRef) => {\n const {\n value: valueProp,\n defaultValue,\n onValueChange = () => {\n },\n ...toggleGroupSingleProps\n } = props;\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue ?? \"\",\n onChange: onValueChange,\n caller: TOGGLE_GROUP_NAME\n });\n return /* @__PURE__ */ jsx(\n ToggleGroupValueProvider,\n {\n scope: props.__scopeToggleGroup,\n type: \"single\",\n value: React.useMemo(() => value ? [value] : [], [value]),\n onItemActivate: setValue,\n onItemDeactivate: React.useCallback(() => setValue(\"\"), [setValue]),\n children: /* @__PURE__ */ jsx(ToggleGroupImpl, { ...toggleGroupSingleProps, ref: forwardedRef })\n }\n );\n});\nvar ToggleGroupImplMultiple = React.forwardRef((props, forwardedRef) => {\n const {\n value: valueProp,\n defaultValue,\n onValueChange = () => {\n },\n ...toggleGroupMultipleProps\n } = props;\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue ?? [],\n onChange: onValueChange,\n caller: TOGGLE_GROUP_NAME\n });\n const handleButtonActivate = React.useCallback(\n (itemValue) => setValue((prevValue = []) => [...prevValue, itemValue]),\n [setValue]\n );\n const handleButtonDeactivate = React.useCallback(\n (itemValue) => setValue((prevValue = []) => prevValue.filter((value2) => value2 !== itemValue)),\n [setValue]\n );\n return /* @__PURE__ */ jsx(\n ToggleGroupValueProvider,\n {\n scope: props.__scopeToggleGroup,\n type: \"multiple\",\n value,\n onItemActivate: handleButtonActivate,\n onItemDeactivate: handleButtonDeactivate,\n children: /* @__PURE__ */ jsx(ToggleGroupImpl, { ...toggleGroupMultipleProps, ref: forwardedRef })\n }\n );\n});\nToggleGroup.displayName = TOGGLE_GROUP_NAME;\nvar [ToggleGroupContext, useToggleGroupContext] = createToggleGroupContext(TOGGLE_GROUP_NAME);\nvar ToggleGroupImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeToggleGroup,\n disabled = false,\n rovingFocus = true,\n orientation,\n dir,\n loop = true,\n ...toggleGroupProps\n } = props;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeToggleGroup);\n const direction = useDirection(dir);\n const commonProps = { role: \"group\", dir: direction, ...toggleGroupProps };\n return /* @__PURE__ */ jsx(ToggleGroupContext, { scope: __scopeToggleGroup, rovingFocus, disabled, children: rovingFocus ? /* @__PURE__ */ jsx(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation,\n dir: direction,\n loop,\n children: /* @__PURE__ */ jsx(Primitive.div, { ...commonProps, ref: forwardedRef })\n }\n ) : /* @__PURE__ */ jsx(Primitive.div, { ...commonProps, ref: forwardedRef }) });\n }\n);\nvar ITEM_NAME = \"ToggleGroupItem\";\nvar ToggleGroupItem = React.forwardRef(\n (props, forwardedRef) => {\n const valueContext = useToggleGroupValueContext(ITEM_NAME, props.__scopeToggleGroup);\n const context = useToggleGroupContext(ITEM_NAME, props.__scopeToggleGroup);\n const rovingFocusGroupScope = useRovingFocusGroupScope(props.__scopeToggleGroup);\n const pressed = valueContext.value.includes(props.value);\n const disabled = context.disabled || props.disabled;\n const commonProps = { ...props, pressed, disabled };\n const ref = React.useRef(null);\n return context.rovingFocus ? /* @__PURE__ */ jsx(\n RovingFocusGroup.Item,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !disabled,\n active: pressed,\n ref,\n children: /* @__PURE__ */ jsx(ToggleGroupItemImpl, { ...commonProps, ref: forwardedRef })\n }\n ) : /* @__PURE__ */ jsx(ToggleGroupItemImpl, { ...commonProps, ref: forwardedRef });\n }\n);\nToggleGroupItem.displayName = ITEM_NAME;\nvar ToggleGroupItemImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeToggleGroup, value, ...itemProps } = props;\n const valueContext = useToggleGroupValueContext(ITEM_NAME, __scopeToggleGroup);\n const singleProps = { role: \"radio\", \"aria-checked\": props.pressed, \"aria-pressed\": void 0 };\n const typeProps = valueContext.type === \"single\" ? singleProps : void 0;\n return /* @__PURE__ */ jsx(\n Toggle,\n {\n ...typeProps,\n ...itemProps,\n ref: forwardedRef,\n onPressedChange: (pressed) => {\n if (pressed) {\n valueContext.onItemActivate(value);\n } else {\n valueContext.onItemDeactivate(value);\n }\n }\n }\n );\n }\n);\nvar Root2 = ToggleGroup;\nvar Item2 = ToggleGroupItem;\nexport {\n Item2 as Item,\n Root2 as Root,\n ToggleGroup,\n ToggleGroupItem,\n createToggleGroupScope\n};\n//# sourceMappingURL=index.mjs.map\n","import React, { isValidElement, type MouseEvent, type ReactElement, type ReactNode } from \"react\";\nimport { IconCheckmark } from \"@purpur/icon/checkmark\";\nimport * as RadixToggleGroup from \"@radix-ui/react-toggle-group\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./chip-group-item.module.scss\";\n\ntype StylingProps = Pick<React.HTMLAttributes<HTMLElement>, \"style\" | \"className\">;\n\ntype ChipGroupItemProps = StylingProps & {\n [\"aria-label\"]?: string;\n [\"data-testid\"]?: string;\n children: ReactNode;\n /**\n * When `true`, prevents the user from interacting with the item.\n * */\n disabled?: boolean;\n /**\n * This prop will be passed automatically from the parent component (ChipGroup) when `type` is `\"filter\"`.\n * */\n showCheckmark?: boolean;\n /**\n * A unique value for the item.\n * */\n value: string;\n /**\n * This prop will only be used when `type` is `\"choice\"`.\n * When `true`, we recommend using `aria-label` to announce to screen readers that the option is unavailable.\n * */\n unavailable?: boolean;\n};\n\nconst cx = c.bind(styles);\nexport const rootClassName = \"purpur-chip-group-item\";\n\nexport const ChipGroupItem = ({\n [\"aria-label\"]: allyLabel,\n children,\n className,\n [\"data-testid\"]: dataTestId,\n disabled = false,\n showCheckmark = false,\n unavailable = false,\n value,\n ...props\n}: ChipGroupItemProps) => {\n const classes = cx([\n rootClassName,\n {\n [`${rootClassName}--disabled`]: disabled,\n [`${rootClassName}--unavailable`]: unavailable,\n },\n className,\n ]);\n\n const handleClick = (e: MouseEvent<HTMLButtonElement>) => {\n if (disabled) {\n e.preventDefault();\n }\n };\n\n return (\n <RadixToggleGroup.Item\n aria-label={allyLabel}\n data-testid={dataTestId}\n className={`${classes} ${rootClassName}`}\n value={value}\n onClick={handleClick}\n aria-disabled={disabled}\n {...props}\n >\n {children}\n {showCheckmark && (\n <IconCheckmark\n size=\"sm\"\n className={cx(`${rootClassName}__checkmark-icon`)}\n data-testid=\"checkmark icon\"\n />\n )}\n {unavailable && (\n <span\n className={cx(`${rootClassName}__line-wrapper`)}\n data-testid=\"unavailable line wrapper\"\n />\n )}\n </RadixToggleGroup.Item>\n );\n};\n\nexport const isChipGroupItem = (child?: ReactNode): child is ReactElement<ChipGroupItemProps> =>\n isValidElement<ChipGroupItemProps>(child) && child?.type === ChipGroupItem;\n","import React, { Children, cloneElement, type ReactNode, useEffect, useId } from \"react\";\nimport { Heading, type HeadingTagType } from \"@purpur/heading\";\nimport * as RadixToggleGroup from \"@radix-ui/react-toggle-group\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./chip-group.module.scss\";\nimport { ChipGroupItem, isChipGroupItem } from \"./chip-group-item\";\n\ntype StylingProps = Pick<React.HTMLAttributes<HTMLElement>, \"style\" | \"className\">;\n\ntype ChipGroupProps = StylingProps & {\n [\"data-testid\"]?: string;\n /**\n * Will only render given ChipGroupItems.\n * */\n children: ReactNode;\n /**\n * Makes the chips span the full container width if set to `true`.\n * */\n fullWidth?: boolean;\n /**\n * Renders above the chip group as a heading.\n * */\n title?: ReactNode;\n /**\n * Allows to customise title.\n */\n titleProps?: TitlePropsType;\n /**\n * Optional name for form submission\n */\n name?: string;\n};\n\nexport type TitlePropsType = StylingProps & {\n /**\n * Use custom id for connecting title and chip group.\n */\n id?: string;\n /**\n * Changes heading level.\n * @default h2\n */\n tag?: HeadingTagType;\n};\n\nexport type ChipGroupChoiceProps = {\n /**\n * Event handler called when the pressed state of an item changes.\n * */\n onValueChange: (value: string) => void;\n /**\n * Determines whether a single (`\"choice\"`) or multiple (`\"filter\"`) items can be pressed at a time.\n * */\n type: \"choice\";\n /**\n * The value of the pressed item(s).\n * */\n value: string;\n};\n\nexport type ChipGroupFilterProps = {\n /**\n * Event handler called when the pressed state of an item changes.\n * */\n onValueChange: (value: string[]) => void;\n /**\n * Determines whether a single (`\"choice\"`) or multiple (`\"filter\"`) items can be pressed at a time.\n * */\n type: \"filter\";\n /**\n * The value of the pressed item(s).\n * */\n value: string[];\n};\n\nconst isChoiceProps = (\n props: ChipGroupChoiceProps | ChipGroupFilterProps\n): props is ChipGroupChoiceProps => props.type === \"choice\";\n\ntype ChipGroupCmp<P> = React.FunctionComponent<P> & {\n Item: typeof ChipGroupItem;\n};\n\nconst MIN_CHOICE_OPTIONS = 2;\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-chip-group\";\n\nexport const ChipGroup: ChipGroupCmp<\n ChipGroupProps & (ChipGroupChoiceProps | ChipGroupFilterProps)\n> = ({ children, className, fullWidth = false, title, titleProps, name, ...props }) => {\n const classes = cx([\n rootClassName,\n {\n [`${rootClassName}--full-width`]: fullWidth,\n },\n className,\n ]);\n\n const id = useId();\n\n const chipGroupItemChildren = Children.toArray(children).filter(isChipGroupItem);\n\n const clonedChildren = Children.map(chipGroupItemChildren, (child) =>\n cloneElement(child, {\n showCheckmark: props.type === \"filter\" && props.value.includes(child.props.value),\n unavailable: props.type === \"choice\" && child.props.unavailable,\n })\n );\n\n const handleValueChange = (value: string & string[]) => {\n if (props.type === \"filter\" || value !== \"\") {\n props.onValueChange(value);\n }\n };\n\n useEffect(() => {\n if (props.type === \"choice\" && clonedChildren.length < MIN_CHOICE_OPTIONS) {\n console.warn(\n `Minimum number of chips should be ${MIN_CHOICE_OPTIONS} when using the \"choice\" type`\n );\n }\n }, [clonedChildren, props.type]);\n\n const chipGroupChildren = () => {\n if (isChoiceProps(props)) {\n return (\n <RadixToggleGroup.Root\n className={classes}\n {...props}\n aria-labelledby={title ? `${titleProps?.id ?? id}-label` : undefined}\n onValueChange={handleValueChange}\n type=\"single\"\n >\n {clonedChildren}\n </RadixToggleGroup.Root>\n );\n }\n return (\n <RadixToggleGroup.Root\n className={classes}\n {...props}\n aria-labelledby={title ? `${titleProps?.id ?? id}-label` : undefined}\n onValueChange={handleValueChange}\n type=\"multiple\"\n >\n {clonedChildren}\n </RadixToggleGroup.Root>\n );\n };\n\n return (\n <div className={styles[`${rootClassName}--container`]}>\n {title && (\n <Heading\n tag=\"h2\"\n variant=\"subsection-100\"\n {...titleProps}\n id={`${titleProps?.id ?? id}-label`}\n >\n {title}\n </Heading>\n )}\n {chipGroupChildren()}\n {name && props.type === \"choice\" && <input type=\"hidden\" name={name} value={props.value} />}\n </div>\n );\n};\n\nChipGroup.Item = ChipGroupItem;\n\nChipGroup.displayName = \"ChipGroup\";\n"],"names":["NAME","Toggle","React","props","forwardedRef","pressedProp","defaultPressed","onPressedChange","buttonProps","pressed","setPressed","useControllableState","jsx","Primitive","composeEventHandlers","TOGGLE_GROUP_NAME","createToggleGroupContext","createContextScope","createRovingFocusGroupScope","useRovingFocusGroupScope","ToggleGroup","type","toggleGroupProps","singleProps","ToggleGroupImplSingle","multipleProps","ToggleGroupImplMultiple","ToggleGroupValueProvider","useToggleGroupValueContext","valueProp","defaultValue","onValueChange","toggleGroupSingleProps","value","setValue","ToggleGroupImpl","toggleGroupMultipleProps","handleButtonActivate","itemValue","prevValue","handleButtonDeactivate","value2","ToggleGroupContext","useToggleGroupContext","__scopeToggleGroup","disabled","rovingFocus","orientation","dir","loop","rovingFocusGroupScope","direction","useDirection","commonProps","RovingFocusGroup.Root","ITEM_NAME","ToggleGroupItem","valueContext","context","ref","RovingFocusGroup.Item","ToggleGroupItemImpl","itemProps","typeProps","Root2","Item2","cx","c","styles","rootClassName","ChipGroupItem","allyLabel","children","className","dataTestId","showCheckmark","unavailable","classes","handleClick","e","jsxs","RadixToggleGroup.Item","IconCheckmark","isChipGroupItem","child","isValidElement","isChoiceProps","MIN_CHOICE_OPTIONS","ChipGroup","fullWidth","title","titleProps","name","id","useId","chipGroupItemChildren","Children","clonedChildren","cloneElement","handleValueChange","useEffect","chipGroupChildren","RadixToggleGroup.Root","Heading"],"mappings":"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","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"chip-group-aj1fdnjC.js","sources":["../../../common/temp/node_modules/.pnpm/@radix-ui+react-toggle@1.1.10_@types+react-dom@19.2.3_@types+react@19.2.14__@types+reac_63d136f11f5f79b42c1373b9162ffc86/node_modules/@radix-ui/react-toggle/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-toggle-group@1.1.11_@types+react-dom@19.2.3_@types+react@19.2.14__@type_0c124bdbaa351e80a671757a596f81ce/node_modules/@radix-ui/react-toggle-group/dist/index.mjs","../../../components/chip-group/src/chip-group-item.tsx","../../../components/chip-group/src/chip-group.tsx"],"sourcesContent":["\"use client\";\n\n// src/toggle.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Toggle\";\nvar Toggle = React.forwardRef((props, forwardedRef) => {\n const { pressed: pressedProp, defaultPressed, onPressedChange, ...buttonProps } = props;\n const [pressed, setPressed] = useControllableState({\n prop: pressedProp,\n onChange: onPressedChange,\n defaultProp: defaultPressed ?? false,\n caller: NAME\n });\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n \"aria-pressed\": pressed,\n \"data-state\": pressed ? \"on\" : \"off\",\n \"data-disabled\": props.disabled ? \"\" : void 0,\n ...buttonProps,\n ref: forwardedRef,\n onClick: composeEventHandlers(props.onClick, () => {\n if (!props.disabled) {\n setPressed(!pressed);\n }\n })\n }\n );\n});\nToggle.displayName = NAME;\nvar Root = Toggle;\nexport {\n Root,\n Toggle\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/toggle-group.tsx\nimport React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { Toggle } from \"@radix-ui/react-toggle\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TOGGLE_GROUP_NAME = \"ToggleGroup\";\nvar [createToggleGroupContext, createToggleGroupScope] = createContextScope(TOGGLE_GROUP_NAME, [\n createRovingFocusGroupScope\n]);\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar ToggleGroup = React.forwardRef((props, forwardedRef) => {\n const { type, ...toggleGroupProps } = props;\n if (type === \"single\") {\n const singleProps = toggleGroupProps;\n return /* @__PURE__ */ jsx(ToggleGroupImplSingle, { ...singleProps, ref: forwardedRef });\n }\n if (type === \"multiple\") {\n const multipleProps = toggleGroupProps;\n return /* @__PURE__ */ jsx(ToggleGroupImplMultiple, { ...multipleProps, ref: forwardedRef });\n }\n throw new Error(`Missing prop \\`type\\` expected on \\`${TOGGLE_GROUP_NAME}\\``);\n});\nToggleGroup.displayName = TOGGLE_GROUP_NAME;\nvar [ToggleGroupValueProvider, useToggleGroupValueContext] = createToggleGroupContext(TOGGLE_GROUP_NAME);\nvar ToggleGroupImplSingle = React.forwardRef((props, forwardedRef) => {\n const {\n value: valueProp,\n defaultValue,\n onValueChange = () => {\n },\n ...toggleGroupSingleProps\n } = props;\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue ?? \"\",\n onChange: onValueChange,\n caller: TOGGLE_GROUP_NAME\n });\n return /* @__PURE__ */ jsx(\n ToggleGroupValueProvider,\n {\n scope: props.__scopeToggleGroup,\n type: \"single\",\n value: React.useMemo(() => value ? [value] : [], [value]),\n onItemActivate: setValue,\n onItemDeactivate: React.useCallback(() => setValue(\"\"), [setValue]),\n children: /* @__PURE__ */ jsx(ToggleGroupImpl, { ...toggleGroupSingleProps, ref: forwardedRef })\n }\n );\n});\nvar ToggleGroupImplMultiple = React.forwardRef((props, forwardedRef) => {\n const {\n value: valueProp,\n defaultValue,\n onValueChange = () => {\n },\n ...toggleGroupMultipleProps\n } = props;\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue ?? [],\n onChange: onValueChange,\n caller: TOGGLE_GROUP_NAME\n });\n const handleButtonActivate = React.useCallback(\n (itemValue) => setValue((prevValue = []) => [...prevValue, itemValue]),\n [setValue]\n );\n const handleButtonDeactivate = React.useCallback(\n (itemValue) => setValue((prevValue = []) => prevValue.filter((value2) => value2 !== itemValue)),\n [setValue]\n );\n return /* @__PURE__ */ jsx(\n ToggleGroupValueProvider,\n {\n scope: props.__scopeToggleGroup,\n type: \"multiple\",\n value,\n onItemActivate: handleButtonActivate,\n onItemDeactivate: handleButtonDeactivate,\n children: /* @__PURE__ */ jsx(ToggleGroupImpl, { ...toggleGroupMultipleProps, ref: forwardedRef })\n }\n );\n});\nToggleGroup.displayName = TOGGLE_GROUP_NAME;\nvar [ToggleGroupContext, useToggleGroupContext] = createToggleGroupContext(TOGGLE_GROUP_NAME);\nvar ToggleGroupImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeToggleGroup,\n disabled = false,\n rovingFocus = true,\n orientation,\n dir,\n loop = true,\n ...toggleGroupProps\n } = props;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeToggleGroup);\n const direction = useDirection(dir);\n const commonProps = { role: \"group\", dir: direction, ...toggleGroupProps };\n return /* @__PURE__ */ jsx(ToggleGroupContext, { scope: __scopeToggleGroup, rovingFocus, disabled, children: rovingFocus ? /* @__PURE__ */ jsx(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation,\n dir: direction,\n loop,\n children: /* @__PURE__ */ jsx(Primitive.div, { ...commonProps, ref: forwardedRef })\n }\n ) : /* @__PURE__ */ jsx(Primitive.div, { ...commonProps, ref: forwardedRef }) });\n }\n);\nvar ITEM_NAME = \"ToggleGroupItem\";\nvar ToggleGroupItem = React.forwardRef(\n (props, forwardedRef) => {\n const valueContext = useToggleGroupValueContext(ITEM_NAME, props.__scopeToggleGroup);\n const context = useToggleGroupContext(ITEM_NAME, props.__scopeToggleGroup);\n const rovingFocusGroupScope = useRovingFocusGroupScope(props.__scopeToggleGroup);\n const pressed = valueContext.value.includes(props.value);\n const disabled = context.disabled || props.disabled;\n const commonProps = { ...props, pressed, disabled };\n const ref = React.useRef(null);\n return context.rovingFocus ? /* @__PURE__ */ jsx(\n RovingFocusGroup.Item,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !disabled,\n active: pressed,\n ref,\n children: /* @__PURE__ */ jsx(ToggleGroupItemImpl, { ...commonProps, ref: forwardedRef })\n }\n ) : /* @__PURE__ */ jsx(ToggleGroupItemImpl, { ...commonProps, ref: forwardedRef });\n }\n);\nToggleGroupItem.displayName = ITEM_NAME;\nvar ToggleGroupItemImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeToggleGroup, value, ...itemProps } = props;\n const valueContext = useToggleGroupValueContext(ITEM_NAME, __scopeToggleGroup);\n const singleProps = { role: \"radio\", \"aria-checked\": props.pressed, \"aria-pressed\": void 0 };\n const typeProps = valueContext.type === \"single\" ? singleProps : void 0;\n return /* @__PURE__ */ jsx(\n Toggle,\n {\n ...typeProps,\n ...itemProps,\n ref: forwardedRef,\n onPressedChange: (pressed) => {\n if (pressed) {\n valueContext.onItemActivate(value);\n } else {\n valueContext.onItemDeactivate(value);\n }\n }\n }\n );\n }\n);\nvar Root2 = ToggleGroup;\nvar Item2 = ToggleGroupItem;\nexport {\n Item2 as Item,\n Root2 as Root,\n ToggleGroup,\n ToggleGroupItem,\n createToggleGroupScope\n};\n//# sourceMappingURL=index.mjs.map\n","import React, { isValidElement, type MouseEvent, type ReactElement, type ReactNode } from \"react\";\nimport { IconCheckmark } from \"@purpur/icon/checkmark\";\nimport * as RadixToggleGroup from \"@radix-ui/react-toggle-group\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./chip-group-item.module.scss\";\n\ntype StylingProps = Pick<React.HTMLAttributes<HTMLElement>, \"style\" | \"className\">;\n\ntype ChipGroupItemProps = StylingProps & {\n [\"aria-label\"]?: string;\n [\"data-testid\"]?: string;\n children: ReactNode;\n /**\n * When `true`, prevents the user from interacting with the item.\n * */\n disabled?: boolean;\n /**\n * This prop will be passed automatically from the parent component (ChipGroup) when `type` is `\"filter\"`.\n * */\n showCheckmark?: boolean;\n /**\n * A unique value for the item.\n * */\n value: string;\n /**\n * This prop will only be used when `type` is `\"choice\"`.\n * When `true`, we recommend using `aria-label` to announce to screen readers that the option is unavailable.\n * */\n unavailable?: boolean;\n};\n\nconst cx = c.bind(styles);\nexport const rootClassName = \"purpur-chip-group-item\";\n\nexport const ChipGroupItem = ({\n [\"aria-label\"]: allyLabel,\n children,\n className,\n [\"data-testid\"]: dataTestId,\n disabled = false,\n showCheckmark = false,\n unavailable = false,\n value,\n ...props\n}: ChipGroupItemProps) => {\n const classes = cx([\n rootClassName,\n {\n [`${rootClassName}--disabled`]: disabled,\n [`${rootClassName}--unavailable`]: unavailable,\n },\n className,\n ]);\n\n const handleClick = (e: MouseEvent<HTMLButtonElement>) => {\n if (disabled) {\n e.preventDefault();\n }\n };\n\n return (\n <RadixToggleGroup.Item\n aria-label={allyLabel}\n data-testid={dataTestId}\n className={`${classes} ${rootClassName}`}\n value={value}\n onClick={handleClick}\n aria-disabled={disabled}\n {...props}\n >\n {children}\n {showCheckmark && (\n <IconCheckmark\n size=\"sm\"\n className={cx(`${rootClassName}__checkmark-icon`)}\n data-testid=\"checkmark icon\"\n />\n )}\n {unavailable && (\n <span\n className={cx(`${rootClassName}__line-wrapper`)}\n data-testid=\"unavailable line wrapper\"\n />\n )}\n </RadixToggleGroup.Item>\n );\n};\n\nexport const isChipGroupItem = (child?: ReactNode): child is ReactElement<ChipGroupItemProps> =>\n isValidElement<ChipGroupItemProps>(child) && child?.type === ChipGroupItem;\n","import React, { Children, cloneElement, type ReactNode, useEffect, useId } from \"react\";\nimport { Heading, type HeadingTagType } from \"@purpur/heading\";\nimport * as RadixToggleGroup from \"@radix-ui/react-toggle-group\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./chip-group.module.scss\";\nimport { ChipGroupItem, isChipGroupItem } from \"./chip-group-item\";\n\ntype StylingProps = Pick<React.HTMLAttributes<HTMLElement>, \"style\" | \"className\">;\n\ntype ChipGroupProps = StylingProps & {\n [\"data-testid\"]?: string;\n /**\n * Will only render given ChipGroupItems.\n * */\n children: ReactNode;\n /**\n * Makes the chips span the full container width if set to `true`.\n * */\n fullWidth?: boolean;\n /**\n * Renders above the chip group as a heading.\n * */\n title?: ReactNode;\n /**\n * Allows to customise title.\n */\n titleProps?: TitlePropsType;\n /**\n * Optional name for form submission\n */\n name?: string;\n};\n\nexport type TitlePropsType = StylingProps & {\n /**\n * Use custom id for connecting title and chip group.\n */\n id?: string;\n /**\n * Changes heading level.\n * @default h2\n */\n tag?: HeadingTagType;\n};\n\nexport type ChipGroupChoiceProps = {\n /**\n * Event handler called when the pressed state of an item changes.\n * */\n onValueChange: (value: string) => void;\n /**\n * Determines whether a single (`\"choice\"`) or multiple (`\"filter\"`) items can be pressed at a time.\n * */\n type: \"choice\";\n /**\n * The value of the pressed item(s).\n * */\n value: string;\n};\n\nexport type ChipGroupFilterProps = {\n /**\n * Event handler called when the pressed state of an item changes.\n * */\n onValueChange: (value: string[]) => void;\n /**\n * Determines whether a single (`\"choice\"`) or multiple (`\"filter\"`) items can be pressed at a time.\n * */\n type: \"filter\";\n /**\n * The value of the pressed item(s).\n * */\n value: string[];\n};\n\nconst isChoiceProps = (\n props: ChipGroupChoiceProps | ChipGroupFilterProps\n): props is ChipGroupChoiceProps => props.type === \"choice\";\n\ntype ChipGroupCmp<P> = React.FunctionComponent<P> & {\n Item: typeof ChipGroupItem;\n};\n\nconst MIN_CHOICE_OPTIONS = 2;\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-chip-group\";\n\nexport const ChipGroup: ChipGroupCmp<\n ChipGroupProps & (ChipGroupChoiceProps | ChipGroupFilterProps)\n> = ({ children, className, fullWidth = false, title, titleProps, name, ...props }) => {\n const classes = cx([\n rootClassName,\n {\n [`${rootClassName}--full-width`]: fullWidth,\n },\n className,\n ]);\n\n const id = useId();\n\n const chipGroupItemChildren = Children.toArray(children).filter(isChipGroupItem);\n\n const clonedChildren = Children.map(chipGroupItemChildren, (child) =>\n cloneElement(child, {\n showCheckmark: props.type === \"filter\" && props.value.includes(child.props.value),\n unavailable: props.type === \"choice\" && child.props.unavailable,\n })\n );\n\n const handleValueChange = (value: string & string[]) => {\n if (props.type === \"filter\" || value !== \"\") {\n props.onValueChange(value);\n }\n };\n\n useEffect(() => {\n if (props.type === \"choice\" && clonedChildren.length < MIN_CHOICE_OPTIONS) {\n console.warn(\n `Minimum number of chips should be ${MIN_CHOICE_OPTIONS} when using the \"choice\" type`\n );\n }\n }, [clonedChildren, props.type]);\n\n const chipGroupChildren = () => {\n if (isChoiceProps(props)) {\n return (\n <RadixToggleGroup.Root\n className={classes}\n {...props}\n aria-labelledby={title ? `${titleProps?.id ?? id}-label` : undefined}\n onValueChange={handleValueChange}\n type=\"single\"\n >\n {clonedChildren}\n </RadixToggleGroup.Root>\n );\n }\n return (\n <RadixToggleGroup.Root\n className={classes}\n {...props}\n aria-labelledby={title ? `${titleProps?.id ?? id}-label` : undefined}\n onValueChange={handleValueChange}\n type=\"multiple\"\n >\n {clonedChildren}\n </RadixToggleGroup.Root>\n );\n };\n\n return (\n <div className={styles[`${rootClassName}--container`]}>\n {title && (\n <Heading\n tag=\"h2\"\n variant=\"subsection-100\"\n {...titleProps}\n id={`${titleProps?.id ?? id}-label`}\n >\n {title}\n </Heading>\n )}\n {chipGroupChildren()}\n {name && props.type === \"choice\" && <input type=\"hidden\" name={name} value={props.value} />}\n </div>\n );\n};\n\nChipGroup.Item = ChipGroupItem;\n\nChipGroup.displayName = \"ChipGroup\";\n"],"names":["NAME","Toggle","React","props","forwardedRef","pressedProp","defaultPressed","onPressedChange","buttonProps","pressed","setPressed","useControllableState","jsx","Primitive","composeEventHandlers","TOGGLE_GROUP_NAME","createToggleGroupContext","createContextScope","createRovingFocusGroupScope","useRovingFocusGroupScope","ToggleGroup","type","toggleGroupProps","singleProps","ToggleGroupImplSingle","multipleProps","ToggleGroupImplMultiple","ToggleGroupValueProvider","useToggleGroupValueContext","valueProp","defaultValue","onValueChange","toggleGroupSingleProps","value","setValue","ToggleGroupImpl","toggleGroupMultipleProps","handleButtonActivate","itemValue","prevValue","handleButtonDeactivate","value2","ToggleGroupContext","useToggleGroupContext","__scopeToggleGroup","disabled","rovingFocus","orientation","dir","loop","rovingFocusGroupScope","direction","useDirection","commonProps","RovingFocusGroup.Root","ITEM_NAME","ToggleGroupItem","valueContext","context","ref","RovingFocusGroup.Item","ToggleGroupItemImpl","itemProps","typeProps","Root2","Item2","cx","c","styles","rootClassName","ChipGroupItem","allyLabel","children","className","dataTestId","showCheckmark","unavailable","classes","handleClick","e","jsxs","RadixToggleGroup.Item","IconCheckmark","isChipGroupItem","child","isValidElement","isChoiceProps","MIN_CHOICE_OPTIONS","ChipGroup","fullWidth","title","titleProps","name","id","useId","chipGroupItemChildren","Children","clonedChildren","cloneElement","handleValueChange","useEffect","chipGroupChildren","RadixToggleGroup.Root","Heading"],"mappings":"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","x_google_ignoreList":[0,1]}