@purpur/library 9.0.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 +12 -0
  2. package/CHANGELOG.md +8 -1
  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,18 @@
1
1
  {
2
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
+ },
4
16
  {
5
17
  "version": "9.0.0",
6
18
  "tag": "@purpur/library_v9.0.0",
package/CHANGELOG.md CHANGED
@@ -1,6 +1,13 @@
1
1
  # Change Log - @purpur/library
2
2
 
3
- This log was last generated on Thu, 12 Mar 2026 09:14:57 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
4
11
 
5
12
  ## 9.0.0
6
13
  Thu, 12 Mar 2026 09:14:57 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":"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","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]}