@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.
- package/CHANGELOG.json +12 -0
- package/CHANGELOG.md +8 -1
- package/dist/LICENSE.txt +5 -5
- package/dist/checkbox-Dk3bZkZ3.js.map +1 -1
- package/dist/checkbox-LYzMiXu7.mjs.map +1 -1
- package/dist/chip-group-CJVvfl_J.mjs.map +1 -1
- package/dist/chip-group-aj1fdnjC.js.map +1 -1
- package/dist/{date-picker-BRkh2YEH.mjs → date-picker-BRnwwZv1.mjs} +364 -354
- package/dist/date-picker-BRnwwZv1.mjs.map +1 -0
- package/dist/date-picker-DlJGggam.js +2 -0
- package/dist/date-picker-DlJGggam.js.map +1 -0
- package/dist/date-picker.cjs.js +1 -1
- package/dist/date-picker.es.js +1 -1
- package/dist/floating-ui.react-dom-0ol4sFzt.mjs +1363 -0
- package/dist/floating-ui.react-dom-0ol4sFzt.mjs.map +1 -0
- package/dist/floating-ui.react-dom-Cc_YSprQ.js +2 -0
- package/dist/floating-ui.react-dom-Cc_YSprQ.js.map +1 -0
- package/dist/index-2cFVyGXq.js.map +1 -1
- package/dist/index-B8Mazo6u.mjs.map +1 -1
- package/dist/index-BG6K_yAm.js.map +1 -1
- package/dist/index-BVmlsxuF.js.map +1 -1
- package/dist/index-BbtRr5Q6.js.map +1 -1
- package/dist/index-BtWPC8xc.js.map +1 -1
- package/dist/index-ByaXH_ih.mjs.map +1 -1
- package/dist/index-C1AXAWlO.mjs.map +1 -1
- package/dist/index-CCNZ9uWB.mjs.map +1 -1
- package/dist/index-CEQ35j8b.mjs.map +1 -1
- package/dist/index-CKCTy3ZL.mjs.map +1 -1
- package/dist/index-CLMd7NJE.mjs.map +1 -1
- package/dist/index-Cje7xxa1.js.map +1 -1
- package/dist/index-CleLBinl.js.map +1 -1
- package/dist/index-CoR7YA3H.js.map +1 -1
- package/dist/index-CxBG4Ssm.js.map +1 -1
- package/dist/index-DA01QPpC.js.map +1 -1
- package/dist/index-DCcK_d4W.mjs.map +1 -1
- package/dist/index-DDrLXRUs.mjs.map +1 -1
- package/dist/index-DLcqcWxM.mjs.map +1 -1
- package/dist/index-DOFLOnao.js.map +1 -1
- package/dist/index-DOfn3ixy.mjs.map +1 -1
- package/dist/index-DPxjTK4w.mjs.map +1 -1
- package/dist/index-DSf4qCR-.mjs.map +1 -1
- package/dist/index-DlMXYAr3.js.map +1 -1
- package/dist/index-HJvG7FXj.js.map +1 -1
- package/dist/index-Hk_HrrHM.js.map +1 -1
- package/dist/index-IpWiejWQ.mjs.map +1 -1
- package/dist/index-MiRhI3nq.mjs.map +1 -1
- package/dist/index-_XxjJPRD.js.map +1 -1
- package/dist/index-kcwFA4Dv.js.map +1 -1
- package/dist/index-tyLV0iiH.mjs.map +1 -1
- package/dist/label-7sJe5-pX.mjs.map +1 -1
- package/dist/label-yHK80hhV.js.map +1 -1
- package/dist/library.cjs.js +1 -1
- package/dist/library.es.js +5 -5
- package/dist/{popover-CYyCtoef.js → popover-B1BgSoQx.js} +2 -2
- package/dist/{popover-CYyCtoef.js.map → popover-B1BgSoQx.js.map} +1 -1
- package/dist/{popover-C6nZb3cQ.mjs → popover-DBMI9Jy1.mjs} +4 -4
- package/dist/{popover-C6nZb3cQ.mjs.map → popover-DBMI9Jy1.mjs.map} +1 -1
- package/dist/popover.cjs.js +1 -1
- package/dist/popover.es.js +1 -1
- package/dist/slider-CDOrFmK-.mjs.map +1 -1
- package/dist/slider-_R6JmPZl.js.map +1 -1
- package/dist/{stepper-DA0c9Utm.js → stepper-B248FwO-.js} +2 -2
- package/dist/{stepper-DA0c9Utm.js.map → stepper-B248FwO-.js.map} +1 -1
- package/dist/{stepper-D81jmbEf.mjs → stepper-BfIbJwZn.mjs} +2 -2
- package/dist/{stepper-D81jmbEf.mjs.map → stepper-BfIbJwZn.mjs.map} +1 -1
- package/dist/stepper.cjs.js +1 -1
- package/dist/stepper.es.js +1 -1
- package/dist/{table-Dd58bK_Q.js → table-BNeo_B1h.js} +2 -2
- package/dist/{table-Dd58bK_Q.js.map → table-BNeo_B1h.js.map} +1 -1
- package/dist/{table-CIrmGGb2.mjs → table-DvcpczWf.mjs} +2 -2
- package/dist/{table-CIrmGGb2.mjs.map → table-DvcpczWf.mjs.map} +1 -1
- package/dist/table.cjs.js +1 -1
- package/dist/table.es.js +1 -1
- package/dist/tabs-CfHd4UQ2.js.map +1 -1
- package/dist/tabs-CoXMAwMx.mjs.map +1 -1
- package/dist/toggle-C8IwTbX8.js.map +1 -1
- package/dist/toggle-Cezg5MUc.mjs.map +1 -1
- package/dist/{tooltip-870Nmk-v.js → tooltip-CLQLxoaf.js} +2 -2
- package/dist/{tooltip-870Nmk-v.js.map → tooltip-CLQLxoaf.js.map} +1 -1
- package/dist/{tooltip-Cqfj0lSz.mjs → tooltip-DXi7ikUT.mjs} +2 -2
- package/dist/{tooltip-Cqfj0lSz.mjs.map → tooltip-DXi7ikUT.mjs.map} +1 -1
- package/dist/tooltip.cjs.js +1 -1
- package/dist/tooltip.es.js +1 -1
- package/dist/visually-hidden-BYFkJEp1.mjs.map +1 -1
- package/dist/visually-hidden-C2CKovZx.js.map +1 -1
- package/package.json +68 -68
- package/dist/date-picker-BRkh2YEH.mjs.map +0 -1
- package/dist/date-picker-C2Wtf7XQ.js +0 -2
- package/dist/date-picker-C2Wtf7XQ.js.map +0 -1
- package/dist/floating-ui.react-dom-B_rB55Mr.mjs +0 -1340
- package/dist/floating-ui.react-dom-B_rB55Mr.mjs.map +0 -1
- package/dist/floating-ui.react-dom-z0lMBJ4R.js +0 -2
- 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
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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":"ozBAAMA,EAAI,CACR,KAAM,aACN,IAAK,sPACL,SAAU,CAAC,YAAY,EACvB,SAAU,SACZ,ECQA,IAAIC,EAAgB,WAChB,CAACC,CAA0C,EAAIC,EAAAA,mBAAmBF,CAAa,EAC/E,CAACG,EAAkBC,CAAkB,EAAIH,EAAsBD,CAAa,EAC5EK,EAAWC,EAAM,WACnB,CAACC,EAAOC,IAAiB,CACvB,KAAM,CACJ,gBAAAC,EACA,KAAAC,EACA,QAASC,EACT,eAAAC,EACA,SAAAC,EACA,SAAAC,EACA,MAAAC,EAAQ,KACR,gBAAAC,EACA,KAAAC,EACA,GAAGC,CACT,EAAQX,EACE,CAACY,EAAQC,CAAS,EAAId,EAAM,SAAS,IAAI,EACzCe,EAAeC,EAAAA,gBAAgBd,EAAee,GAASH,EAAUG,CAAI,CAAC,EACtEC,EAAmClB,EAAM,OAAO,EAAK,EACrDmB,EAAgBN,EAASF,GAAQ,CAAC,CAACE,EAAO,QAAQ,MAAM,EAAI,GAC5D,CAACO,EAAU,GAAOC,CAAU,EAAIC,EAAAA,qBAAqB,CACzD,KAAMjB,EACN,YAAaC,EACb,SAAUI,CAChB,CAAK,EACKa,EAAyBvB,EAAM,OAAOoB,CAAO,EACnDpB,OAAAA,EAAM,UAAU,IAAM,CACpB,MAAMwB,EAAQX,GAAQ,KACtB,GAAIW,EAAO,CACT,MAAMC,EAAQ,IAAMJ,EAAWE,EAAuB,OAAO,EAC7D,OAAAC,EAAM,iBAAiB,QAASC,CAAK,EAC9B,IAAMD,EAAM,oBAAoB,QAASC,CAAK,CACvD,CACF,EAAG,CAACZ,EAAQQ,CAAU,CAAC,EACAK,EAAAA,KAAK7B,EAAkB,CAAE,MAAOM,EAAiB,MAAOiB,EAAS,SAAAZ,EAAU,SAAU,CAC1FmB,EAAAA,IACdC,EAAAA,UAAU,OACV,CACE,KAAM,SACN,KAAM,WACN,eAAgBC,EAAgBT,CAAO,EAAI,QAAUA,EACrD,gBAAiBb,EACjB,aAAcuB,EAASV,CAAO,EAC9B,gBAAiBZ,EAAW,GAAK,OACjC,SAAAA,EACA,MAAAC,EACA,GAAGG,EACH,IAAKG,EACL,UAAWgB,EAAAA,qBAAqB9B,EAAM,UAAY+B,GAAU,CACtDA,EAAM,MAAQ,SAASA,EAAM,eAAc,CACjD,CAAC,EACD,QAASD,EAAAA,qBAAqB9B,EAAM,QAAU+B,GAAU,CACtDX,EAAYY,GAAgBJ,EAAgBI,CAAW,EAAI,GAAO,CAACA,CAAW,EAC1Ed,IACFD,EAAiC,QAAUc,EAAM,qBAAoB,EAChEd,EAAiC,SAASc,EAAM,gBAAe,EAExE,CAAC,CACX,CACA,EACMb,GAAiCQ,EAAAA,IAC/BO,EACA,CACE,QAASrB,EACT,QAAS,CAACK,EAAiC,QAC3C,KAAAd,EACA,MAAAK,EACA,QAAAW,EACA,SAAAb,EACA,SAAAC,EACA,KAAAG,EACA,MAAO,CAAE,UAAW,mBAAmB,EACvC,eAAgBkB,EAAgBvB,CAAc,EAAI,GAAQA,CACpE,CACA,CACA,EAAO,CACL,CACF,EACAP,EAAS,YAAcL,EACvB,IAAIyC,EAAiB,oBACjBC,EAAoBpC,EAAM,WAC5B,CAACC,EAAOC,IAAiB,CACvB,KAAM,CAAE,gBAAAC,EAAiB,WAAAkC,EAAY,GAAGC,CAAc,EAAKrC,EACrDsC,EAAUzC,EAAmBqC,EAAgBhC,CAAe,EAClE,OAAuBwB,EAAAA,IAAIa,EAAAA,SAAU,CAAE,QAASH,GAAcR,EAAgBU,EAAQ,KAAK,GAAKA,EAAQ,QAAU,GAAM,SAA0BZ,EAAAA,IAChJC,EAAAA,UAAU,KACV,CACE,aAAcE,EAASS,EAAQ,KAAK,EACpC,gBAAiBA,EAAQ,SAAW,GAAK,OACzC,GAAGD,EACH,IAAKpC,EACL,MAAO,CAAE,cAAe,OAAQ,GAAGD,EAAM,KAAK,CACtD,CACA,EAAO,CACL,CACF,EACAmC,EAAkB,YAAcD,EAChC,IAAID,EAAejC,GAAU,CAC3B,KAAM,CAAE,QAAAwC,EAAS,QAAArB,EAAS,QAAAsB,EAAU,GAAM,eAAApC,EAAgB,GAAGqC,CAAU,EAAK1C,EACtE2C,EAAM5C,EAAM,OAAO,IAAI,EACvBiC,EAAcY,EAAAA,YAAYzB,CAAO,EACjC0B,EAAcC,EAAAA,QAAQN,CAAO,EACnCzC,EAAM,UAAU,IAAM,CACpB,MAAMgD,EAAQJ,EAAI,QACZK,EAAa,OAAO,iBAAiB,UAErC5B,EADa,OAAO,yBAAyB4B,EAAY,SAAS,EAC1C,IAC9B,GAAIhB,IAAgBb,GAAWC,EAAY,CACzC,MAAMW,EAAQ,IAAI,MAAM,QAAS,CAAE,QAAAU,CAAO,CAAE,EAC5CM,EAAM,cAAgBnB,EAAgBT,CAAO,EAC7CC,EAAW,KAAK2B,EAAOnB,EAAgBT,CAAO,EAAI,GAAQA,CAAO,EACjE4B,EAAM,cAAchB,CAAK,CAC3B,CACF,EAAG,CAACC,EAAab,EAASsB,CAAO,CAAC,EAClC,MAAMQ,EAAoBlD,EAAM,OAAO6B,EAAgBT,CAAO,EAAI,GAAQA,CAAO,EACjF,OAAuBO,EAAAA,IACrB,QACA,CACE,KAAM,WACN,cAAe,GACf,eAAgBrB,GAAkB4C,EAAkB,QACpD,GAAGP,EACH,SAAU,GACV,IAAAC,EACA,MAAO,CACL,GAAG3C,EAAM,MACT,GAAG6C,EACH,SAAU,WACV,cAAe,OACf,QAAS,EACT,OAAQ,CAChB,CACA,CACA,CACA,EACA,SAASjB,EAAgBT,EAAS,CAChC,OAAOA,IAAY,eACrB,CACA,SAASU,EAASV,EAAS,CACzB,OAAOS,EAAgBT,CAAO,EAAI,gBAAkBA,EAAU,UAAY,WAC5E,CACA,IAAI+B,EAAOpD,EACPqD,GAAYhB,mhBC/IViB,EAAKC,EAAAA,EAAE,KAAKC,EAAM,EAEXC,GAAe,CAAC,gBAAiB,GAAM,EAAK,EA4DnDC,EAAgB,kBAET1D,EAAW2D,EAAAA,WACtB,CACE,CACE,CAAC,eAAgBC,EACjB,QAAAvC,EACA,UAAAwC,EACA,MAAAC,EAAQ,GACR,UAAAC,EAAA,MACAC,EACA,WAAAC,EACA,SAAAC,EACA,GAAGhE,CAAA,EAEL2C,IACG,CACH,MAAMsB,EAAUJ,GAAa,CAAC1C,EACxB+C,EAAkBN,GAAS,CAACzC,EAElC,OACEM,OAAC,MAAA,CAAI,UAAW2B,EAAG,CAAC,GAAGI,CAAa,YAAaG,CAAS,CAAC,EACzD,SAAA,CAAAlC,EAAAA,KAAC,MAAA,CAAI,UAAW2B,EAAG,CAAC,GAAGI,CAAa,cAAeG,CAAS,CAAC,EAC3D,SAAA,CAAAjC,EAAAA,IAACyC,EAAA,CACE,GAAGnE,EACJ,QAAAmB,EACA,UAAWiC,EAAG,CACZI,EACA,CACE,CAAC,GAAGA,CAAa,SAAS,EAAGS,EAC7B,CAAC,GAAGT,CAAa,kBAAkB,EAAGU,CAAA,CACxC,CACD,EACD,cAAaR,EACb,gBAAiBM,EACjB,IAAArB,EAEA,eAAC,OAAA,CAAK,UAAWS,EAAG,GAAGI,CAAa,OAAO,EACzC,SAAA9B,EAAAA,IAAC0C,GAAA,CAAwB,UAAWhB,EAAG,GAAGI,CAAa,aAAa,EACjE,aAAY,gBACX9B,EAAAA,IAAC2C,EAAAA,EAAA,CACC,cAAaX,GAAc,GAAGA,CAAU,gBACxC,KAAK,KACL,IAAKY,CAAA,CAAA,EAGP5C,EAAAA,IAAC2C,EAAAA,EAAA,CACC,cAAaX,GAAc,GAAGA,CAAU,sBACxC,KAAK,KACL,IAAKa,EAAAA,CAAA,CAAA,EAGX,CAAA,CACF,CAAA,CAAA,SAED,OAAA,CAAK,UAAWnB,EAAG,GAAGI,CAAa,mBAAmB,EACpD,SAAA,CAAAM,GACCpC,EAAAA,IAAC8C,EAAAA,MAAA,CACC,QAASxE,EAAM,GACf,cAAa0D,GAAc,GAAGA,CAAU,SACxC,SAAU1D,EAAM,SAEhB,gBAACyE,EAAAA,UAAA,CAAU,QAAQ,gBAAgB,SAAUzE,EAAM,SAChD,SAAA,CAAAA,EAAM,UAAY0B,EAAAA,IAAC,OAAA,CAAK,cAAW,GAAE,SAAA,KAAK,EAC1CoC,CAAA,CAAA,CACH,CAAA,CAAA,EAGHC,GACCrC,EAAAA,IAACgD,EAAAA,gBAAA,CACC,UAAWtB,EAAG,GAAGI,CAAa,UAAU,EACxC,cAAaE,GAAc,GAAGA,CAAU,eACxC,SAAU1D,EAAM,SAChB,GAAI,GAAGA,EAAM,EAAE,eAEd,SAAA+D,CAAA,CAAA,CACH,CAAA,CAEJ,CAAA,EACF,EACCE,SACEU,iBAAA,CAAe,cAAajB,GAAc,GAAGA,CAAU,cACrD,SAAAG,CAAA,CACH,CAAA,EAEJ,CAEJ,CACF,EAEA/D,EAAS,YAAc","x_google_ignoreList":[1]}
|
|
1
|
+
{"version":3,"file":"checkbox-Dk3bZkZ3.js","sources":["../../../components/icon/dist/assets/minus-bold.es.js","../../../common/temp/node_modules/.pnpm/@radix-ui+react-checkbox@1.1.5_@types+react-dom@19.2.3_@types+react@19.2.14__@types+rea_f616ca483e8f11c8b6f09ac94c17a7b2/node_modules/@radix-ui/react-checkbox/dist/index.mjs","../../../components/checkbox/src/checkbox.tsx"],"sourcesContent":["const l = {\n name: \"minus-bold\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M3 12c0-1.105.711-2 1.588-2h14.824c.877 0 1.588.895 1.588 2s-.711 2-1.588 2H4.588C3.711 14 3 13.105 3 12Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"minus-bold\"],\n category: \"utility\"\n};\nexport {\n l as minusBold\n};\n//# sourceMappingURL=minus-bold.es.js.map\n","\"use client\";\n\n// packages/react/checkbox/src/checkbox.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar CHECKBOX_NAME = \"Checkbox\";\nvar [createCheckboxContext, createCheckboxScope] = createContextScope(CHECKBOX_NAME);\nvar [CheckboxProvider, useCheckboxContext] = createCheckboxContext(CHECKBOX_NAME);\nvar Checkbox = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeCheckbox,\n name,\n checked: checkedProp,\n defaultChecked,\n required,\n disabled,\n value = \"on\",\n onCheckedChange,\n form,\n ...checkboxProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n const [checked = false, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked,\n onChange: onCheckedChange\n });\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const form2 = button?.form;\n if (form2) {\n const reset = () => setChecked(initialCheckedStateRef.current);\n form2.addEventListener(\"reset\", reset);\n return () => form2.removeEventListener(\"reset\", reset);\n }\n }, [button, setChecked]);\n return /* @__PURE__ */ jsxs(CheckboxProvider, { scope: __scopeCheckbox, state: checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"checkbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...checkboxProps,\n ref: composedRefs,\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Enter\") event.preventDefault();\n }),\n onClick: composeEventHandlers(props.onClick, (event) => {\n setChecked((prevChecked) => isIndeterminate(prevChecked) ? true : !prevChecked);\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n BubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" },\n defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked\n }\n )\n ] });\n }\n);\nCheckbox.displayName = CHECKBOX_NAME;\nvar INDICATOR_NAME = \"CheckboxIndicator\";\nvar CheckboxIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeCheckbox, forceMount, ...indicatorProps } = props;\n const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isIndeterminate(context.state) || context.state === true, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.state),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...indicatorProps,\n ref: forwardedRef,\n style: { pointerEvents: \"none\", ...props.style }\n }\n ) });\n }\n);\nCheckboxIndicator.displayName = INDICATOR_NAME;\nvar BubbleInput = (props) => {\n const { control, checked, bubbles = true, defaultChecked, ...inputProps } = props;\n const ref = React.useRef(null);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"checked\");\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n input.indeterminate = isIndeterminate(checked);\n setChecked.call(input, isIndeterminate(checked) ? false : checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n const defaultCheckedRef = React.useRef(isIndeterminate(checked) ? false : checked);\n return /* @__PURE__ */ jsx(\n \"input\",\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: defaultChecked ?? defaultCheckedRef.current,\n ...inputProps,\n tabIndex: -1,\n ref,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n};\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nvar Root = Checkbox;\nvar Indicator = CheckboxIndicator;\nexport {\n Checkbox,\n CheckboxIndicator,\n Indicator,\n Root,\n createCheckboxScope\n};\n//# sourceMappingURL=index.mjs.map\n","import React, { forwardRef, type ReactNode } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { FieldErrorText } from \"@purpur/field-error-text\";\nimport { FieldHelperText } from \"@purpur/field-helper-text\";\nimport { Icon } from \"@purpur/icon\";\nimport { checkmarkBold } from \"@purpur/icon/assets/checkmark-bold\";\nimport { minusBold } from \"@purpur/icon/assets/minus-bold\";\nimport { Label } from \"@purpur/label\";\nimport { Paragraph } from \"@purpur/paragraph\";\nimport * as RadixCheckbox from \"@radix-ui/react-checkbox\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./checkbox.module.scss\";\nconst cx = c.bind(styles);\n\nexport const checkedState = [\"indeterminate\", true, false] as const;\n\nexport type CheckedState = (typeof checkedState)[number];\nexport type CheckboxProps = Omit<BaseProps<\"button\">, \"onChange\" | \"children\"> & {\n /**\n * To use with custom label (not recommended).\n * */\n [\"aria-labelledby\"]?: string;\n /**\n * To use when no label is given (not recommended).\n * */\n [\"aria-label\"]?: string;\n checked?: CheckedState;\n /**\n * The checked state of the checkbox when it is initially rendered. Use when you do not need to control its checked state.\n */\n defaultChecked?: boolean;\n /**\n * When `true`, prevents the user from interacting with the checkbox.\n */\n disabled?: boolean;\n /**\n * Use to render error state on the actual checkbox only. No error text below the checkbox will appear and the label will not\n * be shown as an error, unless errorText is set.\n * */\n error?: boolean;\n /**\n * Use to render error message below the checkbox. The checkbox renders with error appearance.\n * */\n errorText?: string;\n /**\n * ID of the checkbox.\n * */\n id: string;\n /**\n * The label of the checkbox. Label can't be a block element\n * */\n label?: ReactNode;\n /**\n * The name of the checkbox. Submitted with its owning form as part of a name/value pair.\n * */\n name?: string;\n /**\n * The helper text displayed below the checkbox.\n */\n helperText?: string;\n /**\n * Event handler called when the checked state of the checkbox changes.\n * */\n onChange?: (value: CheckedState) => void;\n /**\n * When `true`, indicates that the user must check the checkbox before the owning form can be submitted.\n * */\n required?: boolean;\n /**\n * The value given as data when submitted with a name.\n * */\n value?: string;\n};\n\nconst rootClassName = \"purpur-checkbox\";\n\nexport const Checkbox = forwardRef<HTMLButtonElement, CheckboxProps>(\n (\n {\n [\"data-testid\"]: dataTestId,\n checked,\n className,\n error = false,\n errorText,\n label,\n helperText,\n onChange,\n ...props\n },\n ref\n ) => {\n const isError = errorText && !checked;\n const isCheckboxError = error && !checked;\n\n return (\n <div className={cx([`${rootClassName}__wrapper`, className])}>\n <div className={cx([`${rootClassName}__container`, className])}>\n <RadixCheckbox.Root\n {...props}\n checked={checked}\n className={cx([\n rootClassName,\n {\n [`${rootClassName}--error`]: isError,\n [`${rootClassName}--error-checkbox`]: isCheckboxError,\n },\n ])}\n data-testid={dataTestId}\n onCheckedChange={onChange}\n ref={ref}\n >\n <span className={cx(`${rootClassName}__box`)}>\n <RadixCheckbox.Indicator className={cx(`${rootClassName}__indicator`)}>\n {checked === \"indeterminate\" ? (\n <Icon\n data-testid={dataTestId && `${dataTestId}-checked-icon`}\n size=\"xs\"\n svg={minusBold}\n />\n ) : (\n <Icon\n data-testid={dataTestId && `${dataTestId}-indeterminate-icon`}\n size=\"xs\"\n svg={checkmarkBold}\n />\n )}\n </RadixCheckbox.Indicator>\n </span>\n </RadixCheckbox.Root>\n <span className={cx(`${rootClassName}__label-container`)}>\n {label && (\n <Label\n htmlFor={props.id}\n data-testid={dataTestId && `${dataTestId}-label`}\n disabled={props.disabled}\n >\n <Paragraph variant=\"paragraph-100\" disabled={props.disabled}>\n {props.required && <span aria-hidden>{\"* \"}</span>}\n {label}\n </Paragraph>\n </Label>\n )}\n {helperText && (\n <FieldHelperText\n className={cx(`${rootClassName}__helper`)}\n data-testid={dataTestId && `${dataTestId}-helper-text`}\n disabled={props.disabled}\n id={`${props.id}-helper-text`}\n >\n {helperText}\n </FieldHelperText>\n )}\n </span>\n </div>\n {isError && (\n <FieldErrorText data-testid={dataTestId && `${dataTestId}-error-text`}>\n {errorText}\n </FieldErrorText>\n )}\n </div>\n );\n }\n);\n\nCheckbox.displayName = \"Checkbox\";\n"],"names":["l","CHECKBOX_NAME","createCheckboxContext","createContextScope","CheckboxProvider","useCheckboxContext","Checkbox","React","props","forwardedRef","__scopeCheckbox","name","checkedProp","defaultChecked","required","disabled","value","onCheckedChange","form","checkboxProps","button","setButton","composedRefs","useComposedRefs","node","hasConsumerStoppedPropagationRef","isFormControl","checked","setChecked","useControllableState","initialCheckedStateRef","form2","reset","jsxs","jsx","Primitive","isIndeterminate","getState","composeEventHandlers","event","prevChecked","BubbleInput","INDICATOR_NAME","CheckboxIndicator","forceMount","indicatorProps","context","Presence","control","bubbles","inputProps","ref","usePrevious","controlSize","useSize","input","inputProto","defaultCheckedRef","Root","Indicator","cx","c","styles","checkedState","rootClassName","forwardRef","dataTestId","className","error","errorText","label","helperText","onChange","isError","isCheckboxError","RadixCheckbox.Root","RadixCheckbox.Indicator","Icon","minusBold","checkmarkBold","Label","Paragraph","FieldHelperText","FieldErrorText"],"mappings":"ozBAAMA,EAAI,CACR,KAAM,aACN,IAAK,sPACL,SAAU,CAAC,YAAY,EACvB,SAAU,SACZ,ECQA,IAAIC,EAAgB,WAChB,CAACC,CAA0C,EAAIC,EAAAA,mBAAmBF,CAAa,EAC/E,CAACG,EAAkBC,CAAkB,EAAIH,EAAsBD,CAAa,EAC5EK,EAAWC,EAAM,WACnB,CAACC,EAAOC,IAAiB,CACvB,KAAM,CACJ,gBAAAC,EACA,KAAAC,EACA,QAASC,EACT,eAAAC,EACA,SAAAC,EACA,SAAAC,EACA,MAAAC,EAAQ,KACR,gBAAAC,EACA,KAAAC,EACA,GAAGC,CACT,EAAQX,EACE,CAACY,EAAQC,CAAS,EAAId,EAAM,SAAS,IAAI,EACzCe,EAAeC,EAAAA,gBAAgBd,EAAee,GAASH,EAAUG,CAAI,CAAC,EACtEC,EAAmClB,EAAM,OAAO,EAAK,EACrDmB,EAAgBN,EAASF,GAAQ,CAAC,CAACE,EAAO,QAAQ,MAAM,EAAI,GAC5D,CAACO,EAAU,GAAOC,CAAU,EAAIC,EAAAA,qBAAqB,CACzD,KAAMjB,EACN,YAAaC,EACb,SAAUI,CAChB,CAAK,EACKa,EAAyBvB,EAAM,OAAOoB,CAAO,EACnDpB,OAAAA,EAAM,UAAU,IAAM,CACpB,MAAMwB,EAAQX,GAAQ,KACtB,GAAIW,EAAO,CACT,MAAMC,EAAQ,IAAMJ,EAAWE,EAAuB,OAAO,EAC7D,OAAAC,EAAM,iBAAiB,QAASC,CAAK,EAC9B,IAAMD,EAAM,oBAAoB,QAASC,CAAK,CACvD,CACF,EAAG,CAACZ,EAAQQ,CAAU,CAAC,EACAK,EAAAA,KAAK7B,EAAkB,CAAE,MAAOM,EAAiB,MAAOiB,EAAS,SAAAZ,EAAU,SAAU,CAC1FmB,EAAAA,IACdC,EAAAA,UAAU,OACV,CACE,KAAM,SACN,KAAM,WACN,eAAgBC,EAAgBT,CAAO,EAAI,QAAUA,EACrD,gBAAiBb,EACjB,aAAcuB,EAASV,CAAO,EAC9B,gBAAiBZ,EAAW,GAAK,OACjC,SAAAA,EACA,MAAAC,EACA,GAAGG,EACH,IAAKG,EACL,UAAWgB,EAAAA,qBAAqB9B,EAAM,UAAY+B,GAAU,CACtDA,EAAM,MAAQ,SAASA,EAAM,eAAc,CACjD,CAAC,EACD,QAASD,EAAAA,qBAAqB9B,EAAM,QAAU+B,GAAU,CACtDX,EAAYY,GAAgBJ,EAAgBI,CAAW,EAAI,GAAO,CAACA,CAAW,EAC1Ed,IACFD,EAAiC,QAAUc,EAAM,qBAAoB,EAChEd,EAAiC,SAASc,EAAM,gBAAe,EAExE,CAAC,CACX,CACA,EACMb,GAAiCQ,EAAAA,IAC/BO,EACA,CACE,QAASrB,EACT,QAAS,CAACK,EAAiC,QAC3C,KAAAd,EACA,MAAAK,EACA,QAAAW,EACA,SAAAb,EACA,SAAAC,EACA,KAAAG,EACA,MAAO,CAAE,UAAW,mBAAmB,EACvC,eAAgBkB,EAAgBvB,CAAc,EAAI,GAAQA,CACpE,CACA,CACA,EAAO,CACL,CACF,EACAP,EAAS,YAAcL,EACvB,IAAIyC,EAAiB,oBACjBC,EAAoBpC,EAAM,WAC5B,CAACC,EAAOC,IAAiB,CACvB,KAAM,CAAE,gBAAAC,EAAiB,WAAAkC,EAAY,GAAGC,CAAc,EAAKrC,EACrDsC,EAAUzC,EAAmBqC,EAAgBhC,CAAe,EAClE,OAAuBwB,EAAAA,IAAIa,EAAAA,SAAU,CAAE,QAASH,GAAcR,EAAgBU,EAAQ,KAAK,GAAKA,EAAQ,QAAU,GAAM,SAA0BZ,EAAAA,IAChJC,EAAAA,UAAU,KACV,CACE,aAAcE,EAASS,EAAQ,KAAK,EACpC,gBAAiBA,EAAQ,SAAW,GAAK,OACzC,GAAGD,EACH,IAAKpC,EACL,MAAO,CAAE,cAAe,OAAQ,GAAGD,EAAM,KAAK,CACtD,CACA,EAAO,CACL,CACF,EACAmC,EAAkB,YAAcD,EAChC,IAAID,EAAejC,GAAU,CAC3B,KAAM,CAAE,QAAAwC,EAAS,QAAArB,EAAS,QAAAsB,EAAU,GAAM,eAAApC,EAAgB,GAAGqC,CAAU,EAAK1C,EACtE2C,EAAM5C,EAAM,OAAO,IAAI,EACvBiC,EAAcY,EAAAA,YAAYzB,CAAO,EACjC0B,EAAcC,EAAAA,QAAQN,CAAO,EACnCzC,EAAM,UAAU,IAAM,CACpB,MAAMgD,EAAQJ,EAAI,QACZK,EAAa,OAAO,iBAAiB,UAErC5B,EADa,OAAO,yBAAyB4B,EAAY,SAAS,EAC1C,IAC9B,GAAIhB,IAAgBb,GAAWC,EAAY,CACzC,MAAMW,EAAQ,IAAI,MAAM,QAAS,CAAE,QAAAU,CAAO,CAAE,EAC5CM,EAAM,cAAgBnB,EAAgBT,CAAO,EAC7CC,EAAW,KAAK2B,EAAOnB,EAAgBT,CAAO,EAAI,GAAQA,CAAO,EACjE4B,EAAM,cAAchB,CAAK,CAC3B,CACF,EAAG,CAACC,EAAab,EAASsB,CAAO,CAAC,EAClC,MAAMQ,EAAoBlD,EAAM,OAAO6B,EAAgBT,CAAO,EAAI,GAAQA,CAAO,EACjF,OAAuBO,EAAAA,IACrB,QACA,CACE,KAAM,WACN,cAAe,GACf,eAAgBrB,GAAkB4C,EAAkB,QACpD,GAAGP,EACH,SAAU,GACV,IAAAC,EACA,MAAO,CACL,GAAG3C,EAAM,MACT,GAAG6C,EACH,SAAU,WACV,cAAe,OACf,QAAS,EACT,OAAQ,CAChB,CACA,CACA,CACA,EACA,SAASjB,EAAgBT,EAAS,CAChC,OAAOA,IAAY,eACrB,CACA,SAASU,EAASV,EAAS,CACzB,OAAOS,EAAgBT,CAAO,EAAI,gBAAkBA,EAAU,UAAY,WAC5E,CACA,IAAI+B,EAAOpD,EACPqD,GAAYhB,mhBC/IViB,EAAKC,EAAAA,EAAE,KAAKC,EAAM,EAEXC,GAAe,CAAC,gBAAiB,GAAM,EAAK,EA4DnDC,EAAgB,kBAET1D,EAAW2D,EAAAA,WACtB,CACE,CACE,CAAC,eAAgBC,EACjB,QAAAvC,EACA,UAAAwC,EACA,MAAAC,EAAQ,GACR,UAAAC,EAAA,MACAC,EACA,WAAAC,EACA,SAAAC,EACA,GAAGhE,CAAA,EAEL2C,IACG,CACH,MAAMsB,EAAUJ,GAAa,CAAC1C,EACxB+C,EAAkBN,GAAS,CAACzC,EAElC,OACEM,OAAC,MAAA,CAAI,UAAW2B,EAAG,CAAC,GAAGI,CAAa,YAAaG,CAAS,CAAC,EACzD,SAAA,CAAAlC,EAAAA,KAAC,MAAA,CAAI,UAAW2B,EAAG,CAAC,GAAGI,CAAa,cAAeG,CAAS,CAAC,EAC3D,SAAA,CAAAjC,EAAAA,IAACyC,EAAA,CACE,GAAGnE,EACJ,QAAAmB,EACA,UAAWiC,EAAG,CACZI,EACA,CACE,CAAC,GAAGA,CAAa,SAAS,EAAGS,EAC7B,CAAC,GAAGT,CAAa,kBAAkB,EAAGU,CAAA,CACxC,CACD,EACD,cAAaR,EACb,gBAAiBM,EACjB,IAAArB,EAEA,eAAC,OAAA,CAAK,UAAWS,EAAG,GAAGI,CAAa,OAAO,EACzC,SAAA9B,EAAAA,IAAC0C,GAAA,CAAwB,UAAWhB,EAAG,GAAGI,CAAa,aAAa,EACjE,aAAY,gBACX9B,EAAAA,IAAC2C,EAAAA,EAAA,CACC,cAAaX,GAAc,GAAGA,CAAU,gBACxC,KAAK,KACL,IAAKY,CAAA,CAAA,EAGP5C,EAAAA,IAAC2C,EAAAA,EAAA,CACC,cAAaX,GAAc,GAAGA,CAAU,sBACxC,KAAK,KACL,IAAKa,EAAAA,CAAA,CAAA,EAGX,CAAA,CACF,CAAA,CAAA,SAED,OAAA,CAAK,UAAWnB,EAAG,GAAGI,CAAa,mBAAmB,EACpD,SAAA,CAAAM,GACCpC,EAAAA,IAAC8C,EAAAA,MAAA,CACC,QAASxE,EAAM,GACf,cAAa0D,GAAc,GAAGA,CAAU,SACxC,SAAU1D,EAAM,SAEhB,gBAACyE,EAAAA,UAAA,CAAU,QAAQ,gBAAgB,SAAUzE,EAAM,SAChD,SAAA,CAAAA,EAAM,UAAY0B,EAAAA,IAAC,OAAA,CAAK,cAAW,GAAE,SAAA,KAAK,EAC1CoC,CAAA,CAAA,CACH,CAAA,CAAA,EAGHC,GACCrC,EAAAA,IAACgD,EAAAA,gBAAA,CACC,UAAWtB,EAAG,GAAGI,CAAa,UAAU,EACxC,cAAaE,GAAc,GAAGA,CAAU,eACxC,SAAU1D,EAAM,SAChB,GAAI,GAAGA,EAAM,EAAE,eAEd,SAAA+D,CAAA,CAAA,CACH,CAAA,CAEJ,CAAA,EACF,EACCE,SACEU,iBAAA,CAAe,cAAajB,GAAc,GAAGA,CAAU,cACrD,SAAAG,CAAA,CACH,CAAA,EAEJ,CAEJ,CACF,EAEA/D,EAAS,YAAc","x_google_ignoreList":[1]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox-LYzMiXu7.mjs","sources":["../../../components/icon/dist/assets/minus-bold.es.js","../../../common/temp/node_modules/.pnpm/@radix-ui+react-checkbox@1.1.5_@types+react-dom@19.2.3_@types+react@19.2.10__@types+rea_7d7c8acb6bd594327a255e9f07e4d0ca/node_modules/@radix-ui/react-checkbox/dist/index.mjs","../../../components/checkbox/src/checkbox.tsx"],"sourcesContent":["const l = {\n name: \"minus-bold\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M3 12c0-1.105.711-2 1.588-2h14.824c.877 0 1.588.895 1.588 2s-.711 2-1.588 2H4.588C3.711 14 3 13.105 3 12Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"minus-bold\"],\n category: \"utility\"\n};\nexport {\n l as minusBold\n};\n//# sourceMappingURL=minus-bold.es.js.map\n","\"use client\";\n\n// packages/react/checkbox/src/checkbox.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar CHECKBOX_NAME = \"Checkbox\";\nvar [createCheckboxContext, createCheckboxScope] = createContextScope(CHECKBOX_NAME);\nvar [CheckboxProvider, useCheckboxContext] = createCheckboxContext(CHECKBOX_NAME);\nvar Checkbox = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeCheckbox,\n name,\n checked: checkedProp,\n defaultChecked,\n required,\n disabled,\n value = \"on\",\n onCheckedChange,\n form,\n ...checkboxProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n const [checked = false, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked,\n onChange: onCheckedChange\n });\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const form2 = button?.form;\n if (form2) {\n const reset = () => setChecked(initialCheckedStateRef.current);\n form2.addEventListener(\"reset\", reset);\n return () => form2.removeEventListener(\"reset\", reset);\n }\n }, [button, setChecked]);\n return /* @__PURE__ */ jsxs(CheckboxProvider, { scope: __scopeCheckbox, state: checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"checkbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...checkboxProps,\n ref: composedRefs,\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Enter\") event.preventDefault();\n }),\n onClick: composeEventHandlers(props.onClick, (event) => {\n setChecked((prevChecked) => isIndeterminate(prevChecked) ? true : !prevChecked);\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n BubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" },\n defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked\n }\n )\n ] });\n }\n);\nCheckbox.displayName = CHECKBOX_NAME;\nvar INDICATOR_NAME = \"CheckboxIndicator\";\nvar CheckboxIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeCheckbox, forceMount, ...indicatorProps } = props;\n const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isIndeterminate(context.state) || context.state === true, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.state),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...indicatorProps,\n ref: forwardedRef,\n style: { pointerEvents: \"none\", ...props.style }\n }\n ) });\n }\n);\nCheckboxIndicator.displayName = INDICATOR_NAME;\nvar BubbleInput = (props) => {\n const { control, checked, bubbles = true, defaultChecked, ...inputProps } = props;\n const ref = React.useRef(null);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"checked\");\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n input.indeterminate = isIndeterminate(checked);\n setChecked.call(input, isIndeterminate(checked) ? false : checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n const defaultCheckedRef = React.useRef(isIndeterminate(checked) ? false : checked);\n return /* @__PURE__ */ jsx(\n \"input\",\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: defaultChecked ?? defaultCheckedRef.current,\n ...inputProps,\n tabIndex: -1,\n ref,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n};\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nvar Root = Checkbox;\nvar Indicator = CheckboxIndicator;\nexport {\n Checkbox,\n CheckboxIndicator,\n Indicator,\n Root,\n createCheckboxScope\n};\n//# sourceMappingURL=index.mjs.map\n","import React, { forwardRef, type ReactNode } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { FieldErrorText } from \"@purpur/field-error-text\";\nimport { FieldHelperText } from \"@purpur/field-helper-text\";\nimport { Icon } from \"@purpur/icon\";\nimport { checkmarkBold } from \"@purpur/icon/assets/checkmark-bold\";\nimport { minusBold } from \"@purpur/icon/assets/minus-bold\";\nimport { Label } from \"@purpur/label\";\nimport { Paragraph } from \"@purpur/paragraph\";\nimport * as RadixCheckbox from \"@radix-ui/react-checkbox\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./checkbox.module.scss\";\nconst cx = c.bind(styles);\n\nexport const checkedState = [\"indeterminate\", true, false] as const;\n\nexport type CheckedState = (typeof checkedState)[number];\nexport type CheckboxProps = Omit<BaseProps<\"button\">, \"onChange\" | \"children\"> & {\n /**\n * To use with custom label (not recommended).\n * */\n [\"aria-labelledby\"]?: string;\n /**\n * To use when no label is given (not recommended).\n * */\n [\"aria-label\"]?: string;\n checked?: CheckedState;\n /**\n * The checked state of the checkbox when it is initially rendered. Use when you do not need to control its checked state.\n */\n defaultChecked?: boolean;\n /**\n * When `true`, prevents the user from interacting with the checkbox.\n */\n disabled?: boolean;\n /**\n * Use to render error state on the actual checkbox only. No error text below the checkbox will appear and the label will not\n * be shown as an error, unless errorText is set.\n * */\n error?: boolean;\n /**\n * Use to render error message below the checkbox. The checkbox renders with error appearance.\n * */\n errorText?: string;\n /**\n * ID of the checkbox.\n * */\n id: string;\n /**\n * The label of the checkbox. Label can't be a block element\n * */\n label?: ReactNode;\n /**\n * The name of the checkbox. Submitted with its owning form as part of a name/value pair.\n * */\n name?: string;\n /**\n * The helper text displayed below the checkbox.\n */\n helperText?: string;\n /**\n * Event handler called when the checked state of the checkbox changes.\n * */\n onChange?: (value: CheckedState) => void;\n /**\n * When `true`, indicates that the user must check the checkbox before the owning form can be submitted.\n * */\n required?: boolean;\n /**\n * The value given as data when submitted with a name.\n * */\n value?: string;\n};\n\nconst rootClassName = \"purpur-checkbox\";\n\nexport const Checkbox = forwardRef<HTMLButtonElement, CheckboxProps>(\n (\n {\n [\"data-testid\"]: dataTestId,\n checked,\n className,\n error = false,\n errorText,\n label,\n helperText,\n onChange,\n ...props\n },\n ref\n ) => {\n const isError = errorText && !checked;\n const isCheckboxError = error && !checked;\n\n return (\n <div className={cx([`${rootClassName}__wrapper`, className])}>\n <div className={cx([`${rootClassName}__container`, className])}>\n <RadixCheckbox.Root\n {...props}\n checked={checked}\n className={cx([\n rootClassName,\n {\n [`${rootClassName}--error`]: isError,\n [`${rootClassName}--error-checkbox`]: isCheckboxError,\n },\n ])}\n data-testid={dataTestId}\n onCheckedChange={onChange}\n ref={ref}\n >\n <span className={cx(`${rootClassName}__box`)}>\n <RadixCheckbox.Indicator className={cx(`${rootClassName}__indicator`)}>\n {checked === \"indeterminate\" ? (\n <Icon\n data-testid={dataTestId && `${dataTestId}-checked-icon`}\n size=\"xs\"\n svg={minusBold}\n />\n ) : (\n <Icon\n data-testid={dataTestId && `${dataTestId}-indeterminate-icon`}\n size=\"xs\"\n svg={checkmarkBold}\n />\n )}\n </RadixCheckbox.Indicator>\n </span>\n </RadixCheckbox.Root>\n <span className={cx(`${rootClassName}__label-container`)}>\n {label && (\n <Label\n htmlFor={props.id}\n data-testid={dataTestId && `${dataTestId}-label`}\n disabled={props.disabled}\n >\n <Paragraph variant=\"paragraph-100\" disabled={props.disabled}>\n {props.required && <span aria-hidden>{\"* \"}</span>}\n {label}\n </Paragraph>\n </Label>\n )}\n {helperText && (\n <FieldHelperText\n className={cx(`${rootClassName}__helper`)}\n data-testid={dataTestId && `${dataTestId}-helper-text`}\n disabled={props.disabled}\n id={`${props.id}-helper-text`}\n >\n {helperText}\n </FieldHelperText>\n )}\n </span>\n </div>\n {isError && (\n <FieldErrorText data-testid={dataTestId && `${dataTestId}-error-text`}>\n {errorText}\n </FieldErrorText>\n )}\n </div>\n );\n }\n);\n\nCheckbox.displayName = \"Checkbox\";\n"],"names":["l","CHECKBOX_NAME","createCheckboxContext","createContextScope","CheckboxProvider","useCheckboxContext","Checkbox","React","props","forwardedRef","__scopeCheckbox","name","checkedProp","defaultChecked","required","disabled","value","onCheckedChange","form","checkboxProps","button","setButton","composedRefs","useComposedRefs","node","hasConsumerStoppedPropagationRef","isFormControl","checked","setChecked","useControllableState","initialCheckedStateRef","form2","reset","jsxs","jsx","Primitive","isIndeterminate","getState","composeEventHandlers","event","prevChecked","BubbleInput","INDICATOR_NAME","CheckboxIndicator","forceMount","indicatorProps","context","Presence","control","bubbles","inputProps","ref","usePrevious","controlSize","useSize","input","inputProto","defaultCheckedRef","Root","Indicator","cx","c","styles","checkedState","rootClassName","forwardRef","dataTestId","className","error","errorText","label","helperText","onChange","isError","isCheckboxError","RadixCheckbox.Root","RadixCheckbox.Indicator","Icon","minusBold","checkmarkBold","Label","Paragraph","FieldHelperText","FieldErrorText"],"mappings":"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","x_google_ignoreList":[1]}
|
|
1
|
+
{"version":3,"file":"checkbox-LYzMiXu7.mjs","sources":["../../../components/icon/dist/assets/minus-bold.es.js","../../../common/temp/node_modules/.pnpm/@radix-ui+react-checkbox@1.1.5_@types+react-dom@19.2.3_@types+react@19.2.14__@types+rea_f616ca483e8f11c8b6f09ac94c17a7b2/node_modules/@radix-ui/react-checkbox/dist/index.mjs","../../../components/checkbox/src/checkbox.tsx"],"sourcesContent":["const l = {\n name: \"minus-bold\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M3 12c0-1.105.711-2 1.588-2h14.824c.877 0 1.588.895 1.588 2s-.711 2-1.588 2H4.588C3.711 14 3 13.105 3 12Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"minus-bold\"],\n category: \"utility\"\n};\nexport {\n l as minusBold\n};\n//# sourceMappingURL=minus-bold.es.js.map\n","\"use client\";\n\n// packages/react/checkbox/src/checkbox.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar CHECKBOX_NAME = \"Checkbox\";\nvar [createCheckboxContext, createCheckboxScope] = createContextScope(CHECKBOX_NAME);\nvar [CheckboxProvider, useCheckboxContext] = createCheckboxContext(CHECKBOX_NAME);\nvar Checkbox = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeCheckbox,\n name,\n checked: checkedProp,\n defaultChecked,\n required,\n disabled,\n value = \"on\",\n onCheckedChange,\n form,\n ...checkboxProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n const [checked = false, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked,\n onChange: onCheckedChange\n });\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const form2 = button?.form;\n if (form2) {\n const reset = () => setChecked(initialCheckedStateRef.current);\n form2.addEventListener(\"reset\", reset);\n return () => form2.removeEventListener(\"reset\", reset);\n }\n }, [button, setChecked]);\n return /* @__PURE__ */ jsxs(CheckboxProvider, { scope: __scopeCheckbox, state: checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"checkbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...checkboxProps,\n ref: composedRefs,\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Enter\") event.preventDefault();\n }),\n onClick: composeEventHandlers(props.onClick, (event) => {\n setChecked((prevChecked) => isIndeterminate(prevChecked) ? true : !prevChecked);\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n BubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" },\n defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked\n }\n )\n ] });\n }\n);\nCheckbox.displayName = CHECKBOX_NAME;\nvar INDICATOR_NAME = \"CheckboxIndicator\";\nvar CheckboxIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeCheckbox, forceMount, ...indicatorProps } = props;\n const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isIndeterminate(context.state) || context.state === true, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.state),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...indicatorProps,\n ref: forwardedRef,\n style: { pointerEvents: \"none\", ...props.style }\n }\n ) });\n }\n);\nCheckboxIndicator.displayName = INDICATOR_NAME;\nvar BubbleInput = (props) => {\n const { control, checked, bubbles = true, defaultChecked, ...inputProps } = props;\n const ref = React.useRef(null);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"checked\");\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n input.indeterminate = isIndeterminate(checked);\n setChecked.call(input, isIndeterminate(checked) ? false : checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n const defaultCheckedRef = React.useRef(isIndeterminate(checked) ? false : checked);\n return /* @__PURE__ */ jsx(\n \"input\",\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: defaultChecked ?? defaultCheckedRef.current,\n ...inputProps,\n tabIndex: -1,\n ref,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n};\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nvar Root = Checkbox;\nvar Indicator = CheckboxIndicator;\nexport {\n Checkbox,\n CheckboxIndicator,\n Indicator,\n Root,\n createCheckboxScope\n};\n//# sourceMappingURL=index.mjs.map\n","import React, { forwardRef, type ReactNode } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { FieldErrorText } from \"@purpur/field-error-text\";\nimport { FieldHelperText } from \"@purpur/field-helper-text\";\nimport { Icon } from \"@purpur/icon\";\nimport { checkmarkBold } from \"@purpur/icon/assets/checkmark-bold\";\nimport { minusBold } from \"@purpur/icon/assets/minus-bold\";\nimport { Label } from \"@purpur/label\";\nimport { Paragraph } from \"@purpur/paragraph\";\nimport * as RadixCheckbox from \"@radix-ui/react-checkbox\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./checkbox.module.scss\";\nconst cx = c.bind(styles);\n\nexport const checkedState = [\"indeterminate\", true, false] as const;\n\nexport type CheckedState = (typeof checkedState)[number];\nexport type CheckboxProps = Omit<BaseProps<\"button\">, \"onChange\" | \"children\"> & {\n /**\n * To use with custom label (not recommended).\n * */\n [\"aria-labelledby\"]?: string;\n /**\n * To use when no label is given (not recommended).\n * */\n [\"aria-label\"]?: string;\n checked?: CheckedState;\n /**\n * The checked state of the checkbox when it is initially rendered. Use when you do not need to control its checked state.\n */\n defaultChecked?: boolean;\n /**\n * When `true`, prevents the user from interacting with the checkbox.\n */\n disabled?: boolean;\n /**\n * Use to render error state on the actual checkbox only. No error text below the checkbox will appear and the label will not\n * be shown as an error, unless errorText is set.\n * */\n error?: boolean;\n /**\n * Use to render error message below the checkbox. The checkbox renders with error appearance.\n * */\n errorText?: string;\n /**\n * ID of the checkbox.\n * */\n id: string;\n /**\n * The label of the checkbox. Label can't be a block element\n * */\n label?: ReactNode;\n /**\n * The name of the checkbox. Submitted with its owning form as part of a name/value pair.\n * */\n name?: string;\n /**\n * The helper text displayed below the checkbox.\n */\n helperText?: string;\n /**\n * Event handler called when the checked state of the checkbox changes.\n * */\n onChange?: (value: CheckedState) => void;\n /**\n * When `true`, indicates that the user must check the checkbox before the owning form can be submitted.\n * */\n required?: boolean;\n /**\n * The value given as data when submitted with a name.\n * */\n value?: string;\n};\n\nconst rootClassName = \"purpur-checkbox\";\n\nexport const Checkbox = forwardRef<HTMLButtonElement, CheckboxProps>(\n (\n {\n [\"data-testid\"]: dataTestId,\n checked,\n className,\n error = false,\n errorText,\n label,\n helperText,\n onChange,\n ...props\n },\n ref\n ) => {\n const isError = errorText && !checked;\n const isCheckboxError = error && !checked;\n\n return (\n <div className={cx([`${rootClassName}__wrapper`, className])}>\n <div className={cx([`${rootClassName}__container`, className])}>\n <RadixCheckbox.Root\n {...props}\n checked={checked}\n className={cx([\n rootClassName,\n {\n [`${rootClassName}--error`]: isError,\n [`${rootClassName}--error-checkbox`]: isCheckboxError,\n },\n ])}\n data-testid={dataTestId}\n onCheckedChange={onChange}\n ref={ref}\n >\n <span className={cx(`${rootClassName}__box`)}>\n <RadixCheckbox.Indicator className={cx(`${rootClassName}__indicator`)}>\n {checked === \"indeterminate\" ? (\n <Icon\n data-testid={dataTestId && `${dataTestId}-checked-icon`}\n size=\"xs\"\n svg={minusBold}\n />\n ) : (\n <Icon\n data-testid={dataTestId && `${dataTestId}-indeterminate-icon`}\n size=\"xs\"\n svg={checkmarkBold}\n />\n )}\n </RadixCheckbox.Indicator>\n </span>\n </RadixCheckbox.Root>\n <span className={cx(`${rootClassName}__label-container`)}>\n {label && (\n <Label\n htmlFor={props.id}\n data-testid={dataTestId && `${dataTestId}-label`}\n disabled={props.disabled}\n >\n <Paragraph variant=\"paragraph-100\" disabled={props.disabled}>\n {props.required && <span aria-hidden>{\"* \"}</span>}\n {label}\n </Paragraph>\n </Label>\n )}\n {helperText && (\n <FieldHelperText\n className={cx(`${rootClassName}__helper`)}\n data-testid={dataTestId && `${dataTestId}-helper-text`}\n disabled={props.disabled}\n id={`${props.id}-helper-text`}\n >\n {helperText}\n </FieldHelperText>\n )}\n </span>\n </div>\n {isError && (\n <FieldErrorText data-testid={dataTestId && `${dataTestId}-error-text`}>\n {errorText}\n </FieldErrorText>\n )}\n </div>\n );\n }\n);\n\nCheckbox.displayName = \"Checkbox\";\n"],"names":["l","CHECKBOX_NAME","createCheckboxContext","createContextScope","CheckboxProvider","useCheckboxContext","Checkbox","React","props","forwardedRef","__scopeCheckbox","name","checkedProp","defaultChecked","required","disabled","value","onCheckedChange","form","checkboxProps","button","setButton","composedRefs","useComposedRefs","node","hasConsumerStoppedPropagationRef","isFormControl","checked","setChecked","useControllableState","initialCheckedStateRef","form2","reset","jsxs","jsx","Primitive","isIndeterminate","getState","composeEventHandlers","event","prevChecked","BubbleInput","INDICATOR_NAME","CheckboxIndicator","forceMount","indicatorProps","context","Presence","control","bubbles","inputProps","ref","usePrevious","controlSize","useSize","input","inputProto","defaultCheckedRef","Root","Indicator","cx","c","styles","checkedState","rootClassName","forwardRef","dataTestId","className","error","errorText","label","helperText","onChange","isError","isCheckboxError","RadixCheckbox.Root","RadixCheckbox.Indicator","Icon","minusBold","checkmarkBold","Label","Paragraph","FieldHelperText","FieldErrorText"],"mappings":"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","x_google_ignoreList":[1]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chip-group-CJVvfl_J.mjs","sources":["../../../common/temp/node_modules/.pnpm/@radix-ui+react-toggle@1.1.10_@types+react-dom@19.2.3_@types+react@19.2.10__@types+reac_ac954931be38b8943a4772f30be6b8cd/node_modules/@radix-ui/react-toggle/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-toggle-group@1.1.11_@types+react-dom@19.2.3_@types+react@19.2.10__@type_1c3e06769648befb283f52b0de4ae8b0/node_modules/@radix-ui/react-toggle-group/dist/index.mjs","../../../components/chip-group/src/chip-group-item.tsx","../../../components/chip-group/src/chip-group.tsx"],"sourcesContent":["\"use client\";\n\n// src/toggle.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Toggle\";\nvar Toggle = React.forwardRef((props, forwardedRef) => {\n const { pressed: pressedProp, defaultPressed, onPressedChange, ...buttonProps } = props;\n const [pressed, setPressed] = useControllableState({\n prop: pressedProp,\n onChange: onPressedChange,\n defaultProp: defaultPressed ?? false,\n caller: NAME\n });\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n \"aria-pressed\": pressed,\n \"data-state\": pressed ? \"on\" : \"off\",\n \"data-disabled\": props.disabled ? \"\" : void 0,\n ...buttonProps,\n ref: forwardedRef,\n onClick: composeEventHandlers(props.onClick, () => {\n if (!props.disabled) {\n setPressed(!pressed);\n }\n })\n }\n );\n});\nToggle.displayName = NAME;\nvar Root = Toggle;\nexport {\n Root,\n Toggle\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/toggle-group.tsx\nimport React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { Toggle } from \"@radix-ui/react-toggle\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TOGGLE_GROUP_NAME = \"ToggleGroup\";\nvar [createToggleGroupContext, createToggleGroupScope] = createContextScope(TOGGLE_GROUP_NAME, [\n createRovingFocusGroupScope\n]);\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar ToggleGroup = React.forwardRef((props, forwardedRef) => {\n const { type, ...toggleGroupProps } = props;\n if (type === \"single\") {\n const singleProps = toggleGroupProps;\n return /* @__PURE__ */ jsx(ToggleGroupImplSingle, { ...singleProps, ref: forwardedRef });\n }\n if (type === \"multiple\") {\n const multipleProps = toggleGroupProps;\n return /* @__PURE__ */ jsx(ToggleGroupImplMultiple, { ...multipleProps, ref: forwardedRef });\n }\n throw new Error(`Missing prop \\`type\\` expected on \\`${TOGGLE_GROUP_NAME}\\``);\n});\nToggleGroup.displayName = TOGGLE_GROUP_NAME;\nvar [ToggleGroupValueProvider, useToggleGroupValueContext] = createToggleGroupContext(TOGGLE_GROUP_NAME);\nvar ToggleGroupImplSingle = React.forwardRef((props, forwardedRef) => {\n const {\n value: valueProp,\n defaultValue,\n onValueChange = () => {\n },\n ...toggleGroupSingleProps\n } = props;\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue ?? \"\",\n onChange: onValueChange,\n caller: TOGGLE_GROUP_NAME\n });\n return /* @__PURE__ */ jsx(\n ToggleGroupValueProvider,\n {\n scope: props.__scopeToggleGroup,\n type: \"single\",\n value: React.useMemo(() => value ? [value] : [], [value]),\n onItemActivate: setValue,\n onItemDeactivate: React.useCallback(() => setValue(\"\"), [setValue]),\n children: /* @__PURE__ */ jsx(ToggleGroupImpl, { ...toggleGroupSingleProps, ref: forwardedRef })\n }\n );\n});\nvar ToggleGroupImplMultiple = React.forwardRef((props, forwardedRef) => {\n const {\n value: valueProp,\n defaultValue,\n onValueChange = () => {\n },\n ...toggleGroupMultipleProps\n } = props;\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue ?? [],\n onChange: onValueChange,\n caller: TOGGLE_GROUP_NAME\n });\n const handleButtonActivate = React.useCallback(\n (itemValue) => setValue((prevValue = []) => [...prevValue, itemValue]),\n [setValue]\n );\n const handleButtonDeactivate = React.useCallback(\n (itemValue) => setValue((prevValue = []) => prevValue.filter((value2) => value2 !== itemValue)),\n [setValue]\n );\n return /* @__PURE__ */ jsx(\n ToggleGroupValueProvider,\n {\n scope: props.__scopeToggleGroup,\n type: \"multiple\",\n value,\n onItemActivate: handleButtonActivate,\n onItemDeactivate: handleButtonDeactivate,\n children: /* @__PURE__ */ jsx(ToggleGroupImpl, { ...toggleGroupMultipleProps, ref: forwardedRef })\n }\n );\n});\nToggleGroup.displayName = TOGGLE_GROUP_NAME;\nvar [ToggleGroupContext, useToggleGroupContext] = createToggleGroupContext(TOGGLE_GROUP_NAME);\nvar ToggleGroupImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeToggleGroup,\n disabled = false,\n rovingFocus = true,\n orientation,\n dir,\n loop = true,\n ...toggleGroupProps\n } = props;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeToggleGroup);\n const direction = useDirection(dir);\n const commonProps = { role: \"group\", dir: direction, ...toggleGroupProps };\n return /* @__PURE__ */ jsx(ToggleGroupContext, { scope: __scopeToggleGroup, rovingFocus, disabled, children: rovingFocus ? /* @__PURE__ */ jsx(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation,\n dir: direction,\n loop,\n children: /* @__PURE__ */ jsx(Primitive.div, { ...commonProps, ref: forwardedRef })\n }\n ) : /* @__PURE__ */ jsx(Primitive.div, { ...commonProps, ref: forwardedRef }) });\n }\n);\nvar ITEM_NAME = \"ToggleGroupItem\";\nvar ToggleGroupItem = React.forwardRef(\n (props, forwardedRef) => {\n const valueContext = useToggleGroupValueContext(ITEM_NAME, props.__scopeToggleGroup);\n const context = useToggleGroupContext(ITEM_NAME, props.__scopeToggleGroup);\n const rovingFocusGroupScope = useRovingFocusGroupScope(props.__scopeToggleGroup);\n const pressed = valueContext.value.includes(props.value);\n const disabled = context.disabled || props.disabled;\n const commonProps = { ...props, pressed, disabled };\n const ref = React.useRef(null);\n return context.rovingFocus ? /* @__PURE__ */ jsx(\n RovingFocusGroup.Item,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !disabled,\n active: pressed,\n ref,\n children: /* @__PURE__ */ jsx(ToggleGroupItemImpl, { ...commonProps, ref: forwardedRef })\n }\n ) : /* @__PURE__ */ jsx(ToggleGroupItemImpl, { ...commonProps, ref: forwardedRef });\n }\n);\nToggleGroupItem.displayName = ITEM_NAME;\nvar ToggleGroupItemImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeToggleGroup, value, ...itemProps } = props;\n const valueContext = useToggleGroupValueContext(ITEM_NAME, __scopeToggleGroup);\n const singleProps = { role: \"radio\", \"aria-checked\": props.pressed, \"aria-pressed\": void 0 };\n const typeProps = valueContext.type === \"single\" ? singleProps : void 0;\n return /* @__PURE__ */ jsx(\n Toggle,\n {\n ...typeProps,\n ...itemProps,\n ref: forwardedRef,\n onPressedChange: (pressed) => {\n if (pressed) {\n valueContext.onItemActivate(value);\n } else {\n valueContext.onItemDeactivate(value);\n }\n }\n }\n );\n }\n);\nvar Root2 = ToggleGroup;\nvar Item2 = ToggleGroupItem;\nexport {\n Item2 as Item,\n Root2 as Root,\n ToggleGroup,\n ToggleGroupItem,\n createToggleGroupScope\n};\n//# sourceMappingURL=index.mjs.map\n","import React, { isValidElement, type MouseEvent, type ReactElement, type ReactNode } from \"react\";\nimport { IconCheckmark } from \"@purpur/icon/checkmark\";\nimport * as RadixToggleGroup from \"@radix-ui/react-toggle-group\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./chip-group-item.module.scss\";\n\ntype StylingProps = Pick<React.HTMLAttributes<HTMLElement>, \"style\" | \"className\">;\n\ntype ChipGroupItemProps = StylingProps & {\n [\"aria-label\"]?: string;\n [\"data-testid\"]?: string;\n children: ReactNode;\n /**\n * When `true`, prevents the user from interacting with the item.\n * */\n disabled?: boolean;\n /**\n * This prop will be passed automatically from the parent component (ChipGroup) when `type` is `\"filter\"`.\n * */\n showCheckmark?: boolean;\n /**\n * A unique value for the item.\n * */\n value: string;\n /**\n * This prop will only be used when `type` is `\"choice\"`.\n * When `true`, we recommend using `aria-label` to announce to screen readers that the option is unavailable.\n * */\n unavailable?: boolean;\n};\n\nconst cx = c.bind(styles);\nexport const rootClassName = \"purpur-chip-group-item\";\n\nexport const ChipGroupItem = ({\n [\"aria-label\"]: allyLabel,\n children,\n className,\n [\"data-testid\"]: dataTestId,\n disabled = false,\n showCheckmark = false,\n unavailable = false,\n value,\n ...props\n}: ChipGroupItemProps) => {\n const classes = cx([\n rootClassName,\n {\n [`${rootClassName}--disabled`]: disabled,\n [`${rootClassName}--unavailable`]: unavailable,\n },\n className,\n ]);\n\n const handleClick = (e: MouseEvent<HTMLButtonElement>) => {\n if (disabled) {\n e.preventDefault();\n }\n };\n\n return (\n <RadixToggleGroup.Item\n aria-label={allyLabel}\n data-testid={dataTestId}\n className={`${classes} ${rootClassName}`}\n value={value}\n onClick={handleClick}\n aria-disabled={disabled}\n {...props}\n >\n {children}\n {showCheckmark && (\n <IconCheckmark\n size=\"sm\"\n className={cx(`${rootClassName}__checkmark-icon`)}\n data-testid=\"checkmark icon\"\n />\n )}\n {unavailable && (\n <span\n className={cx(`${rootClassName}__line-wrapper`)}\n data-testid=\"unavailable line wrapper\"\n />\n )}\n </RadixToggleGroup.Item>\n );\n};\n\nexport const isChipGroupItem = (child?: ReactNode): child is ReactElement<ChipGroupItemProps> =>\n isValidElement<ChipGroupItemProps>(child) && child?.type === ChipGroupItem;\n","import React, { Children, cloneElement, type ReactNode, useEffect, useId } from \"react\";\nimport { Heading, type HeadingTagType } from \"@purpur/heading\";\nimport * as RadixToggleGroup from \"@radix-ui/react-toggle-group\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./chip-group.module.scss\";\nimport { ChipGroupItem, isChipGroupItem } from \"./chip-group-item\";\n\ntype StylingProps = Pick<React.HTMLAttributes<HTMLElement>, \"style\" | \"className\">;\n\ntype ChipGroupProps = StylingProps & {\n [\"data-testid\"]?: string;\n /**\n * Will only render given ChipGroupItems.\n * */\n children: ReactNode;\n /**\n * Makes the chips span the full container width if set to `true`.\n * */\n fullWidth?: boolean;\n /**\n * Renders above the chip group as a heading.\n * */\n title?: ReactNode;\n /**\n * Allows to customise title.\n */\n titleProps?: TitlePropsType;\n /**\n * Optional name for form submission\n */\n name?: string;\n};\n\nexport type TitlePropsType = StylingProps & {\n /**\n * Use custom id for connecting title and chip group.\n */\n id?: string;\n /**\n * Changes heading level.\n * @default h2\n */\n tag?: HeadingTagType;\n};\n\nexport type ChipGroupChoiceProps = {\n /**\n * Event handler called when the pressed state of an item changes.\n * */\n onValueChange: (value: string) => void;\n /**\n * Determines whether a single (`\"choice\"`) or multiple (`\"filter\"`) items can be pressed at a time.\n * */\n type: \"choice\";\n /**\n * The value of the pressed item(s).\n * */\n value: string;\n};\n\nexport type ChipGroupFilterProps = {\n /**\n * Event handler called when the pressed state of an item changes.\n * */\n onValueChange: (value: string[]) => void;\n /**\n * Determines whether a single (`\"choice\"`) or multiple (`\"filter\"`) items can be pressed at a time.\n * */\n type: \"filter\";\n /**\n * The value of the pressed item(s).\n * */\n value: string[];\n};\n\nconst isChoiceProps = (\n props: ChipGroupChoiceProps | ChipGroupFilterProps\n): props is ChipGroupChoiceProps => props.type === \"choice\";\n\ntype ChipGroupCmp<P> = React.FunctionComponent<P> & {\n Item: typeof ChipGroupItem;\n};\n\nconst MIN_CHOICE_OPTIONS = 2;\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-chip-group\";\n\nexport const ChipGroup: ChipGroupCmp<\n ChipGroupProps & (ChipGroupChoiceProps | ChipGroupFilterProps)\n> = ({ children, className, fullWidth = false, title, titleProps, name, ...props }) => {\n const classes = cx([\n rootClassName,\n {\n [`${rootClassName}--full-width`]: fullWidth,\n },\n className,\n ]);\n\n const id = useId();\n\n const chipGroupItemChildren = Children.toArray(children).filter(isChipGroupItem);\n\n const clonedChildren = Children.map(chipGroupItemChildren, (child) =>\n cloneElement(child, {\n showCheckmark: props.type === \"filter\" && props.value.includes(child.props.value),\n unavailable: props.type === \"choice\" && child.props.unavailable,\n })\n );\n\n const handleValueChange = (value: string & string[]) => {\n if (props.type === \"filter\" || value !== \"\") {\n props.onValueChange(value);\n }\n };\n\n useEffect(() => {\n if (props.type === \"choice\" && clonedChildren.length < MIN_CHOICE_OPTIONS) {\n console.warn(\n `Minimum number of chips should be ${MIN_CHOICE_OPTIONS} when using the \"choice\" type`\n );\n }\n }, [clonedChildren, props.type]);\n\n const chipGroupChildren = () => {\n if (isChoiceProps(props)) {\n return (\n <RadixToggleGroup.Root\n className={classes}\n {...props}\n aria-labelledby={title ? `${titleProps?.id ?? id}-label` : undefined}\n onValueChange={handleValueChange}\n type=\"single\"\n >\n {clonedChildren}\n </RadixToggleGroup.Root>\n );\n }\n return (\n <RadixToggleGroup.Root\n className={classes}\n {...props}\n aria-labelledby={title ? `${titleProps?.id ?? id}-label` : undefined}\n onValueChange={handleValueChange}\n type=\"multiple\"\n >\n {clonedChildren}\n </RadixToggleGroup.Root>\n );\n };\n\n return (\n <div className={styles[`${rootClassName}--container`]}>\n {title && (\n <Heading\n tag=\"h2\"\n variant=\"subsection-100\"\n {...titleProps}\n id={`${titleProps?.id ?? id}-label`}\n >\n {title}\n </Heading>\n )}\n {chipGroupChildren()}\n {name && props.type === \"choice\" && <input type=\"hidden\" name={name} value={props.value} />}\n </div>\n );\n};\n\nChipGroup.Item = ChipGroupItem;\n\nChipGroup.displayName = \"ChipGroup\";\n"],"names":["NAME","Toggle","React","props","forwardedRef","pressedProp","defaultPressed","onPressedChange","buttonProps","pressed","setPressed","useControllableState","jsx","Primitive","composeEventHandlers","TOGGLE_GROUP_NAME","createToggleGroupContext","createContextScope","createRovingFocusGroupScope","useRovingFocusGroupScope","ToggleGroup","type","toggleGroupProps","ToggleGroupImplSingle","ToggleGroupImplMultiple","ToggleGroupValueProvider","useToggleGroupValueContext","valueProp","defaultValue","onValueChange","toggleGroupSingleProps","value","setValue","ToggleGroupImpl","toggleGroupMultipleProps","handleButtonActivate","itemValue","prevValue","handleButtonDeactivate","value2","ToggleGroupContext","useToggleGroupContext","__scopeToggleGroup","disabled","rovingFocus","orientation","dir","loop","rovingFocusGroupScope","direction","useDirection","commonProps","RovingFocusGroup.Root","ITEM_NAME","ToggleGroupItem","valueContext","context","ref","RovingFocusGroup.Item","ToggleGroupItemImpl","itemProps","singleProps","typeProps","Root2","Item2","cx","c","styles","rootClassName","ChipGroupItem","allyLabel","children","className","dataTestId","showCheckmark","unavailable","classes","handleClick","e","jsxs","RadixToggleGroup.Item","IconCheckmark","isChipGroupItem","child","isValidElement","isChoiceProps","MIN_CHOICE_OPTIONS","ChipGroup","fullWidth","title","titleProps","name","id","useId","chipGroupItemChildren","Children","clonedChildren","cloneElement","handleValueChange","useEffect","chipGroupChildren","RadixToggleGroup.Root","Heading"],"mappings":";;;;;;;;;;AAQA,IAAIA,IAAO,UACPC,IAASC,EAAM,WAAW,CAACC,GAAOC,MAAiB;AACrD,QAAM,EAAE,SAASC,GAAa,gBAAAC,GAAgB,iBAAAC,GAAiB,GAAGC,EAAW,IAAKL,GAC5E,CAACM,GAASC,CAAU,IAAIC,EAAqB;AAAA,IACjD,MAAMN;AAAA,IACN,UAAUE;AAAA,IACV,aAAaD,KAAkB;AAAA,IAC/B,QAAQN;AAAA,EACZ,CAAG;AACD,SAAuB,gBAAAY;AAAA,IACrBC,EAAU;AAAA,IACV;AAAA,MACE,MAAM;AAAA,MACN,gBAAgBJ;AAAA,MAChB,cAAcA,IAAU,OAAO;AAAA,MAC/B,iBAAiBN,EAAM,WAAW,KAAK;AAAA,MACvC,GAAGK;AAAA,MACH,KAAKJ;AAAA,MACL,SAASU,EAAqBX,EAAM,SAAS,MAAM;AACjD,QAAKA,EAAM,YACTO,EAAW,CAACD,CAAO;AAAA,MAEvB,CAAC;AAAA,IACP;AAAA,EACA;AACA,CAAC;AACDR,EAAO,cAAcD;ACtBrB,IAAIe,IAAoB,eACpB,CAACC,CAAgD,IAAIC,EAAmBF,GAAmB;AAAA,EAC7FG;AACF,CAAC,GACGC,IAA2BD,EAA2B,GACtDE,IAAclB,EAAM,WAAW,CAACC,GAAOC,MAAiB;AAC1D,QAAM,EAAE,MAAAiB,GAAM,GAAGC,EAAgB,IAAKnB;AACtC,MAAIkB,MAAS;AAEX,WAAuB,gBAAAT,EAAIW,IAAuB,EAAE,GADhCD,GACgD,KAAKlB,GAAc;AAEzF,MAAIiB,MAAS;AAEX,WAAuB,gBAAAT,EAAIY,IAAyB,EAAE,GADhCF,GACkD,KAAKlB,GAAc;AAE7F,QAAM,IAAI,MAAM,uCAAuCW,CAAiB,IAAI;AAC9E,CAAC;AACDK,EAAY,cAAcL;AAC1B,IAAI,CAACU,GAA0BC,CAA0B,IAAIV,EAAyBD,CAAiB,GACnGQ,KAAwBrB,EAAM,WAAW,CAACC,GAAOC,MAAiB;AACpE,QAAM;AAAA,IACJ,OAAOuB;AAAA,IACP,cAAAC;AAAA,IACA,eAAAC,IAAgB,MAAM;AAAA,IACtB;AAAA,IACA,GAAGC;AAAA,EACP,IAAM3B,GACE,CAAC4B,GAAOC,CAAQ,IAAIrB,EAAqB;AAAA,IAC7C,MAAMgB;AAAA,IACN,aAAaC,KAAgB;AAAA,IAC7B,UAAUC;AAAA,IACV,QAAQd;AAAA,EACZ,CAAG;AACD,SAAuB,gBAAAH;AAAA,IACrBa;AAAA,IACA;AAAA,MACE,OAAOtB,EAAM;AAAA,MACb,MAAM;AAAA,MACN,OAAOD,EAAM,QAAQ,MAAM6B,IAAQ,CAACA,CAAK,IAAI,CAAA,GAAI,CAACA,CAAK,CAAC;AAAA,MACxD,gBAAgBC;AAAA,MAChB,kBAAkB9B,EAAM,YAAY,MAAM8B,EAAS,EAAE,GAAG,CAACA,CAAQ,CAAC;AAAA,MAClE,UAA0B,gBAAApB,EAAIqB,GAAiB,EAAE,GAAGH,GAAwB,KAAK1B,EAAY,CAAE;AAAA,IACrG;AAAA,EACA;AACA,CAAC,GACGoB,KAA0BtB,EAAM,WAAW,CAACC,GAAOC,MAAiB;AACtE,QAAM;AAAA,IACJ,OAAOuB;AAAA,IACP,cAAAC;AAAA,IACA,eAAAC,IAAgB,MAAM;AAAA,IACtB;AAAA,IACA,GAAGK;AAAA,EACP,IAAM/B,GACE,CAAC4B,GAAOC,CAAQ,IAAIrB,EAAqB;AAAA,IAC7C,MAAMgB;AAAA,IACN,aAAaC,KAAgB,CAAA;AAAA,IAC7B,UAAUC;AAAA,IACV,QAAQd;AAAA,EACZ,CAAG,GACKoB,IAAuBjC,EAAM;AAAA,IACjC,CAACkC,MAAcJ,EAAS,CAACK,IAAY,CAAA,MAAO,CAAC,GAAGA,GAAWD,CAAS,CAAC;AAAA,IACrE,CAACJ,CAAQ;AAAA,EACb,GACQM,IAAyBpC,EAAM;AAAA,IACnC,CAACkC,MAAcJ,EAAS,CAACK,IAAY,CAAA,MAAOA,EAAU,OAAO,CAACE,MAAWA,MAAWH,CAAS,CAAC;AAAA,IAC9F,CAACJ,CAAQ;AAAA,EACb;AACE,SAAuB,gBAAApB;AAAA,IACrBa;AAAA,IACA;AAAA,MACE,OAAOtB,EAAM;AAAA,MACb,MAAM;AAAA,MACN,OAAA4B;AAAA,MACA,gBAAgBI;AAAA,MAChB,kBAAkBG;AAAA,MAClB,UAA0B,gBAAA1B,EAAIqB,GAAiB,EAAE,GAAGC,GAA0B,KAAK9B,EAAY,CAAE;AAAA,IACvG;AAAA,EACA;AACA,CAAC;AACDgB,EAAY,cAAcL;AAC1B,IAAI,CAACyB,IAAoBC,EAAqB,IAAIzB,EAAyBD,CAAiB,GACxFkB,IAAkB/B,EAAM;AAAA,EAC1B,CAACC,GAAOC,MAAiB;AACvB,UAAM;AAAA,MACJ,oBAAAsC;AAAA,MACA,UAAAC,IAAW;AAAA,MACX,aAAAC,IAAc;AAAA,MACd,aAAAC;AAAA,MACA,KAAAC;AAAA,MACA,MAAAC,IAAO;AAAA,MACP,GAAGzB;AAAA,IACT,IAAQnB,GACE6C,IAAwB7B,EAAyBuB,CAAkB,GACnEO,IAAYC,EAAaJ,CAAG,GAC5BK,IAAc,EAAE,MAAM,SAAS,KAAKF,GAAW,GAAG3B,EAAgB;AACxE,WAAuB,gBAAAV,EAAI4B,IAAoB,EAAE,OAAOE,GAAoB,aAAAE,GAAa,UAAAD,GAAU,UAAUC,IAA8B,gBAAAhC;AAAA,MACzIwC;AAAAA,MACA;AAAA,QACE,SAAS;AAAA,QACT,GAAGJ;AAAA,QACH,aAAAH;AAAA,QACA,KAAKI;AAAA,QACL,MAAAF;AAAA,QACA,UAA0B,gBAAAnC,EAAIC,EAAU,KAAK,EAAE,GAAGsC,GAAa,KAAK/C,EAAY,CAAE;AAAA,MAC1F;AAAA,IACA,IAAwB,gBAAAQ,EAAIC,EAAU,KAAK,EAAE,GAAGsC,GAAa,KAAK/C,EAAY,CAAE,GAAG;AAAA,EACjF;AACF,GACIiD,IAAY,mBACZC,IAAkBpD,EAAM;AAAA,EAC1B,CAACC,GAAOC,MAAiB;AACvB,UAAMmD,IAAe7B,EAA2B2B,GAAWlD,EAAM,kBAAkB,GAC7EqD,IAAUf,GAAsBY,GAAWlD,EAAM,kBAAkB,GACnE6C,IAAwB7B,EAAyBhB,EAAM,kBAAkB,GACzEM,IAAU8C,EAAa,MAAM,SAASpD,EAAM,KAAK,GACjDwC,IAAWa,EAAQ,YAAYrD,EAAM,UACrCgD,IAAc,EAAE,GAAGhD,GAAO,SAAAM,GAAS,UAAAkC,EAAQ,GAC3Cc,IAAMvD,EAAM,OAAO,IAAI;AAC7B,WAAOsD,EAAQ,cAA8B,gBAAA5C;AAAA,MAC3C8C;AAAAA,MACA;AAAA,QACE,SAAS;AAAA,QACT,GAAGV;AAAA,QACH,WAAW,CAACL;AAAA,QACZ,QAAQlC;AAAA,QACR,KAAAgD;AAAA,QACA,UAA0B,gBAAA7C,EAAI+C,GAAqB,EAAE,GAAGR,GAAa,KAAK/C,EAAY,CAAE;AAAA,MAChG;AAAA,IACA,IAAwB,gBAAAQ,EAAI+C,GAAqB,EAAE,GAAGR,GAAa,KAAK/C,GAAc;AAAA,EACpF;AACF;AACAkD,EAAgB,cAAcD;AAC9B,IAAIM,IAAsBzD,EAAM;AAAA,EAC9B,CAACC,GAAOC,MAAiB;AACvB,UAAM,EAAE,oBAAAsC,GAAoB,OAAAX,GAAO,GAAG6B,EAAS,IAAKzD,GAC9CoD,IAAe7B,EAA2B2B,GAAWX,CAAkB,GACvEmB,IAAc,EAAE,MAAM,SAAS,gBAAgB1D,EAAM,SAAS,gBAAgB,OAAM,GACpF2D,IAAYP,EAAa,SAAS,WAAWM,IAAc;AACjE,WAAuB,gBAAAjD;AAAA,MACrBX;AAAA,MACA;AAAA,QACE,GAAG6D;AAAA,QACH,GAAGF;AAAA,QACH,KAAKxD;AAAA,QACL,iBAAiB,CAACK,MAAY;AAC5B,UAAIA,IACF8C,EAAa,eAAexB,CAAK,IAEjCwB,EAAa,iBAAiBxB,CAAK;AAAA,QAEvC;AAAA,MACR;AAAA,IACA;AAAA,EACE;AACF,GACIgC,IAAQ3C,GACR4C,KAAQV;;;;;;;;;;GCxINW,IAAKC,EAAE,KAAKC,EAAM,GACXC,IAAgB,0BAEhBC,IAAgB,CAAC;AAAA,EAC5B,CAAC,eAAeC;AAAA,EAChB,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,CAAC,gBAAgBC;AAAA,EACjB,UAAA9B,IAAW;AAAA,EACX,eAAA+B,IAAgB;AAAA,EAChB,aAAAC,IAAc;AAAA,EACd,OAAA5C;AAAA,EACA,GAAG5B;AACL,MAA0B;AACxB,QAAMyE,IAAUX,EAAG;AAAA,IACjBG;AAAAA,IACA;AAAA,MACE,CAAC,GAAGA,CAAa,YAAY,GAAGzB;AAAA,MAChC,CAAC,GAAGyB,CAAa,eAAe,GAAGO;AAAA,IAAA;AAAA,IAErCH;AAAA,EAAA,CACD,GAEKK,IAAc,CAACC,MAAqC;AACxD,IAAInC,KACFmC,EAAE,eAAA;AAAA,EAEN;AAEA,SACE,gBAAAC;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,cAAYV;AAAA,MACZ,eAAaG;AAAA,MACb,WAAW,GAAGG,CAAO,IAAIR,CAAa;AAAA,MACtC,OAAArC;AAAA,MACA,SAAS8C;AAAA,MACT,iBAAelC;AAAA,MACd,GAAGxC;AAAA,MAEH,UAAA;AAAA,QAAAoE;AAAA,QACAG,KACC,gBAAA9D;AAAA,UAACqE;AAAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,WAAWhB,EAAG,GAAGG,CAAa,kBAAkB;AAAA,YAChD,eAAY;AAAA,UAAA;AAAA,QAAA;AAAA,QAGfO,KACC,gBAAA/D;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWqD,EAAG,GAAGG,CAAa,gBAAgB;AAAA,YAC9C,eAAY;AAAA,UAAA;AAAA,QAAA;AAAA,MACd;AAAA,IAAA;AAAA,EAAA;AAIR,GAEac,KAAkB,CAACC,MAC9BC,EAAmCD,CAAK,KAAKA,GAAO,SAASd,GCdzDgB,KAAgB,CACpBlF,MACkCA,EAAM,SAAS,UAM7CmF,IAAqB,GAErBrB,KAAKC,EAAE,KAAKC,CAAM,GAClBC,IAAgB,qBAETmB,IAET,CAAC,EAAE,UAAAhB,GAAU,WAAAC,GAAW,WAAAgB,IAAY,IAAO,OAAAC,GAAO,YAAAC,GAAY,MAAAC,GAAM,GAAGxF,EAAA,MAAY;AACrF,QAAMyE,IAAUX,GAAG;AAAA,IACjBG;AAAA,IACA;AAAA,MACE,CAAC,GAAGA,CAAa,cAAc,GAAGoB;AAAA,IAAA;AAAA,IAEpChB;AAAA,EAAA,CACD,GAEKoB,IAAKC,EAAA,GAELC,IAAwBC,EAAS,QAAQxB,CAAQ,EAAE,OAAOW,EAAe,GAEzEc,IAAiBD,EAAS;AAAA,IAAID;AAAA,IAAuB,CAACX,MAC1Dc,EAAad,GAAO;AAAA,MAClB,eAAehF,EAAM,SAAS,YAAYA,EAAM,MAAM,SAASgF,EAAM,MAAM,KAAK;AAAA,MAChF,aAAahF,EAAM,SAAS,YAAYgF,EAAM,MAAM;AAAA,IAAA,CACrD;AAAA,EAAA,GAGGe,IAAoB,CAACnE,MAA6B;AACtD,KAAI5B,EAAM,SAAS,YAAY4B,MAAU,OACvC5B,EAAM,cAAc4B,CAAK;AAAA,EAE7B;AAEA,EAAAoE,EAAU,MAAM;AACd,IAAIhG,EAAM,SAAS,YAAY6F,EAAe,SAASV,KACrD,QAAQ;AAAA,MACN,qCAAqCA,CAAkB;AAAA,IAAA;AAAA,EAG7D,GAAG,CAACU,GAAgB7F,EAAM,IAAI,CAAC;AAE/B,QAAMiG,IAAoB,MACpBf,GAAclF,CAAK,IAEnB,gBAAAS;AAAA,IAACyF;AAAAA,IAAA;AAAA,MACC,WAAWzB;AAAA,MACV,GAAGzE;AAAA,MACJ,mBAAiBsF,IAAQ,GAAGC,GAAY,MAAME,CAAE,WAAW;AAAA,MAC3D,eAAeM;AAAA,MACf,MAAK;AAAA,MAEJ,UAAAF;AAAA,IAAA;AAAA,EAAA,IAKL,gBAAApF;AAAA,IAACyF;AAAAA,IAAA;AAAA,MACC,WAAWzB;AAAA,MACV,GAAGzE;AAAA,MACJ,mBAAiBsF,IAAQ,GAAGC,GAAY,MAAME,CAAE,WAAW;AAAA,MAC3D,eAAeM;AAAA,MACf,MAAK;AAAA,MAEJ,UAAAF;AAAA,IAAA;AAAA,EAAA;AAKP,2BACG,OAAA,EAAI,WAAW7B,EAAO,GAAGC,CAAa,aAAa,GACjD,UAAA;AAAA,IAAAqB,KACC,gBAAA7E;AAAA,MAAC0F;AAAA,MAAA;AAAA,QACC,KAAI;AAAA,QACJ,SAAQ;AAAA,QACP,GAAGZ;AAAA,QACJ,IAAI,GAAGA,GAAY,MAAME,CAAE;AAAA,QAE1B,UAAAH;AAAA,MAAA;AAAA,IAAA;AAAA,IAGJW,EAAA;AAAA,IACAT,KAAQxF,EAAM,SAAS,YAAY,gBAAAS,EAAC,SAAA,EAAM,MAAK,UAAS,MAAA+E,GAAY,OAAOxF,EAAM,MAAA,CAAO;AAAA,EAAA,GAC3F;AAEJ;AAEAoF,EAAU,OAAOlB;AAEjBkB,EAAU,cAAc;","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]}
|