@utilitywarehouse/hearth-react 0.36.2 → 0.36.3
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/dist/{chunk-NBLUIVPS.js → chunk-2OHAFTMO.js} +2 -2
- package/dist/{chunk-5A667ZJZ.cjs → chunk-2RNTOHOU.cjs} +2 -2
- package/dist/{chunk-5A667ZJZ.cjs.map → chunk-2RNTOHOU.cjs.map} +1 -1
- package/dist/{chunk-OTXFBNCU.js → chunk-2RRGJCBC.js} +2 -2
- package/dist/{chunk-SR5END3T.cjs → chunk-4GNLKRL3.cjs} +2 -2
- package/dist/{chunk-SR5END3T.cjs.map → chunk-4GNLKRL3.cjs.map} +1 -1
- package/dist/{chunk-NN6N7GOI.js → chunk-6Z7AT6VB.js} +2 -2
- package/dist/{chunk-TTJ4COKL.cjs → chunk-7KJBTHSU.cjs} +2 -2
- package/dist/{chunk-TTJ4COKL.cjs.map → chunk-7KJBTHSU.cjs.map} +1 -1
- package/dist/{chunk-RZJZGZ73.js → chunk-A7AQTINY.js} +2 -2
- package/dist/{chunk-OJHREKDB.js → chunk-AT4JEW4E.js} +2 -2
- package/dist/{chunk-DMO5FLXX.js → chunk-AYU3ESZY.js} +2 -2
- package/dist/chunk-BC6YF4X4.js +4 -0
- package/dist/{chunk-4NKAXI6G.js.map → chunk-BC6YF4X4.js.map} +1 -1
- package/dist/{chunk-YMFKZM2G.cjs → chunk-CE6J26Z7.cjs} +2 -2
- package/dist/{chunk-YMFKZM2G.cjs.map → chunk-CE6J26Z7.cjs.map} +1 -1
- package/dist/{chunk-ECSNZJO5.js → chunk-E3TWA3DU.js} +2 -2
- package/dist/{chunk-JN4C5D5P.cjs → chunk-E6QW7LY4.cjs} +1 -1
- package/dist/{chunk-JN4C5D5P.cjs.map → chunk-E6QW7LY4.cjs.map} +1 -1
- package/dist/{chunk-OBEWOAZS.js → chunk-EEXCCYCT.js} +2 -2
- package/dist/{chunk-KCIN3NYN.cjs → chunk-FTN2QGBD.cjs} +2 -2
- package/dist/{chunk-KCIN3NYN.cjs.map → chunk-FTN2QGBD.cjs.map} +1 -1
- package/dist/{chunk-E665GL66.js → chunk-G6QAVOQR.js} +2 -2
- package/dist/{chunk-YPFBLO44.js → chunk-GTXWXSXO.js} +2 -2
- package/dist/{chunk-ZEHPCJWW.cjs → chunk-K7747CML.cjs} +2 -2
- package/dist/{chunk-ZEHPCJWW.cjs.map → chunk-K7747CML.cjs.map} +1 -1
- package/dist/{chunk-U7C2K4JT.js → chunk-K7EQ2JR7.js} +1 -1
- package/dist/{chunk-U7C2K4JT.js.map → chunk-K7EQ2JR7.js.map} +1 -1
- package/dist/{chunk-ATP4TL52.cjs → chunk-KRFEIGR5.cjs} +2 -2
- package/dist/{chunk-ATP4TL52.cjs.map → chunk-KRFEIGR5.cjs.map} +1 -1
- package/dist/chunk-KYPME3YP.cjs +4 -0
- package/dist/chunk-KYPME3YP.cjs.map +1 -0
- package/dist/{chunk-Q74KVLBL.js → chunk-LBCDHBLY.js} +2 -2
- package/dist/{chunk-EU4YDI2W.cjs → chunk-MAGAAUVZ.cjs} +2 -2
- package/dist/{chunk-EU4YDI2W.cjs.map → chunk-MAGAAUVZ.cjs.map} +1 -1
- package/dist/{chunk-ZOVTBFLJ.js → chunk-MJ43JZBU.js} +2 -2
- package/dist/{chunk-3ZIDGMU3.cjs → chunk-N764D6V5.cjs} +2 -2
- package/dist/{chunk-3ZIDGMU3.cjs.map → chunk-N764D6V5.cjs.map} +1 -1
- package/dist/{chunk-6KROCMQ7.js → chunk-S2CDQ7HR.js} +2 -2
- package/dist/{chunk-GAXATLK3.cjs → chunk-SWFUZRPD.cjs} +2 -2
- package/dist/{chunk-GAXATLK3.cjs.map → chunk-SWFUZRPD.cjs.map} +1 -1
- package/dist/{chunk-EA6RRWYY.cjs → chunk-VGPFJV22.cjs} +2 -2
- package/dist/{chunk-EA6RRWYY.cjs.map → chunk-VGPFJV22.cjs.map} +1 -1
- package/dist/{chunk-NPGWC5UG.cjs → chunk-WFNQXP3D.cjs} +2 -2
- package/dist/{chunk-NPGWC5UG.cjs.map → chunk-WFNQXP3D.cjs.map} +1 -1
- package/dist/{chunk-KOSD5OKA.js → chunk-XNDPIHAF.js} +2 -2
- package/dist/{chunk-BSV5FCP7.cjs → chunk-YGNGIGCD.cjs} +2 -2
- package/dist/{chunk-BSV5FCP7.cjs.map → chunk-YGNGIGCD.cjs.map} +1 -1
- package/dist/{chunk-UB43SHEW.cjs → chunk-YX67YOF6.cjs} +2 -2
- package/dist/{chunk-UB43SHEW.cjs.map → chunk-YX67YOF6.cjs.map} +1 -1
- package/dist/{chunk-JBSAZP3R.js → chunk-ZGIMM7G5.js} +2 -2
- package/dist/{chunk-DFHWFPXL.cjs → chunk-ZHVCM3OC.cjs} +2 -2
- package/dist/{chunk-DFHWFPXL.cjs.map → chunk-ZHVCM3OC.cjs.map} +1 -1
- package/dist/components/Badge/Badge.cjs +1 -1
- package/dist/components/Badge/Badge.d.ts.map +1 -1
- package/dist/components/Badge/Badge.js +1 -1
- package/dist/components/Badge/Badge.props.cjs +1 -1
- package/dist/components/Badge/Badge.props.d.ts +5 -0
- package/dist/components/Badge/Badge.props.d.ts.map +1 -1
- package/dist/components/Badge/Badge.props.js +1 -1
- package/dist/components/Breadcrumbs/BreadcrumbItem.cjs +1 -1
- package/dist/components/Breadcrumbs/BreadcrumbItem.js +1 -1
- package/dist/components/Button/Button.cjs +1 -1
- package/dist/components/Button/Button.js +1 -1
- package/dist/components/CardAccordion/CardAccordion.cjs +1 -1
- package/dist/components/CardAccordion/CardAccordion.js +1 -1
- package/dist/components/CardAccordion/CardAccordionButton.cjs +1 -1
- package/dist/components/CardAccordion/CardAccordionButton.js +1 -1
- package/dist/components/CardAccordion/CardAccordionItem.cjs +1 -1
- package/dist/components/CardAccordion/CardAccordionItem.js +1 -1
- package/dist/components/Combobox/Combobox.cjs +1 -1
- package/dist/components/Combobox/Combobox.js +1 -1
- package/dist/components/CurrencyInput/CurrencyInput.cjs +1 -1
- package/dist/components/CurrencyInput/CurrencyInput.js +1 -1
- package/dist/components/Modal/Modal.cjs +1 -1
- package/dist/components/Modal/Modal.js +1 -1
- package/dist/components/Pagination/Pagination.cjs +1 -1
- package/dist/components/Pagination/Pagination.js +1 -1
- package/dist/components/PasswordInput/PasswordInput.cjs +1 -1
- package/dist/components/PasswordInput/PasswordInput.js +1 -1
- package/dist/components/ProgressBar/ProgressBar.cjs +1 -1
- package/dist/components/ProgressBar/ProgressBar.js +1 -1
- package/dist/components/SearchInput/SearchInput.cjs +1 -1
- package/dist/components/SearchInput/SearchInput.js +1 -1
- package/dist/components/Table/TablePagination.cjs +1 -1
- package/dist/components/Table/TablePagination.js +1 -1
- package/dist/components/TextInput/TextInput.cjs +1 -1
- package/dist/components/TextInput/TextInput.js +1 -1
- package/dist/components/VerificationInput/VerificationInput.cjs +1 -1
- package/dist/components/VerificationInput/VerificationInput.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1 -1
- package/package.json +2 -2
- package/public/llms/components/badge.md +32 -0
- package/public/llms/docs/getting-started.md +1 -1
- package/styles.css +1 -1
- package/dist/chunk-4NKAXI6G.js +0 -4
- package/dist/chunk-L5NLFVE2.cjs +0 -4
- package/dist/chunk-L5NLFVE2.cjs.map +0 -1
- /package/dist/{chunk-NBLUIVPS.js.map → chunk-2OHAFTMO.js.map} +0 -0
- /package/dist/{chunk-OTXFBNCU.js.map → chunk-2RRGJCBC.js.map} +0 -0
- /package/dist/{chunk-NN6N7GOI.js.map → chunk-6Z7AT6VB.js.map} +0 -0
- /package/dist/{chunk-RZJZGZ73.js.map → chunk-A7AQTINY.js.map} +0 -0
- /package/dist/{chunk-OJHREKDB.js.map → chunk-AT4JEW4E.js.map} +0 -0
- /package/dist/{chunk-DMO5FLXX.js.map → chunk-AYU3ESZY.js.map} +0 -0
- /package/dist/{chunk-ECSNZJO5.js.map → chunk-E3TWA3DU.js.map} +0 -0
- /package/dist/{chunk-OBEWOAZS.js.map → chunk-EEXCCYCT.js.map} +0 -0
- /package/dist/{chunk-E665GL66.js.map → chunk-G6QAVOQR.js.map} +0 -0
- /package/dist/{chunk-YPFBLO44.js.map → chunk-GTXWXSXO.js.map} +0 -0
- /package/dist/{chunk-Q74KVLBL.js.map → chunk-LBCDHBLY.js.map} +0 -0
- /package/dist/{chunk-ZOVTBFLJ.js.map → chunk-MJ43JZBU.js.map} +0 -0
- /package/dist/{chunk-6KROCMQ7.js.map → chunk-S2CDQ7HR.js.map} +0 -0
- /package/dist/{chunk-KOSD5OKA.js.map → chunk-XNDPIHAF.js.map} +0 -0
- /package/dist/{chunk-JBSAZP3R.js.map → chunk-ZGIMM7G5.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/hearth/hearth/packages/react/dist/chunk-
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/hearth/hearth/packages/react/dist/chunk-KRFEIGR5.cjs","../src/components/PasswordInput/PasswordInput.tsx"],"names":["COMPONENT_NAME","componentClassName","withGlobalPrefix","PasswordInput","forwardRef","className","disabled","providedId","props","forwardedRef","internalRef","useRef","inputRef","useMergedRefs","visible","setVisible","useState","showVisibilityMessage","setShowVisibilityMessage","handleVisibility","useCallback","prevVisible","useEffect","currentElement","handleSubmit","visibilityMessage","timeout","id","useIds","jsxs","Fragment","jsx","TextInput","cn","InputSlot","UnstyledIconButton","EyeSmallIcon","EyeOffSmallIcon"],"mappings":"AAAA,ylBAAY;AACZ;AACA,wDAAwC,wDAAyC,wDAAyC,wDAAyC,wDAAyC,wDAAyC,8BCEhL,wEAMvB,6DAGhB,+CAmExB,IAjEAA,CAAAA,CAAiB,eAAA,CACjBC,CAAAA,CAAqBC,iCAAAA,CAA+B,CAAA,CAU7CC,CAAAA,aAAgBC,+BAAAA,CAC1B,CAAE,SAAA,CAAAC,CAAAA,CAAW,QAAA,CAAAC,CAAAA,CAAU,EAAA,CAAIC,CAAAA,CAAY,GAAGC,CAAM,CAAA,CAAGC,CAAAA,CAAAA,EAAiB,CACnE,IAAMC,CAAAA,CAAcC,2BAAAA,IAAoC,CAAA,CAClDC,CAAAA,CAAWC,0CAAAA,CAAcJ,CAAcC,CAAW,CAAA,CAElD,CAACI,CAAAA,CAASC,CAAU,CAAA,CAAIC,6BAAAA,CAAS,CAAK,CAAA,CACtC,CAACC,CAAAA,CAAuBC,CAAwB,CAAA,CAAIF,6BAAAA,CAAS,CAAK,CAAA,CAElEG,CAAAA,CAAmBC,gCAAAA,CAAY,CAAA,EAAM,CACzCL,CAAAA,CAAWM,CAAAA,EAAe,CAACA,CAAW,CAAA,CACtCH,CAAAA,CAAyB,CAAA,CAAI,CAC/B,CAAA,CAAG,CAAC,CAAC,CAAA,CAILI,8BAAAA,CAAU,CAAA,EAAM,CAEd,IAAIC,CAAAA,CAA0C,IAAA,CAC1Cb,CAAAA,EAAe,OAAOA,CAAAA,EAAgB,QAAA,EAAYA,CAAAA,CAAY,OAAA,EAAA,CAGhEa,CAAAA,CADkBb,CAAAA,CACS,OAAA,CAAA,CAG7B,IAAMc,CAAAA,CAAe,CAAA,CAAA,EAAM,iBACrBD,CAAAA,2BAAgB,MAAA,EAAA,CAClBA,CAAAA,CAAe,IAAA,CAAO,UAAA,CACtBR,CAAAA,CAAW,CAAA,CAAK,CAAA,CAEpB,CAAA,CAEA,OAAIQ,CAAAA,EAAkBA,CAAAA,CAAe,IAAA,GAAS,IAAA,EAC5CA,CAAAA,CAAe,IAAA,CAAK,gBAAA,CAAiB,QAAA,CAAUC,CAAY,CAAA,CAEtD,CAAA,CAAA,EAAM,iBACPD,CAAAA,6BAAgB,MAAA,EAClBA,CAAAA,CAAe,IAAA,CAAK,mBAAA,CAAoB,QAAA,CAAUC,CAAY,CAElE,CACF,CAAA,CAAG,CAACd,CAAW,CAAC,CAAA,CAEhB,IAAMe,CAAAA,CAAoB,CAAA,iBAAA,EAAoBX,CAAAA,CAAU,OAAA,CAAU,QAAQ,CAAA,CAAA,CAAA,CAE1EQ,8BAAAA,CAAU,CAAA,EAAM,CACd,EAAA,CAAI,CAACL,CAAAA,CAAuB,MAAA,CAC5B,IAAMS,CAAAA,CAAU,UAAA,CAAW,CAAA,CAAA,EAAM,CAC/BR,CAAAA,CAAyB,CAAA,CAAK,CAChC,CAAA,CAAG,IAAI,CAAA,CACP,MAAO,CAAA,CAAA,EAAM,YAAA,CAAaQ,CAAO,CACnC,CAAA,CAAG,CAACT,CAAAA,CAAuBH,CAAO,CAAC,CAAA,CAEnC,GAAM,CAAE,EAAA,CAAAa,CAAG,CAAA,CAAIC,iCAAAA,CAAS,UAAA,CAAArB,CAAAA,CAAY,MAAA,CAAQ,gBAAiB,CAAC,CAAA,CAE9D,OACEsB,8BAAAA,oBAAAC,CAAA,CACE,QAAA,CAAA,CAAAC,6BAAAA,mBAACC,CAAA,CACC,GAAA,CAAKpB,CAAAA,CACL,SAAA,CAAWqB,iCAAAA,CAAGhC,CAAoBI,CAAS,CAAA,CAC3C,IAAA,CAAMS,CAAAA,CAAU,MAAA,CAAS,UAAA,CACzB,QAAA,CAAUR,CAAAA,CACV,EAAA,CAAIqB,CAAAA,CACJ,aAAA,CAAa1B,CAAAA,CACZ,GAAGO,CAAAA,CAEJ,QAAA,CAAAuB,6BAAAA,mBAACG,CAAA,CAAU,SAAA,CAAU,QAAA,CACnB,QAAA,CAAAH,6BAAAA,mBAACI,CAAA,CACC,IAAA,CAAK,QAAA,CACL,KAAA,CAAM,4BAAA,CACN,OAAA,CAAShB,CAAAA,CACT,QAAA,CAAUb,CAAAA,CACV,cAAA,CAAcQ,CAAAA,CAEb,QAAA,CAAAA,CAAAA,CAAUiB,6BAAAA,8BAACK,CAAA,CAAA,CAAa,CAAA,CAAKL,6BAAAA,iCAACM,CAAA,CAAA,CAAgB,CAAA,CACjD,CAAA,CACF,CAAA,CACF,CAAA,CACAN,6BAAAA,KAAC,CAAA,CAAI,sBAAA,CAAoB,CAAA,CAAA,CAAC,WAAA,CAAU,WAAA,CAAY,IAAA,CAAK,QAAA,CAClD,QAAA,CAAAd,CAAAA,CAAwBQ,CAAAA,CAAoB,EAAA,CAC/C,CAAA,CAAA,CACF,CAEJ,CACF,CAAA,CAEAtB,CAAAA,CAAc,WAAA,CAAcH,CAAAA,CAAAA,cAAAA","file":"/home/runner/work/hearth/hearth/packages/react/dist/chunk-KRFEIGR5.cjs","sourcesContent":[null,"'use client';\n\nimport { withGlobalPrefix } from '../../helpers/with-global-prefix';\nimport { cn } from '../../helpers/cn';\nimport { forwardRef, useRef, useState, useCallback, useEffect } from 'react';\nimport type { RefObject } from 'react';\nimport type { PasswordInputProps } from './PasswordInput.props';\nimport { TextInput } from '../TextInput/TextInput';\nimport { InputSlot } from '../InputSlot/InputSlot';\nimport { UnstyledIconButton } from '../UnstyledIconButton/UnstyledIconButton';\nimport { EyeOffSmallIcon, EyeSmallIcon } from '@utilitywarehouse/hearth-react-icons';\nimport { useIds } from '../../hooks/use-ids';\nimport type { InputBaseElement } from '../InputBase/InputBase';\nimport { useMergedRefs } from '@base-ui/utils/useMergedRefs';\n\nconst COMPONENT_NAME = 'PasswordInput';\nconst componentClassName = withGlobalPrefix(COMPONENT_NAME);\n\n/**\n * Use PasswordInput to securely collect a user's password, with a built-in\n * control for toggling visibility of the entered value. It automatically\n * resets to hidden when its parent form is submitted. For general text entry\n * use TextInput instead, and for search input use SearchInput.\n *\n * @summary An input for securely entering a password, with a visibility toggle.\n */\nexport const PasswordInput = forwardRef<InputBaseElement, PasswordInputProps>(\n ({ className, disabled, id: providedId, ...props }, forwardedRef) => {\n const internalRef = useRef<HTMLInputElement | null>(null);\n const inputRef = useMergedRefs(forwardedRef, internalRef);\n\n const [visible, setVisible] = useState(false);\n const [showVisibilityMessage, setShowVisibilityMessage] = useState(false);\n\n const handleVisibility = useCallback(() => {\n setVisible(prevVisible => !prevVisible);\n setShowVisibilityMessage(true);\n }, []);\n\n // If the PasswordInput is inside a form we should switch the input type\n // back to password when its parent form is submitted\n useEffect(() => {\n // Get the ref value and ensure proper typing\n let currentElement: HTMLInputElement | null = null;\n if (internalRef && typeof internalRef === 'object' && internalRef.current) {\n // Type assertion to ensure TypeScript understands this is a valid ref object\n const refObject = internalRef as RefObject<HTMLInputElement>;\n currentElement = refObject.current;\n }\n\n const handleSubmit = () => {\n if (currentElement?.type) {\n currentElement.type = 'password';\n setVisible(false);\n }\n };\n\n if (currentElement && currentElement.form !== null) {\n currentElement.form.addEventListener('submit', handleSubmit);\n }\n return () => {\n if (currentElement?.form) {\n currentElement.form.removeEventListener('submit', handleSubmit);\n }\n };\n }, [internalRef]);\n\n const visibilityMessage = `Your password is ${visible ? 'shown' : 'hidden'}!`;\n\n useEffect(() => {\n if (!showVisibilityMessage) return;\n const timeout = setTimeout(() => {\n setShowVisibilityMessage(false);\n }, 1500);\n return () => clearTimeout(timeout);\n }, [showVisibilityMessage, visible]);\n\n const { id } = useIds({ providedId, prefix: 'password-input' });\n\n return (\n <>\n <TextInput\n ref={inputRef}\n className={cn(componentClassName, className)}\n type={visible ? 'text' : 'password'}\n disabled={disabled}\n id={id}\n data-testid={componentClassName}\n {...props}\n >\n <InputSlot placement=\"suffix\">\n <UnstyledIconButton\n type=\"button\"\n label=\"toggle password visibility\"\n onClick={handleVisibility}\n disabled={disabled}\n aria-pressed={visible}\n >\n {visible ? <EyeSmallIcon /> : <EyeOffSmallIcon />}\n </UnstyledIconButton>\n </InputSlot>\n </TextInput>\n <div data-visually-hidden aria-live=\"assertive\" role=\"status\">\n {showVisibilityMessage ? visibilityMessage : ''}\n </div>\n </>\n );\n }\n);\n\nPasswordInput.displayName = COMPONENT_NAME;\n"]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
|
|
2
|
+
|
|
3
|
+
var _chunkE6QW7LY4cjs = require('./chunk-E6QW7LY4.cjs');var _chunkTZC7VV6Qcjs = require('./chunk-TZC7VV6Q.cjs');var _chunkOB7O3UFLcjs = require('./chunk-OB7O3UFL.cjs');var _chunkZPJNQBTNcjs = require('./chunk-ZPJNQBTN.cjs');var _chunkONNSZMWFcjs = require('./chunk-ONNSZMWF.cjs');var _chunk4Q432K4Wcjs = require('./chunk-4Q432K4W.cjs');var _react = require('react');var _jsxruntime = require('react/jsx-runtime');var s="Badge",p=_chunk4Q432K4Wcjs.b.call(void 0, s),B= exports.a =_react.forwardRef.call(void 0, (f,n)=>{let{className:d,colorScheme:i="info",flatBase:c,wrap:l,...g}=_chunkZPJNQBTNcjs.a.call(void 0, f,_chunkE6QW7LY4cjs.a,_chunkOB7O3UFLcjs.a,_chunkTZC7VV6Qcjs.a);return _jsxruntime.jsx.call(void 0, "span",{ref:n,className:_chunkONNSZMWFcjs.a.call(void 0, p,d),"data-colorscheme":i,"data-testid":p,"data-bottom-radius-zero":c?"":void 0,"data-wrap":l?"":void 0,...g})});B.displayName=s;exports.a = B;
|
|
4
|
+
//# sourceMappingURL=chunk-KYPME3YP.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/hearth/hearth/packages/react/dist/chunk-KYPME3YP.cjs","../src/components/Badge/Badge.tsx"],"names":["COMPONENT_NAME","componentClassName","withGlobalPrefix","Badge","forwardRef","props","ref","className","colorScheme","flatBase","wrap","badgeProps","extractProps","badgePropDefs","marginPropDefs","textTransformPropDefs","jsx","cn"],"mappings":"AAAA,qFAAY;AACZ;AACA,wDAAwC,wDAAyC,wDAAoC,wDAAyC,wDAAyC,wDAAyC,8BCFrN,+CAkCvB,IAvBEA,CAAAA,CAAiB,OAAA,CACjBC,CAAAA,CAAqBC,iCAAAA,CAA+B,CAAA,CAa7CC,CAAAA,aAAQC,+BAAAA,CAAsCC,CAAAA,CAAOC,CAAAA,CAAAA,EAAQ,CACxE,GAAM,CACJ,SAAA,CAAAC,CAAAA,CACA,WAAA,CAAAC,CAAAA,CAAc,MAAA,CACd,QAAA,CAAAC,CAAAA,CACA,IAAA,CAAAC,CAAAA,CACA,GAAGC,CACL,CAAA,CAAIC,iCAAAA,CAAaP,CAAOQ,mBAAAA,CAAeC,mBAAAA,CAAgBC,mBAAqB,CAAA,CAC5E,OACEC,6BAAAA,MAAC,CAAA,CACC,GAAA,CAAKV,CAAAA,CACL,SAAA,CAAWW,iCAAAA,CAAGhB,CAAoBM,CAAS,CAAA,CAC3C,kBAAA,CAAkBC,CAAAA,CAClB,aAAA,CAAaP,CAAAA,CACb,yBAAA,CAAyBQ,CAAAA,CAAW,EAAA,CAAK,KAAA,CAAA,CACzC,WAAA,CAAWC,CAAAA,CAAO,EAAA,CAAK,KAAA,CAAA,CACtB,GAAGC,CAAAA,CACN,CAEJ,CAAC,CAAA,CAEDR,CAAAA,CAAM,WAAA,CAAcH,CAAAA,CAAAA,cAAAA","file":"/home/runner/work/hearth/hearth/packages/react/dist/chunk-KYPME3YP.cjs","sourcesContent":[null,"import { forwardRef } from 'react';\nimport { cn } from '../../helpers/cn';\nimport type { ComponentRef } from 'react';\n\nimport { badgePropDefs } from './Badge.props';\nimport type { BadgeProps } from './Badge.props';\nimport { withGlobalPrefix } from '../../helpers/with-global-prefix';\nimport { extractProps } from '../../helpers/extract-props';\nimport { textTransformPropDefs } from '../../props/text-transform.props';\nimport { marginPropDefs } from '../../props/margin.props';\n\nconst COMPONENT_NAME = 'Badge';\nconst componentClassName = withGlobalPrefix(COMPONENT_NAME);\n\ntype BadgeElement = ComponentRef<'span'>;\n\n/**\n * Use Badge to convey status or highlight content with a small, read-only\n * visual label. Badges are not interactive; for a similar but interactive\n * element, use Chip instead. Use `colorScheme` to convey semantic meaning and\n * `variant` to control the visual style; note some `colorScheme`/`variant`\n * combinations (e.g. `highlight` with `emphasis`) are not supported.\n *\n * @summary A read-only visual label used to convey status or highlight content.\n */\nexport const Badge = forwardRef<BadgeElement, BadgeProps>((props, ref) => {\n const {\n className,\n colorScheme = 'info',\n flatBase,\n wrap,\n ...badgeProps\n } = extractProps(props, badgePropDefs, marginPropDefs, textTransformPropDefs);\n return (\n <span\n ref={ref}\n className={cn(componentClassName, className)}\n data-colorscheme={colorScheme}\n data-testid={componentClassName}\n data-bottom-radius-zero={flatBase ? '' : undefined}\n data-wrap={wrap ? '' : undefined}\n {...badgeProps}\n />\n );\n});\n\nBadge.displayName = COMPONENT_NAME;\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import{b as H}from"./chunk-AJ6U5OJT.js";import{
|
|
4
|
-
//# sourceMappingURL=chunk-
|
|
3
|
+
import{b as H}from"./chunk-AJ6U5OJT.js";import{c as b}from"./chunk-YWMUOY43.js";import{a as h}from"./chunk-2RRGJCBC.js";import{a as I}from"./chunk-V6QXHP4D.js";import{a as g}from"./chunk-TMDOWN4M.js";import{a as m}from"./chunk-ZSFO3ITI.js";import{a as A}from"./chunk-4MNQRAHO.js";import{a as P}from"./chunk-7X24J4CX.js";import{a as C}from"./chunk-J3AJBV4B.js";import{b as v}from"./chunk-PDEVCIQ3.js";import{forwardRef as G,useEffect as L,useRef as E}from"react";import{Accordion as i}from"radix-ui";import{jsx as e,jsxs as a}from"react/jsx-runtime";var N="CardAccordionItem",n=v(N),_=G(({className:x,title:S,description:c,headingElement:T="h3",summaryTitle:s,summaryDescription:l,children:R,value:o,onEditClick:y,...B},M)=>{let{setCurrentStep:z,setPreviousSteps:O,getStep:$,steps:d}=b(),r=$(o),w=r==="current"?"emphasis":"subtle",F=r==="current"?"neutralStrong":"neutralSubtle",p=E(null),f=E(!1),{labelId:t,helperTextId:u}=P({prefix:"card-accordion-item"});return L(()=>{if(!f.current){f.current=!0;return}r==="current"&&p.current?.focus()},[r]),e(i.Item,{asChild:!0,ref:M,className:C(n,x),disabled:r==="future","data-step":r,value:o,...B,children:e(I,{variant:w,colorScheme:F,direction:"column",children:a(H,{value:{value:o},children:[e(i.Header,{className:`${n}Header`,asChild:!0,children:a(T,{children:[e(i.Trigger,{ref:p,className:`${n}Trigger`,"aria-labelledby":t,"aria-describedby":c?u:void 0,children:a(A,{direction:"column",children:[r==="previous"&&s?e(m,{asChild:!0,size:"md",id:t,children:e("div",{children:s})}):e(m,{asChild:!0,size:"md",id:t,children:e("div",{children:S})}),c?e(g,{id:u,children:c}):null]})}),r==="previous"?e(h,{size:"sm",variant:"ghost",colorScheme:"functional","aria-describedby":t,onClick:k=>{z(o),d&&O(d.slice(0,d.indexOf(o))),y?.(k)},children:"Edit"}):null]})}),r==="previous"&&l?l:null,r==="current"?e(i.Content,{className:`${n}Content`,children:R}):null]})})})});_.displayName=N;export{_ as a};
|
|
4
|
+
//# sourceMappingURL=chunk-LBCDHBLY.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
//# sourceMappingURL=chunk-
|
|
3
|
+
var _chunkB2HYSLUXcjs = require('./chunk-B2HYSLUX.cjs');var _chunkMJVMVHKIcjs = require('./chunk-MJVMVHKI.cjs');var _chunkOB7O3UFLcjs = require('./chunk-OB7O3UFL.cjs');var _chunkRIHABKWYcjs = require('./chunk-RIHABKWY.cjs');var _chunkHIF6HKZ3cjs = require('./chunk-HIF6HKZ3.cjs');var _chunkZPJNQBTNcjs = require('./chunk-ZPJNQBTN.cjs');var _chunkONNSZMWFcjs = require('./chunk-ONNSZMWF.cjs');var _chunk4Q432K4Wcjs = require('./chunk-4Q432K4W.cjs');var _radixui = require('radix-ui');var _react = require('react');var _jsxruntime = require('react/jsx-runtime');var N="VerificationInput",d=_chunk4Q432K4Wcjs.b.call(void 0, N),G= exports.a =_react.forwardRef.call(void 0, (O,V)=>{let{className:x,disabled:a,readOnly:s,label:F,labelVariant:R,helperText:l,validationText:n,validationStatus:i,required:w,id:h,"aria-describedby":E,...S}=_chunkZPJNQBTNcjs.a.call(void 0, O,_chunkOB7O3UFLcjs.a),{id:C,labelId:m,helperTextId:p,validationTextId:r}=_chunkRIHABKWYcjs.a.call(void 0, {providedId:h,prefix:"verification-input"}),e=!s&&!a,D={id:C,labelId:m,helperTextId:p,validationTextId:r,label:F,labelVariant:R,helperText:l,validationText:e?n:void 0,validationStatus:e?i:void 0,required:w},_=_chunkHIF6HKZ3cjs.a.call(void 0, E,l?p:void 0,e&&i!==void 0&&n!==void 0?r:void 0),f=e&&i==="invalid";return _jsxruntime.jsx.call(void 0, _chunkMJVMVHKIcjs.a,{className:_chunkONNSZMWFcjs.a.call(void 0, d,x),"data-disabled":a?"":void 0,"data-testid":d,...D,children:_jsxruntime.jsxs.call(void 0, _radixui.unstable_OneTimePasswordField.Root,{className:`${d}Root`,disabled:a,readOnly:s,"aria-labelledby":m,"aria-describedby":_,"aria-invalid":f?!0:void 0,"aria-errormessage":f&&n!==void 0?r:void 0,"data-validation-status":e?i:void 0,...S,children:[Array.from({length:6}).map((L,g)=>_jsxruntime.jsx.call(void 0, _radixui.unstable_OneTimePasswordField.Input,{asChild:!0,children:_jsxruntime.jsx.call(void 0, _chunkB2HYSLUXcjs.a,{})},g)),_jsxruntime.jsx.call(void 0, _radixui.unstable_OneTimePasswordField.HiddenInput,{ref:V})]})})});G.displayName=N;exports.a = G;
|
|
4
|
+
//# sourceMappingURL=chunk-MAGAAUVZ.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/hearth/hearth/packages/react/dist/chunk-
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/hearth/hearth/packages/react/dist/chunk-MAGAAUVZ.cjs","../src/components/VerificationInput/VerificationInput.tsx"],"names":["COMPONENT_NAME","componentClassName","withGlobalPrefix","VerificationInput","forwardRef","props","ref","className","disabled","readOnly","label","labelVariant","helperText","validationText","validationStatus","required","providedId","ariaDescribedby","verificationInputProps","extractProps","marginPropDefs","id","labelId","helperTextId","validationTextId","useIds","showValidation","formFieldProps","ariaDescribedbyValue","mergeIds","isInvalid","jsx","FormField","cn","jsxs","OneTimePasswordFieldPrimitive"],"mappings":"AAAA,qFAAY;AACZ;AACA,wDAAwC,wDAAyC,wDAAyC,wDAAyC,wDAAyC,wDAAyC,wDAAyC,wDAAyC,mCCAxP,8BAUpD,+CAuEnB,IApEFA,CAAAA,CAAiB,mBAAA,CACjBC,CAAAA,CAAqBC,iCAAAA,CAA+B,CAAA,CAW7CC,CAAAA,aAAoBC,+BAAAA,CAC9BC,CAAAA,CAAOC,CAAAA,CAAAA,EAAQ,CACd,GAAM,CACJ,SAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,KAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CAAAA,CACA,UAAA,CAAAC,CAAAA,CACA,cAAA,CAAAC,CAAAA,CACA,gBAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,EAAA,CAAIC,CAAAA,CACJ,kBAAA,CAAoBC,CAAAA,CACpB,GAAGC,CACL,CAAA,CAAIC,iCAAAA,CAAad,CAAOe,mBAAc,CAAA,CAEhC,CAAE,EAAA,CAAAC,CAAAA,CAAI,OAAA,CAAAC,CAAAA,CAAS,YAAA,CAAAC,CAAAA,CAAc,gBAAA,CAAAC,CAAiB,CAAA,CAAIC,iCAAAA,CACtD,UAAA,CAAAT,CAAAA,CACA,MAAA,CAAQ,oBACV,CAAC,CAAA,CAEKU,CAAAA,CAAyB,CAACjB,CAAAA,EAAY,CAACD,CAAAA,CAEvCmB,CAAAA,CAAiB,CACrB,EAAA,CAAAN,CAAAA,CACA,OAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CAAAA,CACA,gBAAA,CAAAC,CAAAA,CACA,KAAA,CAAAd,CAAAA,CACA,YAAA,CAAAC,CAAAA,CACA,UAAA,CAAAC,CAAAA,CACA,cAAA,CAAgBc,CAAAA,CAAiBb,CAAAA,CAAiB,KAAA,CAAA,CAClD,gBAAA,CAAkBa,CAAAA,CAAiBZ,CAAAA,CAAmB,KAAA,CAAA,CACtD,QAAA,CAAAC,CACF,CAAA,CAEMa,CAAAA,CAAuBC,iCAAAA,CAC3BZ,CACEL,CAAAA,CAAaW,CAAAA,CAAe,KAAA,CAAA,CAC9BG,CAAAA,EAAkBZ,CAAAA,GAAqB,KAAA,CAAA,EAAaD,CAAAA,GAAmB,KAAA,CAAA,CACnEW,CAAAA,CACA,KAAA,CACN,CAAA,CAEMM,CAAAA,CAAYJ,CAAAA,EAAkBZ,CAAAA,GAAqB,SAAA,CAIzD,OACEiB,6BAAAA,mBAACC,CAAA,CACC,SAAA,CAAWC,iCAAAA,CAAGhC,CAAoBM,CAAS,CAAA,CAC3C,eAAA,CAAeC,CAAAA,CAAW,EAAA,CAAK,KAAA,CAAA,CAC/B,aAAA,CAAaP,CAAAA,CACZ,GAAG0B,CAAAA,CAEJ,QAAA,CAAAO,8BAAAA,sCAACC,CAA8B,IAAA,CAA9B,CACC,SAAA,CAAW,CAAA,EAAA","file":"/home/runner/work/hearth/hearth/packages/react/dist/chunk-MAGAAUVZ.cjs","sourcesContent":[null,"'use client';\n\nimport { unstable_OneTimePasswordField as OneTimePasswordFieldPrimitive } from 'radix-ui';\nimport { withGlobalPrefix } from '../../helpers/with-global-prefix';\nimport type { VerificationInputProps } from './VerificationInput.props';\nimport { FormField } from '../FormField/FormField';\nimport { useIds } from '../../hooks/use-ids';\nimport { extractProps } from '../../helpers/extract-props';\nimport { marginPropDefs } from '../../props/margin.props';\nimport { InputBase } from '../InputBase/InputBase';\nimport { cn } from '../../helpers/cn';\nimport { mergeIds } from '../../helpers/merge-ids';\nimport { forwardRef } from 'react';\nimport type { ComponentRef } from 'react';\n\nconst COMPONENT_NAME = 'VerificationInput';\nconst componentClassName = withGlobalPrefix(COMPONENT_NAME);\n\nexport type VerificationInputElement = ComponentRef<'input'>;\n\n/**\n * Use VerificationInput to let users enter a one-time password (OTP) sent via\n * SMS, email, or an authenticator app. For general text entry, use TextInput;\n * for passwords, use PasswordInput instead. A `label` is required.\n *\n * @summary An input for entering a one-time password (OTP).\n */\nexport const VerificationInput = forwardRef<VerificationInputElement, VerificationInputProps>(\n (props, ref) => {\n const {\n className,\n disabled,\n readOnly,\n label,\n labelVariant,\n helperText,\n validationText,\n validationStatus,\n required,\n id: providedId,\n 'aria-describedby': ariaDescribedby,\n ...verificationInputProps\n } = extractProps(props, marginPropDefs);\n\n const { id, labelId, helperTextId, validationTextId } = useIds({\n providedId,\n prefix: 'verification-input',\n });\n\n const showValidation = Boolean(!readOnly && !disabled);\n\n const formFieldProps = {\n id,\n labelId,\n helperTextId,\n validationTextId,\n label,\n labelVariant,\n helperText,\n validationText: showValidation ? validationText : undefined,\n validationStatus: showValidation ? validationStatus : undefined,\n required,\n };\n\n const ariaDescribedbyValue = mergeIds(\n ariaDescribedby,\n !!helperText ? helperTextId : undefined,\n showValidation && validationStatus !== undefined && validationText !== undefined\n ? validationTextId\n : undefined\n );\n\n const isInvalid = showValidation && validationStatus === 'invalid';\n\n const PASSWORD_LENGTH = 6;\n\n return (\n <FormField\n className={cn(componentClassName, className)}\n data-disabled={disabled ? '' : undefined}\n data-testid={componentClassName}\n {...formFieldProps}\n >\n <OneTimePasswordFieldPrimitive.Root\n className={`${componentClassName}Root`}\n disabled={disabled}\n readOnly={readOnly}\n aria-labelledby={labelId}\n aria-describedby={ariaDescribedbyValue}\n aria-invalid={isInvalid ? true : undefined}\n aria-errormessage={\n isInvalid && validationText !== undefined ? validationTextId : undefined\n }\n data-validation-status={showValidation ? validationStatus : undefined}\n {...verificationInputProps}\n >\n {Array.from({ length: PASSWORD_LENGTH }).map((_, i) => (\n <OneTimePasswordFieldPrimitive.Input key={i} asChild>\n <InputBase />\n </OneTimePasswordFieldPrimitive.Input>\n ))}\n\n <OneTimePasswordFieldPrimitive.HiddenInput ref={ref} />\n </OneTimePasswordFieldPrimitive.Root>\n </FormField>\n );\n }\n);\n\nVerificationInput.displayName = COMPONENT_NAME;\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import{c as B}from"./chunk-AJ6U5OJT.js";import{
|
|
4
|
-
//# sourceMappingURL=chunk-
|
|
3
|
+
import{c as B}from"./chunk-AJ6U5OJT.js";import{c as A}from"./chunk-YWMUOY43.js";import{a}from"./chunk-2RRGJCBC.js";import{a as c}from"./chunk-J3AJBV4B.js";import{b as C}from"./chunk-PDEVCIQ3.js";import{forwardRef as y}from"react";import{jsx as h}from"react/jsx-runtime";var v="CardAccordionButton",g=C(v),N=y(({className:s,children:u,action:x,onClick:o,...m},p)=>{let{steps:r,setPreviousSteps:d,setCurrentStep:f,previousSteps:n}=A(),e=B();return x==="next"?h(a,{ref:p,className:c(g,s),type:"button",...m,variant:"solid",colorScheme:"highlight","data-action":"next",onClick:i=>{if(o&&o(i),d(t=>[...t,e.value]),r){let t=r.indexOf(e.value);t>=0&&t<r.length-1&&f(r[t+1])}},children:u||"Next"}):h(a,{ref:p,className:c(g,s),type:"button",...m,variant:"outline",colorScheme:"functional","data-action":"previous",onClick:i=>{if(o&&o(i),n.length>0){let t=n[n.length-1];f(t),d(l=>l.slice(0,l.indexOf(e.value)))}},children:u||"Previous"})});N.displayName=v;export{N as a};
|
|
4
|
+
//# sourceMappingURL=chunk-MJ43JZBU.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
//# sourceMappingURL=chunk-
|
|
3
|
+
var _chunkYX67YOF6cjs = require('./chunk-YX67YOF6.cjs');var _chunkONNSZMWFcjs = require('./chunk-ONNSZMWF.cjs');var _chunk4Q432K4Wcjs = require('./chunk-4Q432K4W.cjs');var _react = require('react');var _jsxruntime = require('react/jsx-runtime');var t="TablePagination",p=_chunk4Q432K4Wcjs.b.call(void 0, t),l= exports.a =_react.forwardRef.call(void 0, ({className:e,...i},r)=>_jsxruntime.jsx.call(void 0, _chunkYX67YOF6cjs.a,{ref:r,className:_chunkONNSZMWFcjs.a.call(void 0, p,e),...i,as:"div"}));l.displayName=t;exports.a = l;
|
|
4
|
+
//# sourceMappingURL=chunk-N764D6V5.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/hearth/hearth/packages/react/dist/chunk-
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/hearth/hearth/packages/react/dist/chunk-N764D6V5.cjs","../src/components/Table/TablePagination.tsx"],"names":["COMPONENT_NAME","componentClassName","withGlobalPrefix","TablePagination","forwardRef","className","props","ref","jsx","Pagination","cn"],"mappings":"AAAA,qFAAY;AACZ;AACA,wDAAwC,wDAAyC,wDAAyC,8BCF/F,+CAgBrB,IARAA,CAAAA,CAAiB,iBAAA,CACjBC,CAAAA,CAAqBC,iCAAAA,CAA+B,CAAA,CAI7CC,CAAAA,aAAkBC,+BAAAA,CAC5B,CAAE,SAAA,CAAAC,CAAAA,CAAW,GAAGC,CAAM,CAAA,CAAGC,CAAAA,CAAAA,EAEtBC,6BAAAA,mBAACC,CAAA,CAAW,GAAA,CAAKF,CAAAA,CAAK,SAAA,CAAWG,iCAAAA,CAAGT,CAAoBI,CAAS,CAAA,CAAI,GAAGC,CAAAA,CAAO,EAAA,CAAG,KAAA,CAAM,CAG9F,CAAA,CAEAH,CAAAA,CAAgB,WAAA,CAAcH,CAAAA,CAAAA,cAAAA","file":"/home/runner/work/hearth/hearth/packages/react/dist/chunk-N764D6V5.cjs","sourcesContent":[null,"import { forwardRef } from 'react';\nimport type { ComponentRef } from 'react';\n\nimport { cn } from '../../helpers/cn';\nimport { withGlobalPrefix } from '../../helpers/with-global-prefix';\nimport { Pagination } from '../Pagination/Pagination';\nimport type { TablePaginationProps } from './TablePagination.props';\n\nconst COMPONENT_NAME = 'TablePagination';\nconst componentClassName = withGlobalPrefix(COMPONENT_NAME);\n\ntype TablePaginationElement = ComponentRef<'div'>;\n\nexport const TablePagination = forwardRef<TablePaginationElement, TablePaginationProps>(\n ({ className, ...props }, ref) => {\n return (\n <Pagination ref={ref} className={cn(componentClassName, className)} {...props} as=\"div\" />\n );\n }\n);\n\nTablePagination.displayName = COMPONENT_NAME;\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import{a as d}from"./chunk-
|
|
4
|
-
//# sourceMappingURL=chunk-
|
|
3
|
+
import{a as d}from"./chunk-ZGIMM7G5.js";import{a as c}from"./chunk-TJHI42VN.js";import{a as m}from"./chunk-QNITBIE4.js";import{a as f}from"./chunk-7X24J4CX.js";import{a as p}from"./chunk-J3AJBV4B.js";import{b as u}from"./chunk-PDEVCIQ3.js";import{forwardRef as S,useRef as g,useState as I,useCallback as x,useEffect as b}from"react";import{EyeOffSmallIcon as B,EyeSmallIcon as N}from"@utilitywarehouse/hearth-react-icons";import{useMergedRefs as L}from"@base-ui/utils/useMergedRefs";import{Fragment as C,jsx as s,jsxs as V}from"react/jsx-runtime";var w="PasswordInput",y=u(w),j=S(({className:E,disabled:n,id:v,...M},P)=>{let e=g(null),h=L(P,e),[o,i]=I(!1),[r,l]=I(!1),T=x(()=>{i(t=>!t),l(!0)},[]);b(()=>{let t=null;e&&typeof e=="object"&&e.current&&(t=e.current);let a=()=>{t?.type&&(t.type="password",i(!1))};return t&&t.form!==null&&t.form.addEventListener("submit",a),()=>{t?.form&&t.form.removeEventListener("submit",a)}},[e]);let O=`Your password is ${o?"shown":"hidden"}!`;b(()=>{if(!r)return;let t=setTimeout(()=>{l(!1)},1500);return()=>clearTimeout(t)},[r,o]);let{id:R}=f({providedId:v,prefix:"password-input"});return V(C,{children:[s(d,{ref:h,className:p(y,E),type:o?"text":"password",disabled:n,id:R,"data-testid":y,...M,children:s(c,{placement:"suffix",children:s(m,{type:"button",label:"toggle password visibility",onClick:T,disabled:n,"aria-pressed":o,children:o?s(N,{}):s(B,{})})})}),s("div",{"data-visually-hidden":!0,"aria-live":"assertive",role:"status",children:r?O:""})]})});j.displayName=w;export{j as a};
|
|
4
|
+
//# sourceMappingURL=chunk-S2CDQ7HR.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }"use client";
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
//# sourceMappingURL=chunk-
|
|
3
|
+
var _chunkEU7QBTGKcjs = require('./chunk-EU7QBTGK.cjs');var _chunkFTCABZFPcjs = require('./chunk-FTCABZFP.cjs');var _chunkM7TQ74JDcjs = require('./chunk-M7TQ74JD.cjs');var _chunkRS5YT3MKcjs = require('./chunk-RS5YT3MK.cjs');var _chunkHHKQ3ZBDcjs = require('./chunk-HHKQ3ZBD.cjs');var _chunk3ODBY6JGcjs = require('./chunk-3ODBY6JG.cjs');var _chunkIVFMFU6Ucjs = require('./chunk-IVFMFU6U.cjs');var _chunkQKGE3FJXcjs = require('./chunk-QKGE3FJX.cjs');var _chunk6SM74N7Tcjs = require('./chunk-6SM74N7T.cjs');var _chunkT27AGDTJcjs = require('./chunk-T27AGDTJ.cjs');var _chunkZPJNQBTNcjs = require('./chunk-ZPJNQBTN.cjs');var _chunkONNSZMWFcjs = require('./chunk-ONNSZMWF.cjs');var _chunk4Q432K4Wcjs = require('./chunk-4Q432K4W.cjs');var _radixui = require('radix-ui');var _hearthreacticons = require('@utilitywarehouse/hearth-react-icons');var _react = require('react');var _jsxruntime = require('react/jsx-runtime');var T="Modal",o=_chunk4Q432K4Wcjs.b.call(void 0, T),k= exports.a =_react.forwardRef.call(void 0, (I,$)=>{let{className:b,image:f,keepMounted:w,container:H,heading:O,description:a,hideCloseButton:g,loading:n,loadingHeading:l,loadingDescription:r,children:z,fullScreen:F,forceMount:u,loadingText:d,...S}=_chunkZPJNQBTNcjs.a.call(void 0, I,_chunkM7TQ74JDcjs.a);_chunkT27AGDTJcjs.a.call(void 0, u!==void 0,"Modal `forceMount` is deprecated. Use `keepMounted` instead.");let E={forceMount:(_nullishCoalesce(w, () => (u)))||void 0,container:H},v=!!f,A=!!(n?(d||l)&&r:a);return _jsxruntime.jsx.call(void 0, _radixui.Dialog.Portal,{...E,children:_jsxruntime.jsx.call(void 0, _radixui.Dialog.Overlay,{className:_chunk4Q432K4Wcjs.b.call(void 0, "Overlay"),children:_jsxruntime.jsx.call(void 0, "div",{className:`${o}Scroll`,children:_jsxruntime.jsx.call(void 0, "div",{className:`${o}ScrollPadding`,children:_jsxruntime.jsxs.call(void 0, _radixui.Dialog.Content,{ref:$,className:_chunkONNSZMWFcjs.a.call(void 0, o,b),"data-contains-image":v?"":void 0,"data-hide-close-button":g?"":void 0,"data-testid":o,...A?{}:{"aria-describedby":void 0},...S,children:[_jsxruntime.jsx.call(void 0, _chunkEU7QBTGKcjs.a,{children:_jsxruntime.jsx.call(void 0, _chunkRS5YT3MKcjs.a,{type:"button",label:"Close","data-visually-hidden":g?"":void 0,className:`${o}CloseIconButton`,children:_jsxruntime.jsx.call(void 0, _hearthreacticons.CloseMediumIcon,{})})}),_jsxruntime.jsxs.call(void 0, "div",{className:`${o}OuterContainer`,children:[n?null:_jsxruntime.jsxs.call(void 0, "div",{className:`${o}InnerContainer`,children:[v?_jsxruntime.jsx.call(void 0, _chunkFTCABZFPcjs.a,{children:_jsxruntime.jsx.call(void 0, "div",{className:`${o}Image`,children:f})}):null,_jsxruntime.jsxs.call(void 0, "div",{className:`${o}Header`,children:[_jsxruntime.jsx.call(void 0, _chunkIVFMFU6Ucjs.a,{asChild:!0,children:_jsxruntime.jsx.call(void 0, _radixui.Dialog.Title,{asChild:!0,children:_jsxruntime.jsx.call(void 0, _chunk3ODBY6JGcjs.a,{size:"lg",textWrap:"wrap",children:O})})}),a?_jsxruntime.jsx.call(void 0, _radixui.Dialog.Description,{asChild:!0,children:_jsxruntime.jsx.call(void 0, _chunk6SM74N7Tcjs.a,{size:"md",as:"span",children:a})}):null]})]}),n?_jsxruntime.jsxs.call(void 0, _chunkQKGE3FJXcjs.a,{direction:"column",gap:"300",alignItems:"center",paddingY:"200",width:"100%",children:[_jsxruntime.jsx.call(void 0, _chunkHHKQ3ZBDcjs.a,{size:"lg"}),_jsxruntime.jsxs.call(void 0, "div",{className:`${o}LoadingHeader`,children:[_jsxruntime.jsx.call(void 0, _chunkIVFMFU6Ucjs.a,{asChild:!0,children:_jsxruntime.jsx.call(void 0, _radixui.Dialog.Title,{asChild:!0,children:_jsxruntime.jsx.call(void 0, _chunk3ODBY6JGcjs.a,{size:"lg",textAlign:"center",textWrap:"wrap",children:l||d||"Loading"})})}),(d||l)&&r?_jsxruntime.jsx.call(void 0, _radixui.Dialog.Description,{asChild:!0,children:_jsxruntime.jsx.call(void 0, _chunk6SM74N7Tcjs.a,{size:"md",as:"span",textAlign:"center",children:r})}):null]})]}):z]})]})})})})})});k.displayName=T;exports.a = k;
|
|
4
|
+
//# sourceMappingURL=chunk-SWFUZRPD.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/hearth/hearth/packages/react/dist/chunk-
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/hearth/hearth/packages/react/dist/chunk-SWFUZRPD.cjs","../src/components/Modal/Modal.tsx"],"names":["COMPONENT_NAME","componentClassName","withGlobalPrefix","Modal","forwardRef","props","ref","className","image","keepMounted","container","heading","description","hideCloseButton","loading","loadingHeading","loadingDescription","children","_fullScreen","forceMount","loadingText","modalProps","extractProps","modalPropDefs","warn","portalProps","containsImage","hasDescription","jsx","DialogPrimitive"],"mappings":"AAAA,yLAAY;AACZ;AACA,wDAAwC,wDAAyC,wDAAyC,wDAAyC,wDAAyC,wDAAyC,wDAAyC,wDAAyC,wDAAyC,wDAAyC,wDAAyC,wDAAyC,wDAAyC,mCCA1e,wEAOV,8BAOL,+CAoET,IAhEZA,CAAAA,CAAiB,OAAA,CACjBC,CAAAA,CAAqBC,iCAAAA,CAA+B,CAAA,CAc7CC,CAAAA,aAAQC,+BAAAA,CAAsCC,CAAAA,CAAOC,CAAAA,CAAAA,EAAQ,CACxE,GAAM,CACJ,SAAA,CAAAC,CAAAA,CACA,KAAA,CAAAC,CAAAA,CACA,WAAA,CAAAC,CAAAA,CACA,SAAA,CAAAC,CAAAA,CACA,OAAA,CAAAC,CAAAA,CACA,WAAA,CAAAC,CAAAA,CACA,eAAA,CAAAC,CAAAA,CACA,OAAA,CAAAC,CAAAA,CACA,cAAA,CAAAC,CAAAA,CACA,kBAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CAAAA,CAGA,UAAA,CAAYC,CAAAA,CACZ,UAAA,CAAAC,CAAAA,CACA,WAAA,CAAAC,CAAAA,CACA,GAAGC,CACL,CAAA,CAAIC,iCAAAA,CAAajB,CAAOkB,mBAAa,CAAA,CACrCC,iCAAAA,CAAKL,GAAe,KAAA,CAAA,CAAW,8DAA8D,CAAA,CAE7F,IAAMM,CAAAA,CAAc,CAAE,UAAA,CAAA,kBADMhB,CAAAA,SAAeU,GAAAA,CAAAA,EACc,KAAA,CAAA,CAAW,SAAA,CAAAT,CAAU,CAAA,CACxEgB,CAAAA,CAAgB,CAAA,CAAQlB,CAAAA,CACxBmB,CAAAA,CAAiB,CAAA,CAAA,CACrBb,CAAAA,CAAAA,CAAWM,CAAAA,EAAeL,CAAAA,CAAAA,EAAmBC,CAAAA,CAAqBJ,CAAAA,CAAAA,CAGpE,OACEgB,6BAAAA,eAACC,CAAgB,MAAA,CAAhB,CAAwB,GAAGJ,CAAAA,CAC1B,QAAA,CAAAG,6BAAAA,eAACC,CAAgB,OAAA,CAAhB,CAAwB,SAAA,CAAW3B,iCAAAA,SAA0B,CAAA,CAC5D,QAAA,CAAA0B,6BAAAA,KAAC,CAAA,CAAI,SAAA,CAAW,CAAA,EAAA","file":"/home/runner/work/hearth/hearth/packages/react/dist/chunk-SWFUZRPD.cjs","sourcesContent":[null,"'use client';\n\nimport { Dialog as DialogPrimitive } from 'radix-ui';\nimport { cn } from '../../helpers/cn';\nimport { warn } from '../../helpers/logger';\nimport { withGlobalPrefix } from '../../helpers/with-global-prefix';\nimport { modalPropDefs, type ModalProps } from './Modal.props';\nimport { Heading } from '../Heading/Heading';\nimport { UnstyledIconButton } from '../UnstyledIconButton/UnstyledIconButton';\nimport { CloseMediumIcon } from '@utilitywarehouse/hearth-react-icons';\nimport { BodyText } from '../BodyText/BodyText';\nimport { ModalClose } from './ModalClose';\nimport { ModalContent } from './ModalContent';\nimport { Box } from '../Box/Box';\nimport { Flex } from '../Flex/Flex';\nimport { Spinner } from '../Spinner/Spinner';\nimport { forwardRef } from 'react';\nimport type { ComponentRef } from 'react';\nimport { extractProps } from '../../helpers/extract-props';\n\nconst COMPONENT_NAME = 'Modal';\nconst componentClassName = withGlobalPrefix(COMPONENT_NAME);\n\ntype ModalElement = ComponentRef<'div'>;\n\n/**\n * Use Modal to overlay content that requests a decision from the user or\n * informs them of important information, without navigating to a new page.\n * Modal must be wrapped in a ModalRoot, and is typically composed with\n * ModalTrigger, ModalContent, ModalFooter, and ModalClose. Pass `heading` and\n * `description` for standard content, or custom children alongside\n * ModalFooter for more control over layout.\n *\n * @summary An overlay that requests a decision or displays important information.\n */\nexport const Modal = forwardRef<ModalElement, ModalProps>((props, ref) => {\n const {\n className,\n image,\n keepMounted,\n container,\n heading,\n description,\n hideCloseButton,\n loading,\n loadingHeading,\n loadingDescription,\n children,\n // Deprecated and ignored; destructured so it isn't forwarded to the DOM.\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n fullScreen: _fullScreen,\n forceMount,\n loadingText,\n ...modalProps\n } = extractProps(props, modalPropDefs);\n warn(forceMount !== undefined, 'Modal `forceMount` is deprecated. Use `keepMounted` instead.');\n const resolvedKeepMounted = keepMounted ?? forceMount;\n const portalProps = { forceMount: resolvedKeepMounted || undefined, container };\n const containsImage = Boolean(image);\n const hasDescription = Boolean(\n loading ? (loadingText || loadingHeading) && loadingDescription : description\n );\n\n return (\n <DialogPrimitive.Portal {...portalProps}>\n <DialogPrimitive.Overlay className={withGlobalPrefix('Overlay')}>\n <div className={`${componentClassName}Scroll`}>\n <div className={`${componentClassName}ScrollPadding`}>\n <DialogPrimitive.Content\n ref={ref}\n className={cn(componentClassName, className)}\n data-contains-image={containsImage ? '' : undefined}\n data-hide-close-button={hideCloseButton ? '' : undefined}\n data-testid={componentClassName}\n {...(hasDescription ? {} : { 'aria-describedby': undefined })}\n {...modalProps}\n >\n <ModalClose>\n <UnstyledIconButton\n type=\"button\"\n label=\"Close\"\n data-visually-hidden={hideCloseButton ? '' : undefined}\n className={`${componentClassName}CloseIconButton`}\n >\n <CloseMediumIcon />\n </UnstyledIconButton>\n </ModalClose>\n <div className={`${componentClassName}OuterContainer`}>\n {!loading ? (\n <div className={`${componentClassName}InnerContainer`}>\n {containsImage ? (\n <ModalContent>\n <div className={`${componentClassName}Image`}>{image}</div>\n </ModalContent>\n ) : null}\n <div className={`${componentClassName}Header`}>\n <Box asChild>\n <DialogPrimitive.Title asChild>\n <Heading size=\"lg\" textWrap=\"wrap\">\n {heading}\n </Heading>\n </DialogPrimitive.Title>\n </Box>\n {description ? (\n <DialogPrimitive.Description asChild>\n <BodyText size=\"md\" as=\"span\">\n {description}\n </BodyText>\n </DialogPrimitive.Description>\n ) : null}\n </div>\n </div>\n ) : null}\n\n {loading ? (\n <Flex\n direction=\"column\"\n gap=\"300\"\n alignItems=\"center\"\n paddingY=\"200\"\n width=\"100%\"\n >\n <Spinner size=\"lg\" />\n <div className={`${componentClassName}LoadingHeader`}>\n <Box asChild>\n <DialogPrimitive.Title asChild>\n <Heading size=\"lg\" textAlign=\"center\" textWrap=\"wrap\">\n {loadingHeading || loadingText || 'Loading'}\n </Heading>\n </DialogPrimitive.Title>\n </Box>\n {(loadingText || loadingHeading) && loadingDescription ? (\n <DialogPrimitive.Description asChild>\n <BodyText size=\"md\" as=\"span\" textAlign=\"center\">\n {loadingDescription}\n </BodyText>\n </DialogPrimitive.Description>\n ) : null}\n </div>\n </Flex>\n ) : (\n children\n )}\n </div>\n </DialogPrimitive.Content>\n </div>\n </div>\n </DialogPrimitive.Overlay>\n </DialogPrimitive.Portal>\n );\n});\n\nModal.displayName = COMPONENT_NAME;\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
|
|
2
2
|
|
|
3
|
-
var _chunkIAFYIHVPcjs = require('./chunk-IAFYIHVP.cjs');var
|
|
4
|
-
//# sourceMappingURL=chunk-
|
|
3
|
+
var _chunkIAFYIHVPcjs = require('./chunk-IAFYIHVP.cjs');var _chunkB2HYSLUXcjs = require('./chunk-B2HYSLUX.cjs');var _chunkMJVMVHKIcjs = require('./chunk-MJVMVHKI.cjs');var _chunkY4KCRRDDcjs = require('./chunk-Y4KCRRDD.cjs');var _chunkN4PBDFEJcjs = require('./chunk-N4PBDFEJ.cjs');var _chunkRS5YT3MKcjs = require('./chunk-RS5YT3MK.cjs');var _chunkHHKQ3ZBDcjs = require('./chunk-HHKQ3ZBD.cjs');var _chunkOB7O3UFLcjs = require('./chunk-OB7O3UFL.cjs');var _chunkRIHABKWYcjs = require('./chunk-RIHABKWY.cjs');var _chunkHIF6HKZ3cjs = require('./chunk-HIF6HKZ3.cjs');var _chunkZPJNQBTNcjs = require('./chunk-ZPJNQBTN.cjs');var _chunkONNSZMWFcjs = require('./chunk-ONNSZMWF.cjs');var _chunk4Q432K4Wcjs = require('./chunk-4Q432K4W.cjs');var _combobox = require('@base-ui/react/combobox');var _hearthreacticons = require('@utilitywarehouse/hearth-react-icons');var _radixui = require('radix-ui');var _jsxruntime = require('react/jsx-runtime');var F="Combobox",r=_chunk4Q432K4Wcjs.b.call(void 0, F);function Y(d){let{className:w,children:p,triggerOnlyOnType:C,validationStatus:b,validationText:u,label:M,labelVariant:R,helperText:P,id:L,disabled:t,required:U,noOptionsFoundText:$,statusText:c,loading:D,hideLabel:k,placeholder:q,"aria-describedby":z,...G}=_chunkZPJNQBTNcjs.a.call(void 0, d,_chunkOB7O3UFLcjs.a),{id:S,labelId:H,helperTextId:I,validationTextId:f}=_chunkRIHABKWYcjs.a.call(void 0, {providedId:L,prefix:"combobox"}),a=!t,_={id:S,labelId:H,helperTextId:I,validationTextId:f,label:M,labelVariant:R,helperText:P,validationText:a?u:void 0,validationStatus:a?b:void 0,required:U,hideLabel:k},v=a&&b==="invalid",J=_chunkHIF6HKZ3cjs.a.call(void 0, z,P?I:void 0,a&&b!==void 0&&u!==void 0?f:void 0),K=!!c||!!d.items||!!p;return _jsxruntime.jsx.call(void 0, _chunkMJVMVHKIcjs.a,{className:_chunkONNSZMWFcjs.a.call(void 0, r,w),"data-disabled":t?"":void 0,"data-testid":r,..._,children:_jsxruntime.jsxs.call(void 0, _combobox.Combobox.Root,{openOnInputClick:!C,...G,children:[_jsxruntime.jsx.call(void 0, _combobox.Combobox.Input,{render:_jsxruntime.jsxs.call(void 0, _chunkB2HYSLUXcjs.a,{id:S,disabled:t,placeholder:q,"aria-describedby":J,"aria-invalid":v?!0:void 0,"aria-errormessage":v&&u!==void 0?f:void 0,children:[_jsxruntime.jsx.call(void 0, _combobox.Combobox.Trigger,{disabled:t,render:_jsxruntime.jsx.call(void 0, _chunkIAFYIHVPcjs.a,{placement:"prefix",asChild:!0,children:_jsxruntime.jsx.call(void 0, _chunkRS5YT3MKcjs.a,{type:"button",label:"Open popup",disabled:t,children:_jsxruntime.jsx.call(void 0, _hearthreacticons.SearchMediumIcon,{})})})}),D?_jsxruntime.jsx.call(void 0, _chunkIAFYIHVPcjs.a,{placement:"suffix",children:_jsxruntime.jsx.call(void 0, _chunkHHKQ3ZBDcjs.a,{size:"xs",color:"primary"})}):null,_jsxruntime.jsx.call(void 0, _combobox.Combobox.Clear,{render:_jsxruntime.jsx.call(void 0, _chunkIAFYIHVPcjs.a,{placement:"suffix",asChild:!0,children:_jsxruntime.jsx.call(void 0, _chunkRS5YT3MKcjs.a,{type:"button",label:"Clear selection",disabled:t,children:_jsxruntime.jsx.call(void 0, _hearthreacticons.CloseSmallIcon,{})})})}),C?null:_jsxruntime.jsx.call(void 0, _combobox.Combobox.Trigger,{disabled:t,render:_jsxruntime.jsx.call(void 0, _chunkIAFYIHVPcjs.a,{placement:"suffix",asChild:!0,children:_jsxruntime.jsx.call(void 0, _chunkRS5YT3MKcjs.a,{type:"button",label:"Open popup",disabled:t,children:_jsxruntime.jsx.call(void 0, _hearthreacticons.ExpandSmallIcon,{})})})})]})}),K?_jsxruntime.jsx.call(void 0, _combobox.Combobox.Portal,{children:_jsxruntime.jsx.call(void 0, _combobox.Combobox.Positioner,{side:"bottom",sideOffset:16,align:"start",alignOffset:-47,children:_jsxruntime.jsxs.call(void 0, _combobox.Combobox.Popup,{className:`${r}Popup`,children:[c?_jsxruntime.jsx.call(void 0, _combobox.Combobox.Status,{className:`${r}StatusText`,children:c}):null,d.items?_jsxruntime.jsx.call(void 0, _chunkY4KCRRDDcjs.a,{className:`${r}Empty`,children:$}):null,_jsxruntime.jsxs.call(void 0, _radixui.ScrollArea.Root,{className:_chunk4Q432K4Wcjs.b.call(void 0, "ScrollAreaRoot"),type:"auto",children:[_jsxruntime.jsx.call(void 0, _radixui.ScrollArea.Viewport,{className:_chunk4Q432K4Wcjs.b.call(void 0, "ScrollAreaViewport"),children:_jsxruntime.jsx.call(void 0, _combobox.Combobox.List,{className:`${r}List`,children:p||(x=>_jsxruntime.jsx.call(void 0, _chunkN4PBDFEJcjs.a,{value:x,children:x},x))})}),_jsxruntime.jsx.call(void 0, _radixui.ScrollArea.Scrollbar,{className:_chunk4Q432K4Wcjs.b.call(void 0, "ScrollAreaScrollbar"),orientation:"vertical",children:_jsxruntime.jsx.call(void 0, _radixui.ScrollArea.Thumb,{className:_chunk4Q432K4Wcjs.b.call(void 0, "ScrollAreaThumb")})})]})]})})}):null]})})}Y.displayName=F;exports.a = Y;
|
|
4
|
+
//# sourceMappingURL=chunk-VGPFJV22.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/hearth/hearth/packages/react/dist/chunk-EA6RRWYY.cjs","../src/components/Combobox/Combobox.tsx"],"names":["COMPONENT_NAME","componentClassName","withGlobalPrefix","Combobox","props","className","children","triggerOnlyOnType","validationStatus","validationText","label","labelVariant","helperText","providedId","disabled","required","noOptionsFoundText","statusText","loading","hideLabel","placeholder","ariaDescribedby","comboboxProps","extractProps","marginPropDefs","id","labelId","helperTextId","validationTextId","useIds","showValidation","formFieldProps","isInvalid","ariaDescribedbyValue","mergeIds","popupHasContent","jsx","FormField","cn","jsxs","ComboboxPrimitive","InputBase","InputSlot","UnstyledIconButton","SearchMediumIcon","Spinner","CloseSmallIcon","ExpandSmallIcon"],"mappings":"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","file":"/home/runner/work/hearth/hearth/packages/react/dist/chunk-EA6RRWYY.cjs","sourcesContent":[null,"'use client';\n\nimport { cn } from '../../helpers/cn';\nimport { withGlobalPrefix } from '../../helpers/with-global-prefix';\nimport { extractProps } from '../../helpers/extract-props';\nimport { marginPropDefs } from '../../props/margin.props';\nimport { useIds } from '../../hooks/use-ids';\nimport { mergeIds } from '../../helpers/merge-ids';\nimport { FormField } from '../FormField/FormField';\nimport type { ComboboxProps } from './Combobox.props';\nimport { Combobox as ComboboxPrimitive } from '@base-ui/react/combobox';\nimport { InputBase } from '../InputBase/InputBase';\nimport { InputSlot } from '../InputSlot/InputSlot';\nimport {\n CloseSmallIcon,\n ExpandSmallIcon,\n SearchMediumIcon,\n} from '@utilitywarehouse/hearth-react-icons';\nimport { ComboboxItem } from './ComboboxItem';\nimport { ScrollArea as ScrollAreaPrimitive } from 'radix-ui';\nimport { UnstyledIconButton } from '../UnstyledIconButton/UnstyledIconButton';\nimport { ComboboxEmpty } from './ComboboxEmpty';\nimport { Spinner } from '../Spinner/Spinner';\n\nconst COMPONENT_NAME = 'Combobox';\nconst componentClassName = withGlobalPrefix(COMPONENT_NAME);\n\n/**\n * Use Combobox to let users type to filter results and select from a\n * predefined list of options. Pass options via the `items` prop to have them\n * rendered automatically, or render `ComboboxItem` children yourself for more\n * control. Set `triggerOnlyOnType` when the user must type before options are\n * surfaced (e.g. a postcode or address lookup); leave it unset when there is a\n * predefined list to choose from by clicking.\n *\n * @summary A text input that lets users filter and select from a list of options.\n */\nexport function Combobox<Value, Multiple extends boolean | undefined = false>(\n props: ComboboxProps<Value, Multiple>\n) {\n const {\n className,\n children,\n triggerOnlyOnType,\n validationStatus,\n validationText,\n label,\n labelVariant,\n helperText,\n id: providedId,\n disabled,\n required,\n noOptionsFoundText,\n statusText,\n loading,\n hideLabel,\n placeholder,\n 'aria-describedby': ariaDescribedby,\n ...comboboxProps\n } = extractProps(props, marginPropDefs);\n\n const { id, labelId, helperTextId, validationTextId } = useIds({\n providedId,\n prefix: 'combobox',\n });\n\n const showValidation = !disabled;\n\n const formFieldProps = {\n id,\n labelId,\n helperTextId,\n validationTextId,\n label,\n labelVariant,\n helperText,\n validationText: showValidation ? validationText : undefined,\n validationStatus: showValidation ? validationStatus : undefined,\n required,\n hideLabel,\n };\n\n const isInvalid = showValidation && validationStatus === 'invalid';\n\n const ariaDescribedbyValue = mergeIds(\n ariaDescribedby,\n helperText ? helperTextId : undefined,\n showValidation && validationStatus !== undefined && validationText !== undefined\n ? validationTextId\n : undefined\n );\n\n const popupHasContent = Boolean(statusText) || Boolean(props.items) || Boolean(children);\n\n return (\n <FormField\n className={cn(componentClassName, className)}\n data-disabled={disabled ? '' : undefined}\n data-testid={componentClassName}\n {...formFieldProps}\n >\n <ComboboxPrimitive.Root openOnInputClick={!triggerOnlyOnType} {...comboboxProps}>\n <ComboboxPrimitive.Input\n render={\n <InputBase\n id={id}\n disabled={disabled}\n placeholder={placeholder}\n aria-describedby={ariaDescribedbyValue}\n aria-invalid={isInvalid ? true : undefined}\n aria-errormessage={\n isInvalid && validationText !== undefined ? validationTextId : undefined\n }\n >\n <ComboboxPrimitive.Trigger\n disabled={disabled}\n render={\n <InputSlot placement=\"prefix\" asChild>\n <UnstyledIconButton type=\"button\" label=\"Open popup\" disabled={disabled}>\n <SearchMediumIcon />\n </UnstyledIconButton>\n </InputSlot>\n }\n />\n {loading ? (\n <InputSlot placement=\"suffix\">\n <Spinner size=\"xs\" color=\"primary\" />\n </InputSlot>\n ) : null}\n <ComboboxPrimitive.Clear\n render={\n <InputSlot placement=\"suffix\" asChild>\n <UnstyledIconButton type=\"button\" label=\"Clear selection\" disabled={disabled}>\n <CloseSmallIcon />\n </UnstyledIconButton>\n </InputSlot>\n }\n />\n {triggerOnlyOnType ? null : (\n <ComboboxPrimitive.Trigger\n disabled={disabled}\n render={\n <InputSlot placement=\"suffix\" asChild>\n <UnstyledIconButton type=\"button\" label=\"Open popup\" disabled={disabled}>\n <ExpandSmallIcon />\n </UnstyledIconButton>\n </InputSlot>\n }\n />\n )}\n </InputBase>\n }\n />\n\n {popupHasContent ? (\n <ComboboxPrimitive.Portal>\n <ComboboxPrimitive.Positioner\n side=\"bottom\"\n sideOffset={16}\n align=\"start\"\n alignOffset={-47}\n >\n <ComboboxPrimitive.Popup className={`${componentClassName}Popup`}>\n {statusText ? (\n <ComboboxPrimitive.Status className={`${componentClassName}StatusText`}>\n {statusText}\n </ComboboxPrimitive.Status>\n ) : null}\n {props.items ? (\n <ComboboxEmpty className={`${componentClassName}Empty`}>\n {noOptionsFoundText}\n </ComboboxEmpty>\n ) : null}\n <ScrollAreaPrimitive.Root\n className={withGlobalPrefix('ScrollAreaRoot')}\n type=\"auto\"\n >\n <ScrollAreaPrimitive.Viewport className={withGlobalPrefix('ScrollAreaViewport')}>\n <ComboboxPrimitive.List className={`${componentClassName}List`}>\n {children\n ? children\n : (item: string) => (\n <ComboboxItem key={item} value={item}>\n {item}\n </ComboboxItem>\n )}\n </ComboboxPrimitive.List>\n </ScrollAreaPrimitive.Viewport>\n <ScrollAreaPrimitive.Scrollbar\n className={withGlobalPrefix('ScrollAreaScrollbar')}\n orientation=\"vertical\"\n >\n <ScrollAreaPrimitive.Thumb className={withGlobalPrefix('ScrollAreaThumb')} />\n </ScrollAreaPrimitive.Scrollbar>\n </ScrollAreaPrimitive.Root>\n </ComboboxPrimitive.Popup>\n </ComboboxPrimitive.Positioner>\n </ComboboxPrimitive.Portal>\n ) : null}\n </ComboboxPrimitive.Root>\n </FormField>\n );\n}\n\nCombobox.displayName = COMPONENT_NAME;\n"]}
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/hearth/hearth/packages/react/dist/chunk-VGPFJV22.cjs","../src/components/Combobox/Combobox.tsx"],"names":["COMPONENT_NAME","componentClassName","withGlobalPrefix","Combobox","props","className","children","triggerOnlyOnType","validationStatus","validationText","label","labelVariant","helperText","providedId","disabled","required","noOptionsFoundText","statusText","loading","hideLabel","placeholder","ariaDescribedby","comboboxProps","extractProps","marginPropDefs","id","labelId","helperTextId","validationTextId","useIds","showValidation","formFieldProps","isInvalid","ariaDescribedbyValue","mergeIds","popupHasContent","jsx","FormField","cn","jsxs","ComboboxPrimitive","InputBase","InputSlot","UnstyledIconButton","SearchMediumIcon","Spinner","CloseSmallIcon","ExpandSmallIcon"],"mappings":"AAAA,qFAAY;AACZ;AACA,wDAAwC,wDAAyC,wDAAyC,wDAAyC,wDAAyC,wDAAyC,wDAAyC,wDAAyC,wDAAyC,wDAAyC,wDAAyC,wDAAyC,wDAAyC,mDCQte,wEAOvC,mCAE2C,+CAqFtC,IAhFNA,CAAAA,CAAiB,UAAA,CACjBC,CAAAA,CAAqBC,iCAAAA,CAA+B,CAAA,CAYnD,SAASC,CAAAA,CACdC,CAAAA,CACA,CACA,GAAM,CACJ,SAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,iBAAA,CAAAC,CAAAA,CACA,gBAAA,CAAAC,CAAAA,CACA,cAAA,CAAAC,CAAAA,CACA,KAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CAAAA,CACA,UAAA,CAAAC,CAAAA,CACA,EAAA,CAAIC,CAAAA,CACJ,QAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,kBAAA,CAAAC,CAAAA,CACA,UAAA,CAAAC,CAAAA,CACA,OAAA,CAAAC,CAAAA,CACA,SAAA,CAAAC,CAAAA,CACA,WAAA,CAAAC,CAAAA,CACA,kBAAA,CAAoBC,CAAAA,CACpB,GAAGC,CACL,CAAA,CAAIC,iCAAAA,CAAanB,CAAOoB,mBAAc,CAAA,CAEhC,CAAE,EAAA,CAAAC,CAAAA,CAAI,OAAA,CAAAC,CAAAA,CAAS,YAAA,CAAAC,CAAAA,CAAc,gBAAA,CAAAC,CAAiB,CAAA,CAAIC,iCAAAA,CACtD,UAAA,CAAAhB,CAAAA,CACA,MAAA,CAAQ,UACV,CAAC,CAAA,CAEKiB,CAAAA,CAAiB,CAAChB,CAAAA,CAElBiB,CAAAA,CAAiB,CACrB,EAAA,CAAAN,CAAAA,CACA,OAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CAAAA,CACA,gBAAA,CAAAC,CAAAA,CACA,KAAA,CAAAlB,CAAAA,CACA,YAAA,CAAAC,CAAAA,CACA,UAAA,CAAAC,CAAAA,CACA,cAAA,CAAgBkB,CAAAA,CAAiBrB,CAAAA,CAAiB,KAAA,CAAA,CAClD,gBAAA,CAAkBqB,CAAAA,CAAiBtB,CAAAA,CAAmB,KAAA,CAAA,CACtD,QAAA,CAAAO,CAAAA,CACA,SAAA,CAAAI,CACF,CAAA,CAEMa,CAAAA,CAAYF,CAAAA,EAAkBtB,CAAAA,GAAqB,SAAA,CAEnDyB,CAAAA,CAAuBC,iCAAAA,CAC3Bb,CACAT,CAAAA,CAAae,CAAAA,CAAe,KAAA,CAAA,CAC5BG,CAAAA,EAAkBtB,CAAAA,GAAqB,KAAA,CAAA,EAAaC,CAAAA,GAAmB,KAAA,CAAA,CACnEmB,CAAAA,CACA,KAAA,CACN,CAAA,CAEMO,CAAAA,CAAkB,CAAA,CAAQlB,CAAAA,EAAe,CAAA,CAAQb,CAAAA,CAAM,KAAA,EAAU,CAAA,CAAQE,CAAAA,CAE/E,OACE8B,6BAAAA,mBAACC,CAAA,CACC,SAAA,CAAWC,iCAAAA,CAAGrC,CAAoBI,CAAS,CAAA,CAC3C,eAAA,CAAeS,CAAAA,CAAW,EAAA,CAAK,KAAA,CAAA,CAC/B,aAAA,CAAab,CAAAA,CACZ,GAAG8B,CAAAA,CAEJ,QAAA,CAAAQ,8BAAAA,kBAACC,CAAkB,IAAA,CAAlB,CAAuB,gBAAA,CAAkB,CAACjC,CAAAA,CAAoB,GAAGe,CAAAA,CAChE,QAAA,CAAA,CAAAc,6BAAAA,kBAACI,CAAkB,KAAA,CAAlB,CACC,MAAA,CACED,8BAAAA,mBAACE,CAAA,CACC,EAAA,CAAIhB,CAAAA,CACJ,QAAA,CAAUX,CAAAA,CACV,WAAA,CAAaM,CAAAA,CACb,kBAAA,CAAkBa,CAAAA,CAClB,cAAA,CAAcD,CAAAA,CAAY,CAAA,CAAA,CAAO,KAAA,CAAA,CACjC,mBAAA,CACEA,CAAAA,EAAavB,CAAAA,GAAmB,KAAA,CAAA,CAAYmB,CAAAA,CAAmB,KAAA,CAAA,CAGjE,QAAA,CAAA,CAAAQ,6BAAAA,kBAACI,CAAkB,OAAA,CAAlB,CACC,QAAA,CAAU1B,CAAAA,CACV,MAAA,CACEsB,6BAAAA,mBAACM,CAAA,CAAU,SAAA,CAAU,QAAA,CAAS,OAAA,CAAO,CAAA,CAAA,CACnC,QAAA,CAAAN,6BAAAA,mBAACO,CAAA,CAAmB,IAAA,CAAK,QAAA,CAAS,KAAA,CAAM,YAAA,CAAa,QAAA,CAAU7B,CAAAA,CAC7D,QAAA,CAAAsB,6BAAAA,kCAACQ,CAAA,CAAA,CAAiB,CAAA,CACpB,CAAA,CACF,CAAA,CAEJ,CAAA,CACC1B,CAAAA,CACCkB,6BAAAA,mBAACM,CAAA,CAAU,SAAA,CAAU,QAAA,CACnB,QAAA,CAAAN,6BAAAA,mBAACS,CAAA,CAAQ,IAAA,CAAK,IAAA,CAAK,KAAA,CAAM,SAAA,CAAU,CAAA,CACrC,CAAA,CACE,IAAA,CACJT,6BAAAA,kBAACI,CAAkB,KAAA,CAAlB,CACC,MAAA,CACEJ,6BAAAA,mBAACM,CAAA,CAAU,SAAA,CAAU,QAAA,CAAS,OAAA,CAAO,CAAA,CAAA,CACnC,QAAA,CAAAN,6BAAAA,mBAACO,CAAA,CAAmB,IAAA,CAAK,QAAA,CAAS,KAAA,CAAM,iBAAA,CAAkB,QAAA,CAAU7B,CAAAA,CAClE,QAAA,CAAAsB,6BAAAA,gCAACU,CAAA,CAAA,CAAe,CAAA,CAClB,CAAA,CACF,CAAA,CAEJ,CAAA,CACCvC,CAAAA,CAAoB,IAAA,CACnB6B,6BAAAA,kBAACI,CAAkB,OAAA,CAAlB,CACC,QAAA,CAAU1B,CAAAA,CACV,MAAA,CACEsB,6BAAAA,mBAACM,CAAA,CAAU,SAAA,CAAU,QAAA,CAAS,OAAA,CAAO,CAAA,CAAA,CACnC,QAAA,CAAAN,6BAAAA,mBAACO,CAAA,CAAmB,IAAA,CAAK,QAAA,CAAS,KAAA,CAAM,YAAA,CAAa,QAAA,CAAU7B,CAAAA,CAC7D,QAAA,CAAAsB,6BAAAA,iCAACW,CAAA,CAAA,CAAgB,CAAA,CACnB,CAAA,CACF,CAAA,CAEJ,CAAA,CAAA,CAEJ,CAAA,CAEJ,CAAA,CAECZ,CAAAA,CACCC,6BAAAA,kBAACI,CAAkB,MAAA,CAAlB,CACC,QAAA,CAAAJ,6BAAAA,kBAACI,CAAkB,UAAA,CAAlB,CACC,IAAA,CAAK,QAAA,CACL,UAAA,CAAY,EAAA,CACZ,KAAA,CAAM,OAAA,CACN,WAAA,CAAa,CAAA,EAAA,CAEb,QAAA,CAAAD,8BAAAA,kBAACC,CAAkB,KAAA,CAAlB,CAAwB,SAAA,CAAW,CAAA,EAAA","file":"/home/runner/work/hearth/hearth/packages/react/dist/chunk-VGPFJV22.cjs","sourcesContent":[null,"'use client';\n\nimport { cn } from '../../helpers/cn';\nimport { withGlobalPrefix } from '../../helpers/with-global-prefix';\nimport { extractProps } from '../../helpers/extract-props';\nimport { marginPropDefs } from '../../props/margin.props';\nimport { useIds } from '../../hooks/use-ids';\nimport { mergeIds } from '../../helpers/merge-ids';\nimport { FormField } from '../FormField/FormField';\nimport type { ComboboxProps } from './Combobox.props';\nimport { Combobox as ComboboxPrimitive } from '@base-ui/react/combobox';\nimport { InputBase } from '../InputBase/InputBase';\nimport { InputSlot } from '../InputSlot/InputSlot';\nimport {\n CloseSmallIcon,\n ExpandSmallIcon,\n SearchMediumIcon,\n} from '@utilitywarehouse/hearth-react-icons';\nimport { ComboboxItem } from './ComboboxItem';\nimport { ScrollArea as ScrollAreaPrimitive } from 'radix-ui';\nimport { UnstyledIconButton } from '../UnstyledIconButton/UnstyledIconButton';\nimport { ComboboxEmpty } from './ComboboxEmpty';\nimport { Spinner } from '../Spinner/Spinner';\n\nconst COMPONENT_NAME = 'Combobox';\nconst componentClassName = withGlobalPrefix(COMPONENT_NAME);\n\n/**\n * Use Combobox to let users type to filter results and select from a\n * predefined list of options. Pass options via the `items` prop to have them\n * rendered automatically, or render `ComboboxItem` children yourself for more\n * control. Set `triggerOnlyOnType` when the user must type before options are\n * surfaced (e.g. a postcode or address lookup); leave it unset when there is a\n * predefined list to choose from by clicking.\n *\n * @summary A text input that lets users filter and select from a list of options.\n */\nexport function Combobox<Value, Multiple extends boolean | undefined = false>(\n props: ComboboxProps<Value, Multiple>\n) {\n const {\n className,\n children,\n triggerOnlyOnType,\n validationStatus,\n validationText,\n label,\n labelVariant,\n helperText,\n id: providedId,\n disabled,\n required,\n noOptionsFoundText,\n statusText,\n loading,\n hideLabel,\n placeholder,\n 'aria-describedby': ariaDescribedby,\n ...comboboxProps\n } = extractProps(props, marginPropDefs);\n\n const { id, labelId, helperTextId, validationTextId } = useIds({\n providedId,\n prefix: 'combobox',\n });\n\n const showValidation = !disabled;\n\n const formFieldProps = {\n id,\n labelId,\n helperTextId,\n validationTextId,\n label,\n labelVariant,\n helperText,\n validationText: showValidation ? validationText : undefined,\n validationStatus: showValidation ? validationStatus : undefined,\n required,\n hideLabel,\n };\n\n const isInvalid = showValidation && validationStatus === 'invalid';\n\n const ariaDescribedbyValue = mergeIds(\n ariaDescribedby,\n helperText ? helperTextId : undefined,\n showValidation && validationStatus !== undefined && validationText !== undefined\n ? validationTextId\n : undefined\n );\n\n const popupHasContent = Boolean(statusText) || Boolean(props.items) || Boolean(children);\n\n return (\n <FormField\n className={cn(componentClassName, className)}\n data-disabled={disabled ? '' : undefined}\n data-testid={componentClassName}\n {...formFieldProps}\n >\n <ComboboxPrimitive.Root openOnInputClick={!triggerOnlyOnType} {...comboboxProps}>\n <ComboboxPrimitive.Input\n render={\n <InputBase\n id={id}\n disabled={disabled}\n placeholder={placeholder}\n aria-describedby={ariaDescribedbyValue}\n aria-invalid={isInvalid ? true : undefined}\n aria-errormessage={\n isInvalid && validationText !== undefined ? validationTextId : undefined\n }\n >\n <ComboboxPrimitive.Trigger\n disabled={disabled}\n render={\n <InputSlot placement=\"prefix\" asChild>\n <UnstyledIconButton type=\"button\" label=\"Open popup\" disabled={disabled}>\n <SearchMediumIcon />\n </UnstyledIconButton>\n </InputSlot>\n }\n />\n {loading ? (\n <InputSlot placement=\"suffix\">\n <Spinner size=\"xs\" color=\"primary\" />\n </InputSlot>\n ) : null}\n <ComboboxPrimitive.Clear\n render={\n <InputSlot placement=\"suffix\" asChild>\n <UnstyledIconButton type=\"button\" label=\"Clear selection\" disabled={disabled}>\n <CloseSmallIcon />\n </UnstyledIconButton>\n </InputSlot>\n }\n />\n {triggerOnlyOnType ? null : (\n <ComboboxPrimitive.Trigger\n disabled={disabled}\n render={\n <InputSlot placement=\"suffix\" asChild>\n <UnstyledIconButton type=\"button\" label=\"Open popup\" disabled={disabled}>\n <ExpandSmallIcon />\n </UnstyledIconButton>\n </InputSlot>\n }\n />\n )}\n </InputBase>\n }\n />\n\n {popupHasContent ? (\n <ComboboxPrimitive.Portal>\n <ComboboxPrimitive.Positioner\n side=\"bottom\"\n sideOffset={16}\n align=\"start\"\n alignOffset={-47}\n >\n <ComboboxPrimitive.Popup className={`${componentClassName}Popup`}>\n {statusText ? (\n <ComboboxPrimitive.Status className={`${componentClassName}StatusText`}>\n {statusText}\n </ComboboxPrimitive.Status>\n ) : null}\n {props.items ? (\n <ComboboxEmpty className={`${componentClassName}Empty`}>\n {noOptionsFoundText}\n </ComboboxEmpty>\n ) : null}\n <ScrollAreaPrimitive.Root\n className={withGlobalPrefix('ScrollAreaRoot')}\n type=\"auto\"\n >\n <ScrollAreaPrimitive.Viewport className={withGlobalPrefix('ScrollAreaViewport')}>\n <ComboboxPrimitive.List className={`${componentClassName}List`}>\n {children\n ? children\n : (item: string) => (\n <ComboboxItem key={item} value={item}>\n {item}\n </ComboboxItem>\n )}\n </ComboboxPrimitive.List>\n </ScrollAreaPrimitive.Viewport>\n <ScrollAreaPrimitive.Scrollbar\n className={withGlobalPrefix('ScrollAreaScrollbar')}\n orientation=\"vertical\"\n >\n <ScrollAreaPrimitive.Thumb className={withGlobalPrefix('ScrollAreaThumb')} />\n </ScrollAreaPrimitive.Scrollbar>\n </ScrollAreaPrimitive.Root>\n </ComboboxPrimitive.Popup>\n </ComboboxPrimitive.Positioner>\n </ComboboxPrimitive.Portal>\n ) : null}\n </ComboboxPrimitive.Root>\n </FormField>\n );\n}\n\nCombobox.displayName = COMPONENT_NAME;\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }"use client";
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
//# sourceMappingURL=chunk-
|
|
3
|
+
var _chunk4GNLKRL3cjs = require('./chunk-4GNLKRL3.cjs');var _chunkMJNIIRVPcjs = require('./chunk-MJNIIRVP.cjs');var _chunkOB7O3UFLcjs = require('./chunk-OB7O3UFL.cjs');var _chunkZPJNQBTNcjs = require('./chunk-ZPJNQBTN.cjs');var _chunkONNSZMWFcjs = require('./chunk-ONNSZMWF.cjs');var _chunk4Q432K4Wcjs = require('./chunk-4Q432K4W.cjs');var _react = require('react');var _radixui = require('radix-ui');var _jsxruntime = require('react/jsx-runtime');var C="CardAccordion",m=_chunk4Q432K4Wcjs.b.call(void 0, C),I= exports.a =_react.forwardRef.call(void 0, (u,A)=>{let{className:P,children:t,value:r,onValueChange:e,...h}=_chunkZPJNQBTNcjs.a.call(void 0, u,_chunkOB7O3UFLcjs.a),[v,n]=_react.useState.call(void 0, r);_react.useEffect.call(void 0, ()=>{r!==void 0&&n(r)},[r]);let g={...h,type:"single",collapsible:!1,value:v,onValueChange:o=>{n(o),e&&e(o)}},i=(_nullishCoalesce(_react.Children.map(t,o=>_react.isValidElement.call(void 0, o)&&o.type===_chunk4GNLKRL3cjs.a?o.props.value:null), () => ([]))).filter(Boolean);return i.length===0?(process.env.NODE_ENV!=="production"&&console.error('[CardAccordion]: No CardAccordionItem children with a "value" prop were found. CardAccordion requires at least one CardAccordionItem child.'),null):_jsxruntime.jsx.call(void 0, _radixui.Accordion.Root,{ref:A,className:_chunkONNSZMWFcjs.a.call(void 0, m,P),"data-testid":m,...g,children:_jsxruntime.jsx.call(void 0, _chunkMJNIIRVPcjs.b,{steps:i,onValueChange:e,setCurrentValue:n,children:t})})});I.displayName=C;exports.a = I;
|
|
4
|
+
//# sourceMappingURL=chunk-WFNQXP3D.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/hearth/hearth/packages/react/dist/chunk-
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/hearth/hearth/packages/react/dist/chunk-WFNQXP3D.cjs","../src/components/CardAccordion/CardAccordion.tsx"],"names":["COMPONENT_NAME","componentClassName","withGlobalPrefix","CardAccordion","forwardRef","props","ref","className","children","value","onValueChange","restProps","extractProps","marginPropDefs","currentValue","setCurrentValue","useState","useEffect","accordionProps","newValue","steps","Children","child","isValidElement","CardAccordionItem","jsx","AccordionPrimitive","cn","CardAccordionProvider"],"mappings":"AAAA,yLAAY;AACZ;AACA,wDAAwC,wDAAyC,wDAAyC,wDAAyC,wDAAoC,wDAAyC,8BCAtK,mCAK1B,+CAkF1C,IA5EAA,CAAAA,CAAiB,eAAA,CACjBC,CAAAA,CAAqBC,iCAAAA,CAA+B,CAAA,CAc7CC,CAAAA,aAAgBC,+BAAAA,CAAsDC,CAAAA,CAAOC,CAAAA,CAAAA,EAAQ,CAChG,GAAM,CAAE,SAAA,CAAAC,CAAAA,CAAW,QAAA,CAAAC,CAAAA,CAAU,KAAA,CAAAC,CAAAA,CAAO,aAAA,CAAAC,CAAAA,CAAe,GAAGC,CAAU,CAAA,CAAIC,iCAAAA,CAClEP,CACAQ,mBACF,CAAA,CAEM,CAACC,CAAAA,CAAcC,CAAe,CAAA,CAAIC,6BAAAA,CAAc,CAAA,CAEtDC,8BAAAA,CAAU,CAAA,EAAM,CAEVR,CAAAA,GAAU,KAAA,CAAA,EACZM,CAAAA,CAAgBN,CAAK,CAEzB,CAAA,CAAG,CAACA,CAAK,CAAC,CAAA,CASV,IAAMS,CAAAA,CAAiB,CACrB,GAAGP,CAAAA,CACH,IAAA,CAAM,QAAA,CACN,WAAA,CAAa,CAAA,CAAA,CACb,KAAA,CAAOG,CAAAA,CACP,aAAA,CAZyBK,CAAAA,EAAqB,CAC9CJ,CAAAA,CAAgBI,CAAQ,CAAA,CACpBT,CAAAA,EACFA,CAAAA,CAAcS,CAAQ,CAE1B,CAQA,CAAA,CAEMC,CAAAA,CAAAA,kBACJC,eAAAA,CAAS,GAAA,CAAIb,CAAAA,CAAUc,CAAAA,EACjBC,mCAAAA,CAAoB,CAAA,EAAKD,CAAAA,CAAM,IAAA,GAASE,mBAAAA,CAClCF,CAAAA,CAAM,KAAA,CAA6B,KAAA,CAEtC,IACR,CAAA,SAAK,CAAC,GAAA,CAAA,CACP,MAAA,CAAO,OAAO,CAAA,CAEhB,OAAIF,CAAAA,CAAM,MAAA,GAAW,CAAA,CAAA,CACf,OAAA,CAAQ,GAAA,CAAI,QAAA,GAAa,YAAA,EAM3B,OAAA,CAAQ,KAAA,CACN,6IAEF,CAAA,CAEK,IAAA,CAAA,CAIPK,6BAAAA,kBAACC,CAAmB,IAAA,CAAnB,CACC,GAAA,CAAKpB,CAAAA,CACL,SAAA,CAAWqB,iCAAAA,CAAG1B,CAAoBM,CAAS,CAAA,CAC3C,aAAA,CAAaN,CAAAA,CACZ,GAAGiB,CAAAA,CAEJ,QAAA,CAAAO,6BAAAA,mBAACG,CAAA,CACC,KAAA,CAAOR,CAAAA,CACP,aAAA,CAAeV,CAAAA,CACf,eAAA,CAAiBK,CAAAA,CAEhB,QAAA,CAAAP,CAAAA,CACH,CAAA,CACF,CAEJ,CAAC,CAAA,CAEDL,CAAAA,CAAc,WAAA,CAAcH,CAAAA,CAAAA,cAAAA","file":"/home/runner/work/hearth/hearth/packages/react/dist/chunk-WFNQXP3D.cjs","sourcesContent":[null,"'use client';\n\nimport { Children, forwardRef, isValidElement, useEffect, useState } from 'react';\nimport { cn } from '../../helpers/cn';\nimport type { ComponentPropsWithRef, ComponentRef } from 'react';\nimport { withGlobalPrefix } from '../../helpers/with-global-prefix';\nimport type { CardAccordionProps } from './CardAccordion.props';\nimport { Accordion as AccordionPrimitive } from 'radix-ui';\nimport { extractProps } from '../../helpers/extract-props';\nimport { marginPropDefs } from '../../props/margin.props';\nimport { CardAccordionProvider } from './CardAccordion.context';\nimport { CardAccordionItem } from './CardAccordionItem';\n\nconst COMPONENT_NAME = 'CardAccordion';\nconst componentClassName = withGlobalPrefix(COMPONENT_NAME);\n\ntype CardAccordionElement = ComponentRef<'div'>;\n\n/**\n * Use CardAccordion to break a form journey into multiple collapsible cards,\n * letting users progress step-by-step on a single page while keeping\n * previously completed steps visible and editable. Compose it with\n * `CardAccordionItem` for each step (each requires a unique `value`) and\n * `CardAccordionFooter`/`CardAccordionButton` for step navigation. Requires at\n * least one `CardAccordionItem` child.\n *\n * @summary A form journey broken into multiple collapsible, step-by-step cards.\n */\nexport const CardAccordion = forwardRef<CardAccordionElement, CardAccordionProps>((props, ref) => {\n const { className, children, value, onValueChange, ...restProps } = extractProps(\n props,\n marginPropDefs\n );\n\n const [currentValue, setCurrentValue] = useState(value);\n\n useEffect(() => {\n // Keep internal state in sync when the controlled `value` prop changes.\n if (value !== undefined) {\n setCurrentValue(value);\n }\n }, [value]);\n\n const handleValueChange = (newValue: string) => {\n setCurrentValue(newValue);\n if (onValueChange) {\n onValueChange(newValue);\n }\n };\n\n const accordionProps = {\n ...restProps,\n type: 'single',\n collapsible: false,\n value: currentValue,\n onValueChange: handleValueChange,\n } as ComponentPropsWithRef<typeof AccordionPrimitive.Root>;\n\n const steps: Array<string> = (\n Children.map(children, child => {\n if (isValidElement(child) && child.type === CardAccordionItem) {\n return (child.props as { value?: string }).value;\n }\n return null;\n }) ?? []\n ).filter(Boolean);\n\n if (steps.length === 0) {\n if (process.env.NODE_ENV !== 'production') {\n // CardAccordionProvider assumes at least one step (steps[0]).\n // Rendering CardAccordion without any CardAccordionItem children can cause runtime errors.\n // This guard ensures we fail fast in development and avoid crashing in production.\n // Make sure to pass at least one <CardAccordionItem value=\"...\"> as a child of <CardAccordion>.\n\n console.error(\n '[CardAccordion]: No CardAccordionItem children with a \"value\" prop were found. ' +\n 'CardAccordion requires at least one CardAccordionItem child.'\n );\n }\n return null;\n }\n\n return (\n <AccordionPrimitive.Root\n ref={ref}\n className={cn(componentClassName, className)}\n data-testid={componentClassName}\n {...accordionProps}\n >\n <CardAccordionProvider\n steps={steps}\n onValueChange={onValueChange}\n setCurrentValue={setCurrentValue}\n >\n {children}\n </CardAccordionProvider>\n </AccordionPrimitive.Root>\n );\n});\n\nCardAccordion.displayName = COMPONENT_NAME;\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import{a as v}from"./chunk-
|
|
4
|
-
//# sourceMappingURL=chunk-
|
|
3
|
+
import{a as v}from"./chunk-ZGIMM7G5.js";import{a as T}from"./chunk-CQ3DFX5W.js";import{a as B}from"./chunk-TJHI42VN.js";import{a as E}from"./chunk-J3AJBV4B.js";import{b as R}from"./chunk-PDEVCIQ3.js";import{forwardRef as A,useState as _,useRef as D,useEffect as q}from"react";import{useMergedRefs as F}from"@base-ui/utils/useMergedRefs";import{jsx as g}from"react/jsx-runtime";var N="CurrencyInput",M=R(N),G=A(({className:S,disabled:V,value:d,onChange:y,placeholder:b="0.00",disableGroupSeparators:C,defaultValue:h,...k},z)=>{let[H,L]=_(typeof h=="string"?h:""),s=D(null),r=D(null),O=F(z,s),I=d!==void 0,x=I?String(d??""):H,c=n=>{if(!n)return"";let l=n.split("."),e=l[0]||"";C||(e=e.replace(/\B(?=(\d{3})+(?!\d))/g,","));let i=l[1];return i!==void 0?e+"."+i:e},j=n=>{let l=n.target.value,e=n.target.selectionStart||0,i=c(x),w=l.replace(/[^\d.]/g,""),a=w.split("."),P=a.length>2?a[0]+"."+a.slice(1).join(""):w,m=P.split("."),p=m[1]!==void 0?m[0]+"."+m[1].substring(0,2):P;if(C)r.current=null;else{let u=c(p),f=(i.slice(0,Math.min(e,i.length)).match(/,/g)||[]).length,t=(u.slice(0,Math.min(e,u.length)).match(/,/g)||[]).length-f;r.current=e+t}if(I||L(p),y){let u=new Proxy(n.target,{get(o,t){return t==="value"?p:Reflect.get(o,t,o)}}),f=new Proxy(n,{get(o,t){return t==="target"||t==="currentTarget"?u:Reflect.get(o,t,o)}});y(f)}};return q(()=>{s&&typeof s=="object"&&s.current&&r.current!==null&&(s.current.setSelectionRange(r.current,r.current),r.current=null)}),g(v,{ref:O,className:E(M,S),type:"text",inputMode:"decimal",disabled:V,value:c(x),onChange:j,placeholder:b,"data-testid":M,...k,children:g(B,{placement:"prefix",children:g(T,{size:"3xl",children:"\xA3"})})})});G.displayName=N;export{G as a};
|
|
4
|
+
//# sourceMappingURL=chunk-XNDPIHAF.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
//# sourceMappingURL=chunk-
|
|
3
|
+
var _chunkB2HYSLUXcjs = require('./chunk-B2HYSLUX.cjs');var _chunkMJVMVHKIcjs = require('./chunk-MJVMVHKI.cjs');var _chunkOB7O3UFLcjs = require('./chunk-OB7O3UFL.cjs');var _chunkRIHABKWYcjs = require('./chunk-RIHABKWY.cjs');var _chunkHIF6HKZ3cjs = require('./chunk-HIF6HKZ3.cjs');var _chunkZPJNQBTNcjs = require('./chunk-ZPJNQBTN.cjs');var _chunkONNSZMWFcjs = require('./chunk-ONNSZMWF.cjs');var _chunk4Q432K4Wcjs = require('./chunk-4Q432K4W.cjs');var _react = require('react');var _jsxruntime = require('react/jsx-runtime');var P="TextInput",h=_chunk4Q432K4Wcjs.b.call(void 0, P),A= exports.a =_react.forwardRef.call(void 0, (N,B)=>{let{className:F,validationStatus:d,validationText:t,label:E,labelVariant:O,helperText:r,children:g,id:w,disabled:e,readOnly:n,hideLabel:C,required:o,placeholder:D,"aria-describedby":V,...q}=_chunkZPJNQBTNcjs.a.call(void 0, N,_chunkOB7O3UFLcjs.a),{id:l,labelId:s,helperTextId:p,validationTextId:a}=_chunkRIHABKWYcjs.a.call(void 0, {providedId:w,prefix:"text-input"}),i=!n&&!e,M={id:l,labelId:s,helperTextId:p,validationTextId:a,label:E,labelVariant:O,helperText:r,validationText:i?t:void 0,validationStatus:i?d:void 0,hideLabel:C,required:o},m=i&&d==="invalid",S=_chunkHIF6HKZ3cjs.a.call(void 0, V,r?p:void 0,i&&d!==void 0&&t!==void 0?a:void 0);return _jsxruntime.jsx.call(void 0, _chunkMJVMVHKIcjs.a,{className:_chunkONNSZMWFcjs.a.call(void 0, h,F),"data-disabled":e?"":void 0,"data-testid":h,...M,children:_jsxruntime.jsx.call(void 0, _chunkB2HYSLUXcjs.a,{ref:B,spellCheck:"false",id:l,required:o,disabled:e,readOnly:n,placeholder:e?void 0:D,"aria-labelledby":s,"aria-describedby":S,"aria-invalid":m?!0:void 0,"aria-errormessage":m&&t!==void 0?a:void 0,...q,children:g})})});A.displayName=P;exports.a = A;
|
|
4
|
+
//# sourceMappingURL=chunk-YGNGIGCD.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/hearth/hearth/packages/react/dist/chunk-
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/hearth/hearth/packages/react/dist/chunk-YGNGIGCD.cjs","../src/components/TextInput/TextInput.tsx"],"names":["COMPONENT_NAME","componentClassName","withGlobalPrefix","TextInput","forwardRef","props","ref","className","validationStatus","validationText","label","labelVariant","helperText","children","providedId","disabled","readOnly","hideLabel","required","placeholder","ariaDescribedby","textInputProps","extractProps","marginPropDefs","id","labelId","helperTextId","validationTextId","useIds","showValidation","formFieldProps","isInvalid","ariaDescribedbyValue","mergeIds","jsx","FormField","cn","InputBase"],"mappings":"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","file":"/home/runner/work/hearth/hearth/packages/react/dist/chunk-YGNGIGCD.cjs","sourcesContent":[null,"'use client';\n\nimport { withGlobalPrefix } from '../../helpers/with-global-prefix';\nimport type { TextInputProps } from './TextInput.props';\nimport { extractProps } from '../../helpers/extract-props';\nimport { cn } from '../../helpers/cn';\nimport { useIds } from '../../hooks/use-ids';\nimport { mergeIds } from '../../helpers/merge-ids';\nimport { marginPropDefs } from '../../props/margin.props';\nimport { InputBase, type InputBaseElement } from '../InputBase/InputBase';\nimport { FormField } from '../FormField/FormField';\nimport { forwardRef } from 'react';\n\nconst COMPONENT_NAME = 'TextInput';\nconst componentClassName = withGlobalPrefix(COMPONENT_NAME);\n\n/**\n * Use TextInput for a single-line text or data entry field. For passwords,\n * search, currency, one-time passcodes, or dates, use PasswordInput,\n * SearchInput, CurrencyInput, VerificationInput, or DateInput instead. A\n * `label` is required and should be clear and descriptive to guide the user.\n *\n * @summary A single-line text input field for entering text and data.\n */\nexport const TextInput = forwardRef<InputBaseElement, TextInputProps>((props, ref) => {\n const {\n className,\n validationStatus,\n validationText,\n label,\n labelVariant,\n helperText,\n children,\n id: providedId,\n disabled,\n readOnly,\n hideLabel,\n required,\n placeholder,\n 'aria-describedby': ariaDescribedby,\n ...textInputProps\n } = extractProps(props, marginPropDefs);\n\n const { id, labelId, helperTextId, validationTextId } = useIds({\n providedId,\n prefix: 'text-input',\n });\n\n const showValidation = Boolean(!readOnly && !disabled);\n\n const formFieldProps = {\n id,\n labelId,\n helperTextId,\n validationTextId,\n label,\n labelVariant,\n helperText,\n validationText: showValidation ? validationText : undefined,\n validationStatus: showValidation ? validationStatus : undefined,\n hideLabel,\n required,\n };\n\n const isInvalid = showValidation && validationStatus === 'invalid';\n\n const ariaDescribedbyValue = mergeIds(\n ariaDescribedby,\n !!helperText ? helperTextId : undefined,\n showValidation && validationStatus !== undefined && validationText !== undefined\n ? validationTextId\n : undefined\n );\n\n return (\n <FormField\n className={cn(componentClassName, className)}\n data-disabled={disabled ? '' : undefined}\n data-testid={componentClassName}\n {...formFieldProps}\n >\n <InputBase\n ref={ref}\n spellCheck=\"false\"\n id={id}\n required={required}\n disabled={disabled}\n readOnly={readOnly}\n placeholder={!disabled ? placeholder : undefined}\n aria-labelledby={labelId}\n aria-describedby={ariaDescribedbyValue}\n aria-invalid={isInvalid ? true : undefined}\n aria-errormessage={isInvalid && validationText !== undefined ? validationTextId : undefined}\n {...textInputProps}\n >\n {children}\n </InputBase>\n </FormField>\n );\n});\n\nTextInput.displayName = COMPONENT_NAME;\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
//# sourceMappingURL=chunk-
|
|
3
|
+
var _chunkZHVCM3OCcjs = require('./chunk-ZHVCM3OC.cjs');var _chunkRS5YT3MKcjs = require('./chunk-RS5YT3MK.cjs');var _chunk6SM74N7Tcjs = require('./chunk-6SM74N7T.cjs');var _chunkOB7O3UFLcjs = require('./chunk-OB7O3UFL.cjs');var _chunkZPJNQBTNcjs = require('./chunk-ZPJNQBTN.cjs');var _chunkONNSZMWFcjs = require('./chunk-ONNSZMWF.cjs');var _chunk4Q432K4Wcjs = require('./chunk-4Q432K4W.cjs');var _react = require('react');var _hearthreacticons = require('@utilitywarehouse/hearth-react-icons');var _radixui = require('radix-ui');var _jsxruntime = require('react/jsx-runtime');var N="Pagination",s=_chunk4Q432K4Wcjs.b.call(void 0, N),p="...",M=7,_=(a,e)=>{if(e<=M)return Array.from({length:e},(r,d)=>d+1);let n=[],t=a<=4,i=a>e-4;return t?(n.push(1,2,3,4,5),n.push(p),n.push(e)):i?(n.push(1),n.push(p),n.push(e-4,e-3,e-2,e-1,e)):(n.push(1),n.push(p),n.push(a-1,a,a+1),n.push(p),n.push(e)),n},w= exports.a =_react.forwardRef.call(void 0, (a,e)=>{let{className:n,currentPage:t,totalPages:i,onPageChange:r,condensed:d=!1,hideSkipButtons:u=!1,as:C="div",...g}=_chunkZPJNQBTNcjs.a.call(void 0, a,_chunkOB7O3UFLcjs.a),B=_(t,i),P=()=>{t>1&&r(t-1)},E=()=>{t<i&&r(t+1)},k=()=>{t!==1&&r(1)},L=()=>{t!==i&&r(i)};return _jsxruntime.jsx.call(void 0, _radixui.Slot.Root,{ref:e,"aria-label":"pagination",className:_chunkONNSZMWFcjs.a.call(void 0, s,n),"data-testid":s,...g,children:_jsxruntime.jsx.call(void 0, C,{children:_jsxruntime.jsxs.call(void 0, "div",{className:`${s}Container`,children:[_jsxruntime.jsxs.call(void 0, "div",{className:`${s}Controllers`,children:[!u&&_jsxruntime.jsx.call(void 0, _chunkRS5YT3MKcjs.a,{type:"button",label:"Go to first page",onClick:k,disabled:t===1,children:_jsxruntime.jsx.call(void 0, _hearthreacticons.SkipFirstSmallIcon,{})}),_jsxruntime.jsx.call(void 0, _chunkRS5YT3MKcjs.a,{type:"button",label:"Go to previous page",onClick:P,disabled:t===1,children:_jsxruntime.jsx.call(void 0, _hearthreacticons.ChevronLeftSmallIcon,{})})]}),d?_jsxruntime.jsxs.call(void 0, _chunk6SM74N7Tcjs.a,{size:"md",color:"primary",children:["Page ",t," of ",i]}):_jsxruntime.jsx.call(void 0, "div",{children:_jsxruntime.jsx.call(void 0, "ol",{className:`${s}Pages`,children:B.map((l,$)=>{if(l===p)return _jsxruntime.jsx.call(void 0, "li",{children:_jsxruntime.jsx.call(void 0, _chunk6SM74N7Tcjs.a,{size:"md",color:"primary",className:`${s}Ellipsis`,children:p})},`ellipsis-${$}`);let y=l===t;return _jsxruntime.jsx.call(void 0, "li",{children:_jsxruntime.jsx.call(void 0, _chunkZHVCM3OCcjs.a,{type:"button",className:`${s}Page`,variant:"ghost",colorScheme:"functional",onClick:()=>r(l),"data-active":y?"":void 0,"aria-label":`Go to page ${l}`,"aria-current":y?"page":void 0,children:l})},l)})})}),_jsxruntime.jsxs.call(void 0, "div",{className:`${s}Controllers`,children:[_jsxruntime.jsx.call(void 0, _chunkRS5YT3MKcjs.a,{type:"button",label:"Go to next page",onClick:E,disabled:t===i,children:_jsxruntime.jsx.call(void 0, _hearthreacticons.ChevronRightSmallIcon,{})}),!u&&_jsxruntime.jsx.call(void 0, _chunkRS5YT3MKcjs.a,{type:"button",label:"Go to last page",onClick:L,disabled:t===i,children:_jsxruntime.jsx.call(void 0, _hearthreacticons.SkipLastSmallIcon,{})})]})]})})})});w.displayName=N;exports.a = w;
|
|
4
|
+
//# sourceMappingURL=chunk-YX67YOF6.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/hearth/hearth/packages/react/dist/chunk-UB43SHEW.cjs","../src/components/Pagination/Pagination.tsx"],"names":["COMPONENT_NAME","componentClassName","withGlobalPrefix","ELLIPSIS","MAX_VISIBLE_ITEMS","generatePageNumbers","currentPage","totalPages","_","i","pages","isNearStart","isNearEnd","Pagination","forwardRef","props","ref","className","onPageChange","condensed","hideSkipButtons","Tag","paginationProps","extractProps","marginPropDefs","handlePrevious","handleNext","handleFirst","handleLast","jsx","Slot","cn","jsxs"],"mappings":"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","file":"/home/runner/work/hearth/hearth/packages/react/dist/chunk-UB43SHEW.cjs","sourcesContent":[null,"'use client';\n\nimport { forwardRef } from 'react';\nimport { cn } from '../../helpers/cn';\nimport {\n ChevronLeftSmallIcon,\n ChevronRightSmallIcon,\n SkipFirstSmallIcon,\n SkipLastSmallIcon,\n} from '@utilitywarehouse/hearth-react-icons';\nimport { withGlobalPrefix } from '../../helpers/with-global-prefix';\nimport { extractProps } from '../../helpers/extract-props';\nimport { marginPropDefs } from '../../props/margin.props';\nimport { UnstyledIconButton } from '../UnstyledIconButton/UnstyledIconButton';\nimport { Button } from '../Button/Button';\nimport { BodyText } from '../BodyText/BodyText';\nimport type { PaginationProps } from './Pagination.props';\nimport { Slot } from 'radix-ui';\nimport type { ComponentRef } from 'react';\n\nconst COMPONENT_NAME = 'Pagination';\nconst componentClassName = withGlobalPrefix(COMPONENT_NAME);\n\ntype PaginationElement = ComponentRef<'div'>;\n\nconst ELLIPSIS = '...';\nconst MAX_VISIBLE_ITEMS = 7;\n\n/**\n * Generates the array of page numbers and ellipsis to display\n * Max visible items is 7 (including ellipses)\n */\nconst generatePageNumbers = (\n currentPage: number,\n totalPages: number\n): Array<number | typeof ELLIPSIS> => {\n // If total pages fit within max visible items, show all\n if (totalPages <= MAX_VISIBLE_ITEMS) {\n return Array.from({ length: totalPages }, (_, i) => i + 1);\n }\n\n const pages: Array<number | typeof ELLIPSIS> = [];\n\n // Determine if current page is close to start or end\n const isNearStart = currentPage <= 4;\n const isNearEnd = currentPage > totalPages - 4;\n\n if (isNearStart) {\n // Page 1-4 selected: 1, 2, 3, 4, 5, ..., last\n pages.push(1, 2, 3, 4, 5);\n pages.push(ELLIPSIS);\n pages.push(totalPages);\n } else if (isNearEnd) {\n // Page (totalPages-4) to totalPages selected: 1, ..., last-4, last-3, last-2, last-1, last\n pages.push(1);\n pages.push(ELLIPSIS);\n pages.push(totalPages - 4, totalPages - 3, totalPages - 2, totalPages - 1, totalPages);\n } else {\n // Middle pages: 1, ..., current-1, current, current+1, ..., last\n pages.push(1);\n pages.push(ELLIPSIS);\n pages.push(currentPage - 1, currentPage, currentPage + 1);\n pages.push(ELLIPSIS);\n pages.push(totalPages);\n }\n\n return pages;\n};\n\n/**\n * Use Pagination to let users navigate through multiple pages of content, such\n * as search results or a paginated table. It automatically condenses to a\n * maximum of 7 visible page numbers (using ellipses) for large page counts.\n * Render `as=\"nav\"` when it acts as a standalone navigation landmark — in that\n * case also provide an `id` for accessibility. Use the `condensed` prop for\n * compact spaces where only a page count needs to be shown.\n *\n * @summary A control for navigating between pages of paginated content.\n */\nexport const Pagination = forwardRef<PaginationElement, PaginationProps>((props, ref) => {\n const {\n className,\n currentPage,\n totalPages,\n onPageChange,\n condensed = false,\n hideSkipButtons = false,\n as: Tag = 'div',\n ...paginationProps\n } = extractProps(props, marginPropDefs);\n\n const pages = generatePageNumbers(currentPage, totalPages);\n\n const handlePrevious = () => {\n if (currentPage > 1) {\n onPageChange(currentPage - 1);\n }\n };\n\n const handleNext = () => {\n if (currentPage < totalPages) {\n onPageChange(currentPage + 1);\n }\n };\n\n const handleFirst = () => {\n if (currentPage !== 1) {\n onPageChange(1);\n }\n };\n\n const handleLast = () => {\n if (currentPage !== totalPages) {\n onPageChange(totalPages);\n }\n };\n\n return (\n <Slot.Root\n ref={ref}\n aria-label=\"pagination\"\n className={cn(componentClassName, className)}\n data-testid={componentClassName}\n {...paginationProps}\n >\n <Tag>\n <div className={`${componentClassName}Container`}>\n <div className={`${componentClassName}Controllers`}>\n {!hideSkipButtons && (\n <UnstyledIconButton\n type=\"button\"\n label=\"Go to first page\"\n onClick={handleFirst}\n disabled={currentPage === 1}\n >\n <SkipFirstSmallIcon />\n </UnstyledIconButton>\n )}\n\n <UnstyledIconButton\n type=\"button\"\n label=\"Go to previous page\"\n onClick={handlePrevious}\n disabled={currentPage === 1}\n >\n <ChevronLeftSmallIcon />\n </UnstyledIconButton>\n </div>\n\n {condensed ? (\n <BodyText size=\"md\" color=\"primary\">\n Page {currentPage} of {totalPages}\n </BodyText>\n ) : (\n <div>\n <ol className={`${componentClassName}Pages`}>\n {pages.map((page, index) => {\n if (page === ELLIPSIS) {\n return (\n <li key={`ellipsis-${index}`}>\n <BodyText\n size=\"md\"\n color=\"primary\"\n className={`${componentClassName}Ellipsis`}\n >\n {ELLIPSIS}\n </BodyText>\n </li>\n );\n }\n const isActive = page === currentPage;\n return (\n <li key={page}>\n <Button\n type=\"button\"\n className={`${componentClassName}Page`}\n variant=\"ghost\"\n colorScheme=\"functional\"\n onClick={() => onPageChange(page)}\n data-active={isActive ? '' : undefined}\n aria-label={`Go to page ${page}`}\n aria-current={isActive ? 'page' : undefined}\n >\n {page}\n </Button>\n </li>\n );\n })}\n </ol>\n </div>\n )}\n\n <div className={`${componentClassName}Controllers`}>\n <UnstyledIconButton\n type=\"button\"\n label=\"Go to next page\"\n onClick={handleNext}\n disabled={currentPage === totalPages}\n >\n <ChevronRightSmallIcon />\n </UnstyledIconButton>\n\n {!hideSkipButtons && (\n <UnstyledIconButton\n type=\"button\"\n label=\"Go to last page\"\n onClick={handleLast}\n disabled={currentPage === totalPages}\n >\n <SkipLastSmallIcon />\n </UnstyledIconButton>\n )}\n </div>\n </div>\n </Tag>\n </Slot.Root>\n );\n});\n\nPagination.displayName = COMPONENT_NAME;\n"]}
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/hearth/hearth/packages/react/dist/chunk-YX67YOF6.cjs","../src/components/Pagination/Pagination.tsx"],"names":["COMPONENT_NAME","componentClassName","withGlobalPrefix","ELLIPSIS","MAX_VISIBLE_ITEMS","generatePageNumbers","currentPage","totalPages","_","i","pages","isNearStart","isNearEnd","Pagination","forwardRef","props","ref","className","onPageChange","condensed","hideSkipButtons","Tag","paginationProps","extractProps","marginPropDefs","handlePrevious","handleNext","handleFirst","handleLast","jsx","Slot","cn","jsxs"],"mappings":"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","file":"/home/runner/work/hearth/hearth/packages/react/dist/chunk-YX67YOF6.cjs","sourcesContent":[null,"'use client';\n\nimport { forwardRef } from 'react';\nimport { cn } from '../../helpers/cn';\nimport {\n ChevronLeftSmallIcon,\n ChevronRightSmallIcon,\n SkipFirstSmallIcon,\n SkipLastSmallIcon,\n} from '@utilitywarehouse/hearth-react-icons';\nimport { withGlobalPrefix } from '../../helpers/with-global-prefix';\nimport { extractProps } from '../../helpers/extract-props';\nimport { marginPropDefs } from '../../props/margin.props';\nimport { UnstyledIconButton } from '../UnstyledIconButton/UnstyledIconButton';\nimport { Button } from '../Button/Button';\nimport { BodyText } from '../BodyText/BodyText';\nimport type { PaginationProps } from './Pagination.props';\nimport { Slot } from 'radix-ui';\nimport type { ComponentRef } from 'react';\n\nconst COMPONENT_NAME = 'Pagination';\nconst componentClassName = withGlobalPrefix(COMPONENT_NAME);\n\ntype PaginationElement = ComponentRef<'div'>;\n\nconst ELLIPSIS = '...';\nconst MAX_VISIBLE_ITEMS = 7;\n\n/**\n * Generates the array of page numbers and ellipsis to display\n * Max visible items is 7 (including ellipses)\n */\nconst generatePageNumbers = (\n currentPage: number,\n totalPages: number\n): Array<number | typeof ELLIPSIS> => {\n // If total pages fit within max visible items, show all\n if (totalPages <= MAX_VISIBLE_ITEMS) {\n return Array.from({ length: totalPages }, (_, i) => i + 1);\n }\n\n const pages: Array<number | typeof ELLIPSIS> = [];\n\n // Determine if current page is close to start or end\n const isNearStart = currentPage <= 4;\n const isNearEnd = currentPage > totalPages - 4;\n\n if (isNearStart) {\n // Page 1-4 selected: 1, 2, 3, 4, 5, ..., last\n pages.push(1, 2, 3, 4, 5);\n pages.push(ELLIPSIS);\n pages.push(totalPages);\n } else if (isNearEnd) {\n // Page (totalPages-4) to totalPages selected: 1, ..., last-4, last-3, last-2, last-1, last\n pages.push(1);\n pages.push(ELLIPSIS);\n pages.push(totalPages - 4, totalPages - 3, totalPages - 2, totalPages - 1, totalPages);\n } else {\n // Middle pages: 1, ..., current-1, current, current+1, ..., last\n pages.push(1);\n pages.push(ELLIPSIS);\n pages.push(currentPage - 1, currentPage, currentPage + 1);\n pages.push(ELLIPSIS);\n pages.push(totalPages);\n }\n\n return pages;\n};\n\n/**\n * Use Pagination to let users navigate through multiple pages of content, such\n * as search results or a paginated table. It automatically condenses to a\n * maximum of 7 visible page numbers (using ellipses) for large page counts.\n * Render `as=\"nav\"` when it acts as a standalone navigation landmark — in that\n * case also provide an `id` for accessibility. Use the `condensed` prop for\n * compact spaces where only a page count needs to be shown.\n *\n * @summary A control for navigating between pages of paginated content.\n */\nexport const Pagination = forwardRef<PaginationElement, PaginationProps>((props, ref) => {\n const {\n className,\n currentPage,\n totalPages,\n onPageChange,\n condensed = false,\n hideSkipButtons = false,\n as: Tag = 'div',\n ...paginationProps\n } = extractProps(props, marginPropDefs);\n\n const pages = generatePageNumbers(currentPage, totalPages);\n\n const handlePrevious = () => {\n if (currentPage > 1) {\n onPageChange(currentPage - 1);\n }\n };\n\n const handleNext = () => {\n if (currentPage < totalPages) {\n onPageChange(currentPage + 1);\n }\n };\n\n const handleFirst = () => {\n if (currentPage !== 1) {\n onPageChange(1);\n }\n };\n\n const handleLast = () => {\n if (currentPage !== totalPages) {\n onPageChange(totalPages);\n }\n };\n\n return (\n <Slot.Root\n ref={ref}\n aria-label=\"pagination\"\n className={cn(componentClassName, className)}\n data-testid={componentClassName}\n {...paginationProps}\n >\n <Tag>\n <div className={`${componentClassName}Container`}>\n <div className={`${componentClassName}Controllers`}>\n {!hideSkipButtons && (\n <UnstyledIconButton\n type=\"button\"\n label=\"Go to first page\"\n onClick={handleFirst}\n disabled={currentPage === 1}\n >\n <SkipFirstSmallIcon />\n </UnstyledIconButton>\n )}\n\n <UnstyledIconButton\n type=\"button\"\n label=\"Go to previous page\"\n onClick={handlePrevious}\n disabled={currentPage === 1}\n >\n <ChevronLeftSmallIcon />\n </UnstyledIconButton>\n </div>\n\n {condensed ? (\n <BodyText size=\"md\" color=\"primary\">\n Page {currentPage} of {totalPages}\n </BodyText>\n ) : (\n <div>\n <ol className={`${componentClassName}Pages`}>\n {pages.map((page, index) => {\n if (page === ELLIPSIS) {\n return (\n <li key={`ellipsis-${index}`}>\n <BodyText\n size=\"md\"\n color=\"primary\"\n className={`${componentClassName}Ellipsis`}\n >\n {ELLIPSIS}\n </BodyText>\n </li>\n );\n }\n const isActive = page === currentPage;\n return (\n <li key={page}>\n <Button\n type=\"button\"\n className={`${componentClassName}Page`}\n variant=\"ghost\"\n colorScheme=\"functional\"\n onClick={() => onPageChange(page)}\n data-active={isActive ? '' : undefined}\n aria-label={`Go to page ${page}`}\n aria-current={isActive ? 'page' : undefined}\n >\n {page}\n </Button>\n </li>\n );\n })}\n </ol>\n </div>\n )}\n\n <div className={`${componentClassName}Controllers`}>\n <UnstyledIconButton\n type=\"button\"\n label=\"Go to next page\"\n onClick={handleNext}\n disabled={currentPage === totalPages}\n >\n <ChevronRightSmallIcon />\n </UnstyledIconButton>\n\n {!hideSkipButtons && (\n <UnstyledIconButton\n type=\"button\"\n label=\"Go to last page\"\n onClick={handleLast}\n disabled={currentPage === totalPages}\n >\n <SkipLastSmallIcon />\n </UnstyledIconButton>\n )}\n </div>\n </div>\n </Tag>\n </Slot.Root>\n );\n});\n\nPagination.displayName = COMPONENT_NAME;\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import{a as
|
|
4
|
-
//# sourceMappingURL=chunk-
|
|
3
|
+
import{a as T}from"./chunk-ZL7L2WXW.js";import{a as y}from"./chunk-6RAPGVEG.js";import{a as b}from"./chunk-OPPG3NOC.js";import{a as I}from"./chunk-7X24J4CX.js";import{a as x}from"./chunk-VKE2TXPE.js";import{a as c}from"./chunk-KGEVWEVL.js";import{a as u}from"./chunk-J3AJBV4B.js";import{b as f}from"./chunk-PDEVCIQ3.js";import{forwardRef as k}from"react";import{jsx as v}from"react/jsx-runtime";var P="TextInput",h=f(P),A=k((N,B)=>{let{className:F,validationStatus:d,validationText:t,label:E,labelVariant:O,helperText:r,children:g,id:w,disabled:e,readOnly:n,hideLabel:C,required:o,placeholder:D,"aria-describedby":V,...q}=c(N,b),{id:l,labelId:s,helperTextId:p,validationTextId:a}=I({providedId:w,prefix:"text-input"}),i=!n&&!e,M={id:l,labelId:s,helperTextId:p,validationTextId:a,label:E,labelVariant:O,helperText:r,validationText:i?t:void 0,validationStatus:i?d:void 0,hideLabel:C,required:o},m=i&&d==="invalid",S=x(V,r?p:void 0,i&&d!==void 0&&t!==void 0?a:void 0);return v(y,{className:u(h,F),"data-disabled":e?"":void 0,"data-testid":h,...M,children:v(T,{ref:B,spellCheck:"false",id:l,required:o,disabled:e,readOnly:n,placeholder:e?void 0:D,"aria-labelledby":s,"aria-describedby":S,"aria-invalid":m?!0:void 0,"aria-errormessage":m&&t!==void 0?a:void 0,...q,children:g})})});A.displayName=P;export{A as a};
|
|
4
|
+
//# sourceMappingURL=chunk-ZGIMM7G5.js.map
|