{"version":3,"file":"CalendarDay.cjs","sources":["../../../../../src/components/date-input/calendar/CalendarDay.tsx"],"sourcesContent":["import React from \"react\";\nimport { formatDate } from \"../../../utilities/index.js\";\nimport { Text } from \"../../typography/index.js\";\nimport { toValidInputValue } from \"../utils.js\";\nimport { isDateDisabled } from \"./utils.js\";\n\nexport interface CalendarDayContext {\n    year: number;\n    month: number;\n    name: string;\n    selectedDate: string;\n    focusedDate: string;\n    min?: string;\n    max?: string;\n    onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n}\n\ninterface CalendarDayProps extends CalendarDayContext {\n    day: number;\n}\n\nexport const CalendarDay = ({\n    day,\n    year,\n    month,\n    name,\n    selectedDate,\n    focusedDate,\n    min,\n    max,\n    onChange,\n}: CalendarDayProps) => {\n    const date = toValidInputValue(`${year}-${month + 1}-${day}`);\n\n    return (\n        <td>\n            <label className=\"jkl-button--calendar\">\n                <input\n                    className=\"day\"\n                    type=\"radio\"\n                    name={name}\n                    // Radioene grupperes bare internt i kalenderen. `form` peker\n                    // bevisst på en id som ikke finnes, slik at de ikke får en\n                    // form owner og dermed ikke sendes med i en omkringliggende\n                    // <form>. Grupperingen består siden alle radioene er uten\n                    // form owner i samme tre.\n                    form={`${name}-standalone`}\n                    aria-label={formatDate(new Date(year, month, day))}\n                    tabIndex={date === focusedDate ? 0 : -1}\n                    disabled={isDateDisabled(date, min, max)}\n                    value={date}\n                    checked={selectedDate === date}\n                    onChange={(event) => onChange?.(event)}\n                    onClick={(event) => {\n                        const popover =\n                            event.currentTarget.closest<HTMLDivElement>(\n                                \"[popover]\",\n                            );\n                        setTimeout(() => {\n                            if (typeof popover?.hidePopover === \"function\") {\n                                popover.hidePopover();\n                            }\n                        }, 140); // Det ser litt rart ut når kalenderen skjules samtidig som verdien bytter, så vi venter litt\n                    }}\n                />\n                <Text as=\"span\" short aria-hidden=\"true\">\n                    {day}\n                </Text>\n            </label>\n        </td>\n    );\n};\n"],"names":["day","year","month","name","selectedDate","focusedDate","min","max","onChange","date","toValidInputValue","jsx","children","jsxs","className","type","form","formatDate","Date","tabIndex","disabled","isDateDisabled","value","checked","event","onClick","popover","currentTarget","closest","setTimeout","hidePopover","Text","as","short"],"mappings":"waAqB2B,EACvBA,IAAAA,EACAC,KAAAA,EACAC,MAAAA,EACAC,KAAAA,EACAC,aAAAA,EACAC,YAAAA,EACAC,IAAAA,EACAC,IAAAA,EACAC,SAAAA,MAEA,MAAMC,EAAOC,EAAAA,kBAAkB,GAAGT,KAAQC,EAAQ,KAAKF,KAEvD,OACIW,EAAAA,IAAC,KAAA,CACGC,SAAAC,EAAAA,KAAC,QAAA,CAAMC,UAAU,uBACbF,SAAA,CAAAD,EAAAA,IAAC,QAAA,CACGG,UAAU,MACVC,KAAK,QACLZ,KAAAA,EAMAa,KAAM,GAAGb,eACT,aAAYc,EAAAA,WAAW,IAAIC,KAAKjB,EAAMC,EAAOF,IAC7CmB,SAAUV,IAASJ,EAAc,GAAI,EACrCe,SAAUC,EAAAA,eAAeZ,EAAMH,EAAKC,GACpCe,MAAOb,EACPc,QAASnB,IAAiBK,EAC1BD,SAAWgB,GAAUhB,IAAWgB,GAChCC,QAAUD,IACN,MAAME,EACFF,EAAMG,cAAcC,QAChB,aAERC,WAAW,KAC6B,mBAAzBH,GAASI,aAChBJ,EAAQI,eAEb,QAGXnB,EAAAA,IAACoB,EAAAA,MAAKC,GAAG,OAAOC,OAAK,EAAC,cAAY,OAC7BrB,SAAAZ"}