@commercetools/nimbus 0.0.0-canary-20250807210749 → 0.0.0-canary-20250812202252
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/chunks/accordion-Bn6CnY0Y.cjs.js.map +1 -1
- package/dist/chunks/accordion-xfgQQjFK.es.js.map +1 -1
- package/dist/chunks/alert-BkF91mJ0.es.js.map +1 -1
- package/dist/chunks/alert-CQLVvNDD.cjs.js.map +1 -1
- package/dist/chunks/badge-CFwI3HLf.cjs.js.map +1 -1
- package/dist/chunks/badge-DVDR3-fy.es.js.map +1 -1
- package/dist/chunks/box-DD4jYgS7.es.js.map +1 -1
- package/dist/chunks/box-FU6tRPFs.cjs.js.map +1 -1
- package/dist/chunks/button-BBwNbl7S.cjs.js.map +1 -1
- package/dist/chunks/button-BTpQweka.es.js.map +1 -1
- package/dist/chunks/calendar-B4nCYXn4.es.js.map +1 -1
- package/dist/chunks/calendar-CKVscUm-.cjs.js.map +1 -1
- package/dist/chunks/card-B9z3AknN.cjs.js.map +1 -1
- package/dist/chunks/card-CvY06qIE.es.js.map +1 -1
- package/dist/chunks/checkbox-DywApPQh.cjs.js.map +1 -1
- package/dist/chunks/checkbox-yo64B6Gz.es.js.map +1 -1
- package/dist/chunks/code-CI8aUhmu.es.js.map +1 -1
- package/dist/chunks/code-Dg4Larbo.cjs.js.map +1 -1
- package/dist/chunks/combobox-D5lDtav9.cjs.js.map +1 -1
- package/dist/chunks/combobox-DWSsUEVz.es.js.map +1 -1
- package/dist/chunks/date-input-4hsVHJJo.es.js.map +1 -1
- package/dist/chunks/date-input-CGy4NHpW.cjs.js.map +1 -1
- package/dist/chunks/date-picker-BSOum_Vm.cjs.js +2 -0
- package/dist/chunks/date-picker-BSOum_Vm.cjs.js.map +1 -0
- package/dist/chunks/{date-picker-UO9jg5oK.es.js → date-picker-CrV9TJ_O.es.js} +66 -63
- package/dist/chunks/date-picker-CrV9TJ_O.es.js.map +1 -0
- package/dist/chunks/date-range-picker-Bvgghg-M.cjs.js +2 -0
- package/dist/chunks/date-range-picker-Bvgghg-M.cjs.js.map +1 -0
- package/dist/chunks/{date-range-picker-DGKM05wQ.es.js → date-range-picker-ByLVQAiA.es.js} +92 -86
- package/dist/chunks/date-range-picker-ByLVQAiA.es.js.map +1 -0
- package/dist/chunks/dialog-C1HRMUcF.es.js.map +1 -1
- package/dist/chunks/dialog-amEwvIoM.cjs.js.map +1 -1
- package/dist/chunks/form-field-C9PpQYF0.es.js.map +1 -1
- package/dist/chunks/form-field-CBFyTAo8.cjs.js.map +1 -1
- package/dist/chunks/grid-CugcJxRP.es.js.map +1 -1
- package/dist/chunks/grid-xr2A-OqD.cjs.js.map +1 -1
- package/dist/chunks/group-DKR1JLAy.es.js.map +1 -1
- package/dist/chunks/group-DtSrr9I-.cjs.js.map +1 -1
- package/dist/chunks/icon-BFNYuilh.es.js.map +1 -1
- package/dist/chunks/icon-D50i-dqv.cjs.js.map +1 -1
- package/dist/chunks/icon-button-BEaNe4rE.cjs.js.map +1 -1
- package/dist/chunks/icon-button-DqkVeZCx.es.js.map +1 -1
- package/dist/chunks/image-DCirAAnr.cjs.js.map +1 -1
- package/dist/chunks/image-rXPA3shk.es.js.map +1 -1
- package/dist/chunks/kbd-Bkhw9E6L.cjs.js.map +1 -1
- package/dist/chunks/kbd-Gxvodc1U.es.js.map +1 -1
- package/dist/chunks/link-BS1jRPrC.es.js.map +1 -1
- package/dist/chunks/link-COqOFX5Z.cjs.js.map +1 -1
- package/dist/chunks/list-8yfreyzi.cjs.js.map +1 -1
- package/dist/chunks/list-B21joBrq.es.js.map +1 -1
- package/dist/chunks/loading-spinner-BQd4UVQs.cjs.js.map +1 -1
- package/dist/chunks/loading-spinner-DwN-yshK.es.js.map +1 -1
- package/dist/chunks/multiline-text-input-BCHcfgz9.cjs.js.map +1 -1
- package/dist/chunks/multiline-text-input-sSdbj6tb.es.js.map +1 -1
- package/dist/chunks/nimbus-provider-Bf7NgBYl.cjs.js.map +1 -1
- package/dist/chunks/nimbus-provider-DiytQtCG.es.js.map +1 -1
- package/dist/chunks/number-input-BU6yMXV8.cjs.js.map +1 -1
- package/dist/chunks/number-input-DzwHfylo.es.js.map +1 -1
- package/dist/chunks/password-input-DdJ9gDUr.es.js.map +1 -1
- package/dist/chunks/password-input-DpINXGwE.cjs.js.map +1 -1
- package/dist/chunks/progress-bar-CCyJEPoU.es.js +75 -0
- package/dist/chunks/progress-bar-CCyJEPoU.es.js.map +1 -0
- package/dist/chunks/progress-bar-pMjw8h4h.cjs.js +2 -0
- package/dist/chunks/progress-bar-pMjw8h4h.cjs.js.map +1 -0
- package/dist/chunks/radio-input-BLVHJidw.cjs.js.map +1 -1
- package/dist/chunks/radio-input-CCm7Xqcz.es.js.map +1 -1
- package/dist/chunks/select-BZ2fZDHJ.cjs.js.map +1 -1
- package/dist/chunks/select-Cx0Yiwr-.es.js.map +1 -1
- package/dist/chunks/simple-grid-CFOP9g2P.es.js.map +1 -1
- package/dist/chunks/simple-grid-CHgTayx6.cjs.js.map +1 -1
- package/dist/chunks/stack-__ugxVHD.es.js.map +1 -1
- package/dist/chunks/stack-wFUhYQQb.cjs.js.map +1 -1
- package/dist/chunks/switch-BriJIKqx.es.js.map +1 -1
- package/dist/chunks/switch-GFsEXE6w.cjs.js.map +1 -1
- package/dist/chunks/tag-group-8CojIACI.es.js.map +1 -1
- package/dist/chunks/tag-group-D7GNkec5.cjs.js.map +1 -1
- package/dist/chunks/text--fhvW47o.cjs.js.map +1 -1
- package/dist/chunks/text-CFsPSPPs.es.js.map +1 -1
- package/dist/chunks/text-input-Dg1LSvlo.es.js.map +1 -1
- package/dist/chunks/text-input-DzIZYD16.cjs.js.map +1 -1
- package/dist/chunks/toggle-button-BcbQQcBy.cjs.js.map +1 -1
- package/dist/chunks/toggle-button-DhnBl8Gb.es.js.map +1 -1
- package/dist/chunks/toggle-button-group-BQfaNSZf.es.js.map +1 -1
- package/dist/chunks/toggle-button-group-C5nvmHRc.cjs.js.map +1 -1
- package/dist/chunks/{toolbar-C18za_6s.es.js → toolbar-DZrjQLFq.es.js} +2 -5
- package/dist/chunks/{toolbar-C18za_6s.es.js.map → toolbar-DZrjQLFq.es.js.map} +1 -1
- package/dist/chunks/toolbar-O-t4_xhL.cjs.js.map +1 -1
- package/dist/chunks/tooltip-Bi0556u1.es.js.map +1 -1
- package/dist/chunks/tooltip-DwXtfA_x.cjs.js.map +1 -1
- package/dist/chunks/visually-hidden-Bkimhan7.es.js.map +1 -1
- package/dist/chunks/visually-hidden-KeFRLonC.cjs.js.map +1 -1
- package/dist/components/components.cjs +1 -1
- package/dist/components/components.es.js +4 -4
- package/dist/components/date-picker.cjs +1 -1
- package/dist/components/date-picker.es.js +1 -1
- package/dist/components/date-range-picker.cjs +1 -1
- package/dist/components/date-range-picker.es.js +1 -1
- package/dist/components/progress-bar.cjs +1 -1
- package/dist/components/progress-bar.es.js +1 -1
- package/dist/components/toolbar.es.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.es.js +4 -4
- package/dist/setup-jsdom-polyfills.cjs.map +1 -1
- package/dist/setup-jsdom-polyfills.es.js.map +1 -1
- package/package.json +5 -5
- package/dist/chunks/date-picker-BfA4uYkg.cjs.js +0 -2
- package/dist/chunks/date-picker-BfA4uYkg.cjs.js.map +0 -1
- package/dist/chunks/date-picker-UO9jg5oK.es.js.map +0 -1
- package/dist/chunks/date-range-picker-D7D7R_4k.cjs.js +0 -2
- package/dist/chunks/date-range-picker-D7D7R_4k.cjs.js.map +0 -1
- package/dist/chunks/date-range-picker-DGKM05wQ.es.js.map +0 -1
- package/dist/chunks/progress-bar-CbZY1dE1.cjs.js +0 -2
- package/dist/chunks/progress-bar-CbZY1dE1.cjs.js.map +0 -1
- package/dist/chunks/progress-bar-VipTWl4r.es.js +0 -71
- package/dist/chunks/progress-bar-VipTWl4r.es.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar-B4nCYXn4.es.js","sources":["../../src/components/calendar/calendar.slots.tsx","../../src/components/calendar/components/calendar.grids.tsx","../../src/components/calendar/components/calendar.header.tsx","../../src/components/calendar/components/calendar.custom-context.tsx","../../src/components/calendar/calendar.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-empty-object-type */\nimport {\n createSlotRecipeContext,\n type HTMLChakraProps,\n type RecipeVariantProps,\n} from \"@chakra-ui/react\";\nimport { calendarSlotRecipe } from \"./calendar.recipe\";\nimport type { CalendarProps } from \"react-aria-components\";\nimport type { DateValue } from \"@internationalized/date\";\n\nconst { withProvider, withContext } = createSlotRecipeContext({\n key: \"calendar\",\n});\n\nexport interface CalendarRootSlotProps\n extends HTMLChakraProps<\n \"div\",\n RecipeVariantProps<typeof calendarSlotRecipe> & CalendarProps<DateValue>\n > {}\nexport const CalendarRootSlot = withProvider<\n HTMLDivElement,\n CalendarRootSlotProps\n>(\"div\", \"root\");\n\nexport interface CalendarHeaderSlotProps extends HTMLChakraProps<\"div\"> {}\nexport const CalendarHeaderSlot = withContext<\n HTMLDivElement,\n CalendarHeaderSlotProps\n>(\"div\", \"header\");\n\nexport interface CalendarGridsSlotProps extends HTMLChakraProps<\"div\"> {}\nexport const CalendarGridsSlot = withContext<\n HTMLDivElement,\n CalendarGridsSlotProps\n>(\"div\", \"grids\");\n\nexport interface CalendarMonthTitleSlotProps extends HTMLChakraProps<\"div\"> {}\nexport const CalendarMonthTitleSlot = withContext<\n HTMLDivElement,\n CalendarMonthTitleSlotProps\n>(\"div\", \"monthTitle\");\n\nexport interface CalendarGridSlotProps extends HTMLChakraProps<\"table\"> {}\nexport const CalendarGridSlot = withContext<\n HTMLTableElement,\n CalendarGridSlotProps\n>(\"table\", \"grid\");\n\nexport interface CalendarGridHeaderSlotProps extends HTMLChakraProps<\"thead\"> {}\nexport const CalendarGridHeaderSlot = withContext<\n HTMLTableSectionElement,\n CalendarGridHeaderSlotProps\n>(\"thead\", \"gridHeader\");\n\nexport interface CalendarHeaderCellSlotProps extends HTMLChakraProps<\"th\"> {}\nexport const CalendarHeaderCellSlot = withContext<\n HTMLTableCellElement,\n CalendarHeaderCellSlotProps\n>(\"th\", \"headerCell\");\n\nexport interface CalendarGridBodySlotProps extends HTMLChakraProps<\"tbody\"> {}\nexport const CalendarGridBodySlot = withContext<\n HTMLTableSectionElement,\n CalendarGridBodySlotProps\n>(\"tbody\", \"gridBody\");\n\nexport interface CalendarCellSlotProps extends HTMLChakraProps<\"td\"> {}\nexport const CalendarCellSlot = withContext<\n HTMLTableCellElement,\n CalendarCellSlotProps\n>(\"td\", \"bodyCell\");\n","import { useContext } from \"react\";\nimport { today, getLocalTimeZone } from \"@internationalized/date\";\nimport {\n CalendarGrid as RaCalendarGrid,\n CalendarGridBody as RaCalendarGridBody,\n CalendarGridHeader as RaCalendarGridHeader,\n CalendarHeaderCell as RaCalendarHeaderCell,\n CalendarCell as RaCalendarCell,\n useSlottedContext,\n CalendarContext,\n CalendarStateContext,\n useLocale,\n} from \"react-aria-components\";\n\nimport { Box } from \"@/components\";\n\nimport {\n CalendarCellSlot,\n CalendarGridBodySlot,\n CalendarGridHeaderSlot,\n CalendarGridSlot,\n CalendarGridsSlot,\n CalendarHeaderCellSlot,\n CalendarMonthTitleSlot,\n} from \"../calendar.slots\";\n\nexport const CalendarGrids = () => {\n const { locale } = useLocale();\n const context = useSlottedContext(CalendarContext);\n const calendarState = useContext(CalendarStateContext)!;\n const visibleMonthsCount = context?.visibleDuration?.months || 1;\n const todayDate = today(getLocalTimeZone());\n const showMonthTitles = visibleMonthsCount > 1;\n\n return (\n <CalendarGridsSlot>\n {Array.from({ length: visibleMonthsCount }, (_, index) => {\n const gridDate = calendarState.visibleRange.start.add({\n months: index,\n });\n const monthName = new Intl.DateTimeFormat(locale, {\n month: \"long\",\n }).format(gridDate.toDate(getLocalTimeZone()));\n\n return (\n <Box\n key={monthName}\n width={visibleMonthsCount == 1 ? \"full\" : \"auto\"}\n >\n {showMonthTitles && (\n <CalendarMonthTitleSlot>{monthName}</CalendarMonthTitleSlot>\n )}\n <CalendarGridSlot asChild>\n <RaCalendarGrid offset={{ months: index }} weekdayStyle=\"short\">\n <CalendarGridHeaderSlot asChild>\n <RaCalendarGridHeader>\n {(day) => (\n <CalendarHeaderCellSlot asChild>\n <RaCalendarHeaderCell>{day}</RaCalendarHeaderCell>\n </CalendarHeaderCellSlot>\n )}\n </RaCalendarGridHeader>\n </CalendarGridHeaderSlot>\n <CalendarGridBodySlot asChild>\n <RaCalendarGridBody>\n {(date) => {\n const isToday = date.compare(todayDate) === 0;\n return (\n <CalendarCellSlot asChild data-today={isToday}>\n <RaCalendarCell date={date} />\n </CalendarCellSlot>\n );\n }}\n </RaCalendarGridBody>\n </CalendarGridBodySlot>\n </RaCalendarGrid>\n </CalendarGridSlot>\n </Box>\n );\n })}\n </CalendarGridsSlot>\n );\n};\n","import {\n CalendarContext,\n Heading,\n useSlottedContext,\n} from \"react-aria-components\";\nimport {\n Box,\n Flex,\n IconButton,\n Stack,\n Text,\n VisuallyHidden,\n} from \"@/components\";\nimport {\n KeyboardArrowLeft,\n KeyboardArrowRight,\n} from \"@commercetools/nimbus-icons\";\nimport { CalendarHeaderSlot } from \"../calendar.slots\";\n\nexport const CalendarHeader = () => {\n const calendarProps = useSlottedContext(CalendarContext);\n\n // Needed to decide wether to show a single month or a range\n const visibleDurationMonths = calendarProps?.visibleDuration?.months || 1;\n const showRangeLabel = visibleDurationMonths > 1;\n\n return (\n <CalendarHeaderSlot>\n <Flex>\n <Stack direction=\"row\" alignItems=\"center\">\n {/** solely for screen readers, if not present, a11y issues are raised */}\n <VisuallyHidden>\n <Heading />\n </VisuallyHidden>\n {/* @ts-expect-error - custom-context will add aria-label via the \"slot\" prop */}\n <IconButton\n slot={showRangeLabel ? \"previous\" : \"previous-month\"}\n size=\"xs\"\n variant=\"ghost\"\n tone=\"primary\"\n >\n <KeyboardArrowLeft />\n </IconButton>\n <Text\n textStyle=\"sm\"\n fontWeight=\"500\"\n color=\"neutral.11\"\n width={showRangeLabel ? \"4000\" : \"2000\"}\n textAlign=\"center\"\n aria-hidden=\"true\"\n slot={showRangeLabel ? \"monthRange\" : \"month\"}\n />\n {/* @ts-expect-error - custom-context will add aria-label via the \"slot\" prop */}\n <IconButton\n slot={showRangeLabel ? \"next\" : \"next-month\"}\n size=\"xs\"\n variant=\"ghost\"\n tone=\"primary\"\n >\n <KeyboardArrowRight />\n </IconButton>\n </Stack>\n <Box flexGrow=\"1\" />\n <Stack direction=\"row\" alignItems=\"center\">\n {/* @ts-expect-error - custom-context will add aria-label via the \"slot\" prop */}\n <IconButton\n slot=\"previous-year\"\n size=\"xs\"\n variant=\"ghost\"\n tone=\"primary\"\n >\n <KeyboardArrowLeft />\n </IconButton>\n <Text\n textStyle=\"sm\"\n fontWeight=\"500\"\n color=\"neutral.11\"\n width=\"1400\"\n textAlign=\"center\"\n aria-hidden=\"true\"\n slot=\"year\"\n />\n {/* @ts-expect-error - custom-context will add aria-label via the \"slot\" prop */}\n <IconButton slot=\"next-year\" size=\"xs\" variant=\"ghost\" tone=\"primary\">\n <KeyboardArrowRight />\n </IconButton>\n </Stack>\n </Flex>\n </CalendarHeaderSlot>\n );\n};\n","import { getLocalTimeZone } from \"@internationalized/date\";\nimport { useContext } from \"react\";\nimport {\n Provider,\n ButtonContext,\n CalendarStateContext,\n TextContext,\n useLocale,\n} from \"react-aria-components\";\n\nexport const CalendarCustomContext = ({\n children,\n}: {\n children: React.ReactNode;\n}) => {\n const { locale } = useLocale();\n const buttonContext = useContext(ButtonContext)!;\n const textContext = useContext(TextContext)!;\n const calendarState = useContext(CalendarStateContext)!;\n\n /**\n * Button slots\n * ================================\n */\n const buttonSlots = {\n \"next-month\": {\n onPress: () => calendarState.focusNextSection(),\n \"aria-label\": \"Next month\",\n },\n \"previous-month\": {\n onPress: () => calendarState.focusPreviousSection(),\n \"aria-label\": \"Previous month\",\n },\n \"next-year\": {\n onPress: () => calendarState.focusNextSection(true),\n \"aria-label\": \"Next year\",\n },\n \"previous-year\": {\n onPress: () => calendarState.focusPreviousSection(true),\n \"aria-label\": \"Previous year\",\n },\n };\n\n /**\n * Text slots\n * ================================\n */\n const monthLabel = new Intl.DateTimeFormat(locale, {\n month: \"long\",\n }).format(calendarState.focusedDate.toDate(getLocalTimeZone()));\n\n const monthRangeLabel = [\n new Intl.DateTimeFormat(locale, {\n month: \"long\",\n }).format(calendarState.visibleRange.start.toDate(getLocalTimeZone())),\n new Intl.DateTimeFormat(locale, {\n month: \"long\",\n }).format(calendarState.visibleRange.end.toDate(getLocalTimeZone())),\n ].join(\" - \");\n\n const yearLabel = new Intl.DateTimeFormat(locale, {\n year: \"numeric\",\n }).format(calendarState.focusedDate.toDate(getLocalTimeZone()));\n\n const textSlots = {\n month: { children: monthLabel },\n monthRange: { children: monthRangeLabel },\n year: { children: yearLabel },\n };\n\n return (\n <Provider\n values={[\n [\n ButtonContext,\n {\n ...buttonContext,\n slots: {\n ...(buttonContext &&\n typeof buttonContext === \"object\" &&\n \"slots\" in buttonContext\n ? buttonContext.slots\n : {}),\n ...buttonSlots,\n },\n },\n ],\n [\n TextContext,\n {\n ...textContext,\n slots: {\n ...(textContext &&\n typeof textContext === \"object\" &&\n \"slots\" in textContext\n ? textContext.slots\n : {}),\n ...textSlots,\n },\n },\n ],\n ]}\n >\n {children}\n </Provider>\n );\n};\n","import type { CalendarProps } from \"./calendar.types\";\nimport type { DateValue } from \"react-aria\";\n\nimport { Calendar as RaCalendar } from \"react-aria-components\";\n\nimport { CalendarRootSlot } from \"./calendar.slots\";\nimport { CalendarGrids } from \"./components/calendar.grids\";\nimport { CalendarHeader } from \"./components/calendar.header\";\nimport { calendarSlotRecipe } from \"./calendar.recipe\";\nimport { useRecipe } from \"@chakra-ui/react\";\nimport { extractStyleProps } from \"@/utils/extractStyleProps\";\nimport { CalendarCustomContext } from \"./components/calendar.custom-context\";\n\n/**\n * # Calendar\n * \n * Calendars display a grid of days in one or more months and allow users to select a single date.\n * \n * @see {@link https://nimbus-documentation.vercel.app/components/inputs/calendar}\n */\nexport const Calendar = (props: CalendarProps<DateValue>) => {\n const recipe = useRecipe({ recipe: calendarSlotRecipe });\n const [recipeProps, remainingProps] = recipe.splitVariantProps(props);\n const [styleProps, otherProps] = extractStyleProps(remainingProps);\n\n return (\n <CalendarRootSlot {...recipeProps} {...styleProps} asChild>\n <RaCalendar {...otherProps}>\n <CalendarCustomContext>\n <CalendarHeader />\n <CalendarGrids />\n </CalendarCustomContext>\n </RaCalendar>\n </CalendarRootSlot>\n );\n};\n"],"names":["withProvider","withContext","createSlotRecipeContext","CalendarRootSlot","CalendarHeaderSlot","CalendarGridsSlot","CalendarMonthTitleSlot","CalendarGridSlot","CalendarGridHeaderSlot","CalendarHeaderCellSlot","CalendarGridBodySlot","CalendarCellSlot","CalendarGrids","locale","useLocale","context","useSlottedContext","CalendarContext","calendarState","useContext","CalendarStateContext","visibleMonthsCount","todayDate","today","getLocalTimeZone","showMonthTitles","jsx","_","index","gridDate","monthName","jsxs","Box","RaCalendarGrid","RaCalendarGridHeader","day","RaCalendarHeaderCell","RaCalendarGridBody","date","isToday","RaCalendarCell","CalendarHeader","showRangeLabel","Flex","Stack","VisuallyHidden","Heading","IconButton","KeyboardArrowLeft","Text","KeyboardArrowRight","CalendarCustomContext","children","buttonContext","ButtonContext","textContext","TextContext","buttonSlots","monthLabel","monthRangeLabel","yearLabel","textSlots","Provider","Calendar","props","recipe","useRecipe","calendarSlotRecipe","recipeProps","remainingProps","styleProps","otherProps","extractStyleProps","RaCalendar"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"calendar-B4nCYXn4.es.js","sources":["../../src/components/calendar/calendar.slots.tsx","../../src/components/calendar/components/calendar.grids.tsx","../../src/components/calendar/components/calendar.header.tsx","../../src/components/calendar/components/calendar.custom-context.tsx","../../src/components/calendar/calendar.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-empty-object-type */\nimport {\n createSlotRecipeContext,\n type HTMLChakraProps,\n type RecipeVariantProps,\n} from \"@chakra-ui/react\";\nimport { calendarSlotRecipe } from \"./calendar.recipe\";\nimport type { CalendarProps } from \"react-aria-components\";\nimport type { DateValue } from \"@internationalized/date\";\n\nconst { withProvider, withContext } = createSlotRecipeContext({\n key: \"calendar\",\n});\n\nexport interface CalendarRootSlotProps\n extends HTMLChakraProps<\n \"div\",\n RecipeVariantProps<typeof calendarSlotRecipe> & CalendarProps<DateValue>\n > {}\nexport const CalendarRootSlot = withProvider<\n HTMLDivElement,\n CalendarRootSlotProps\n>(\"div\", \"root\");\n\nexport interface CalendarHeaderSlotProps extends HTMLChakraProps<\"div\"> {}\nexport const CalendarHeaderSlot = withContext<\n HTMLDivElement,\n CalendarHeaderSlotProps\n>(\"div\", \"header\");\n\nexport interface CalendarGridsSlotProps extends HTMLChakraProps<\"div\"> {}\nexport const CalendarGridsSlot = withContext<\n HTMLDivElement,\n CalendarGridsSlotProps\n>(\"div\", \"grids\");\n\nexport interface CalendarMonthTitleSlotProps extends HTMLChakraProps<\"div\"> {}\nexport const CalendarMonthTitleSlot = withContext<\n HTMLDivElement,\n CalendarMonthTitleSlotProps\n>(\"div\", \"monthTitle\");\n\nexport interface CalendarGridSlotProps extends HTMLChakraProps<\"table\"> {}\nexport const CalendarGridSlot = withContext<\n HTMLTableElement,\n CalendarGridSlotProps\n>(\"table\", \"grid\");\n\nexport interface CalendarGridHeaderSlotProps extends HTMLChakraProps<\"thead\"> {}\nexport const CalendarGridHeaderSlot = withContext<\n HTMLTableSectionElement,\n CalendarGridHeaderSlotProps\n>(\"thead\", \"gridHeader\");\n\nexport interface CalendarHeaderCellSlotProps extends HTMLChakraProps<\"th\"> {}\nexport const CalendarHeaderCellSlot = withContext<\n HTMLTableCellElement,\n CalendarHeaderCellSlotProps\n>(\"th\", \"headerCell\");\n\nexport interface CalendarGridBodySlotProps extends HTMLChakraProps<\"tbody\"> {}\nexport const CalendarGridBodySlot = withContext<\n HTMLTableSectionElement,\n CalendarGridBodySlotProps\n>(\"tbody\", \"gridBody\");\n\nexport interface CalendarCellSlotProps extends HTMLChakraProps<\"td\"> {}\nexport const CalendarCellSlot = withContext<\n HTMLTableCellElement,\n CalendarCellSlotProps\n>(\"td\", \"bodyCell\");\n","import { useContext } from \"react\";\nimport { today, getLocalTimeZone } from \"@internationalized/date\";\nimport {\n CalendarGrid as RaCalendarGrid,\n CalendarGridBody as RaCalendarGridBody,\n CalendarGridHeader as RaCalendarGridHeader,\n CalendarHeaderCell as RaCalendarHeaderCell,\n CalendarCell as RaCalendarCell,\n useSlottedContext,\n CalendarContext,\n CalendarStateContext,\n useLocale,\n} from \"react-aria-components\";\n\nimport { Box } from \"@/components\";\n\nimport {\n CalendarCellSlot,\n CalendarGridBodySlot,\n CalendarGridHeaderSlot,\n CalendarGridSlot,\n CalendarGridsSlot,\n CalendarHeaderCellSlot,\n CalendarMonthTitleSlot,\n} from \"../calendar.slots\";\n\nexport const CalendarGrids = () => {\n const { locale } = useLocale();\n const context = useSlottedContext(CalendarContext);\n const calendarState = useContext(CalendarStateContext)!;\n const visibleMonthsCount = context?.visibleDuration?.months || 1;\n const todayDate = today(getLocalTimeZone());\n const showMonthTitles = visibleMonthsCount > 1;\n\n return (\n <CalendarGridsSlot>\n {Array.from({ length: visibleMonthsCount }, (_, index) => {\n const gridDate = calendarState.visibleRange.start.add({\n months: index,\n });\n const monthName = new Intl.DateTimeFormat(locale, {\n month: \"long\",\n }).format(gridDate.toDate(getLocalTimeZone()));\n\n return (\n <Box\n key={monthName}\n width={visibleMonthsCount == 1 ? \"full\" : \"auto\"}\n >\n {showMonthTitles && (\n <CalendarMonthTitleSlot>{monthName}</CalendarMonthTitleSlot>\n )}\n <CalendarGridSlot asChild>\n <RaCalendarGrid offset={{ months: index }} weekdayStyle=\"short\">\n <CalendarGridHeaderSlot asChild>\n <RaCalendarGridHeader>\n {(day) => (\n <CalendarHeaderCellSlot asChild>\n <RaCalendarHeaderCell>{day}</RaCalendarHeaderCell>\n </CalendarHeaderCellSlot>\n )}\n </RaCalendarGridHeader>\n </CalendarGridHeaderSlot>\n <CalendarGridBodySlot asChild>\n <RaCalendarGridBody>\n {(date) => {\n const isToday = date.compare(todayDate) === 0;\n return (\n <CalendarCellSlot asChild data-today={isToday}>\n <RaCalendarCell date={date} />\n </CalendarCellSlot>\n );\n }}\n </RaCalendarGridBody>\n </CalendarGridBodySlot>\n </RaCalendarGrid>\n </CalendarGridSlot>\n </Box>\n );\n })}\n </CalendarGridsSlot>\n );\n};\n","import {\n CalendarContext,\n Heading,\n useSlottedContext,\n} from \"react-aria-components\";\nimport {\n Box,\n Flex,\n IconButton,\n Stack,\n Text,\n VisuallyHidden,\n} from \"@/components\";\nimport {\n KeyboardArrowLeft,\n KeyboardArrowRight,\n} from \"@commercetools/nimbus-icons\";\nimport { CalendarHeaderSlot } from \"../calendar.slots\";\n\nexport const CalendarHeader = () => {\n const calendarProps = useSlottedContext(CalendarContext);\n\n // Needed to decide wether to show a single month or a range\n const visibleDurationMonths = calendarProps?.visibleDuration?.months || 1;\n const showRangeLabel = visibleDurationMonths > 1;\n\n return (\n <CalendarHeaderSlot>\n <Flex>\n <Stack direction=\"row\" alignItems=\"center\">\n {/** solely for screen readers, if not present, a11y issues are raised */}\n <VisuallyHidden>\n <Heading />\n </VisuallyHidden>\n {/* @ts-expect-error - custom-context will add aria-label via the \"slot\" prop */}\n <IconButton\n slot={showRangeLabel ? \"previous\" : \"previous-month\"}\n size=\"xs\"\n variant=\"ghost\"\n tone=\"primary\"\n >\n <KeyboardArrowLeft />\n </IconButton>\n <Text\n textStyle=\"sm\"\n fontWeight=\"500\"\n color=\"neutral.11\"\n width={showRangeLabel ? \"4000\" : \"2000\"}\n textAlign=\"center\"\n aria-hidden=\"true\"\n slot={showRangeLabel ? \"monthRange\" : \"month\"}\n />\n {/* @ts-expect-error - custom-context will add aria-label via the \"slot\" prop */}\n <IconButton\n slot={showRangeLabel ? \"next\" : \"next-month\"}\n size=\"xs\"\n variant=\"ghost\"\n tone=\"primary\"\n >\n <KeyboardArrowRight />\n </IconButton>\n </Stack>\n <Box flexGrow=\"1\" />\n <Stack direction=\"row\" alignItems=\"center\">\n {/* @ts-expect-error - custom-context will add aria-label via the \"slot\" prop */}\n <IconButton\n slot=\"previous-year\"\n size=\"xs\"\n variant=\"ghost\"\n tone=\"primary\"\n >\n <KeyboardArrowLeft />\n </IconButton>\n <Text\n textStyle=\"sm\"\n fontWeight=\"500\"\n color=\"neutral.11\"\n width=\"1400\"\n textAlign=\"center\"\n aria-hidden=\"true\"\n slot=\"year\"\n />\n {/* @ts-expect-error - custom-context will add aria-label via the \"slot\" prop */}\n <IconButton slot=\"next-year\" size=\"xs\" variant=\"ghost\" tone=\"primary\">\n <KeyboardArrowRight />\n </IconButton>\n </Stack>\n </Flex>\n </CalendarHeaderSlot>\n );\n};\n","import { getLocalTimeZone } from \"@internationalized/date\";\nimport { useContext } from \"react\";\nimport {\n Provider,\n ButtonContext,\n CalendarStateContext,\n TextContext,\n useLocale,\n} from \"react-aria-components\";\n\nexport const CalendarCustomContext = ({\n children,\n}: {\n children: React.ReactNode;\n}) => {\n const { locale } = useLocale();\n const buttonContext = useContext(ButtonContext)!;\n const textContext = useContext(TextContext)!;\n const calendarState = useContext(CalendarStateContext)!;\n\n /**\n * Button slots\n * ================================\n */\n const buttonSlots = {\n \"next-month\": {\n onPress: () => calendarState.focusNextSection(),\n \"aria-label\": \"Next month\",\n },\n \"previous-month\": {\n onPress: () => calendarState.focusPreviousSection(),\n \"aria-label\": \"Previous month\",\n },\n \"next-year\": {\n onPress: () => calendarState.focusNextSection(true),\n \"aria-label\": \"Next year\",\n },\n \"previous-year\": {\n onPress: () => calendarState.focusPreviousSection(true),\n \"aria-label\": \"Previous year\",\n },\n };\n\n /**\n * Text slots\n * ================================\n */\n const monthLabel = new Intl.DateTimeFormat(locale, {\n month: \"long\",\n }).format(calendarState.focusedDate.toDate(getLocalTimeZone()));\n\n const monthRangeLabel = [\n new Intl.DateTimeFormat(locale, {\n month: \"long\",\n }).format(calendarState.visibleRange.start.toDate(getLocalTimeZone())),\n new Intl.DateTimeFormat(locale, {\n month: \"long\",\n }).format(calendarState.visibleRange.end.toDate(getLocalTimeZone())),\n ].join(\" - \");\n\n const yearLabel = new Intl.DateTimeFormat(locale, {\n year: \"numeric\",\n }).format(calendarState.focusedDate.toDate(getLocalTimeZone()));\n\n const textSlots = {\n month: { children: monthLabel },\n monthRange: { children: monthRangeLabel },\n year: { children: yearLabel },\n };\n\n return (\n <Provider\n values={[\n [\n ButtonContext,\n {\n ...buttonContext,\n slots: {\n ...(buttonContext &&\n typeof buttonContext === \"object\" &&\n \"slots\" in buttonContext\n ? buttonContext.slots\n : {}),\n ...buttonSlots,\n },\n },\n ],\n [\n TextContext,\n {\n ...textContext,\n slots: {\n ...(textContext &&\n typeof textContext === \"object\" &&\n \"slots\" in textContext\n ? textContext.slots\n : {}),\n ...textSlots,\n },\n },\n ],\n ]}\n >\n {children}\n </Provider>\n );\n};\n","import type { CalendarProps } from \"./calendar.types\";\nimport type { DateValue } from \"react-aria\";\n\nimport { Calendar as RaCalendar } from \"react-aria-components\";\n\nimport { CalendarRootSlot } from \"./calendar.slots\";\nimport { CalendarGrids } from \"./components/calendar.grids\";\nimport { CalendarHeader } from \"./components/calendar.header\";\nimport { calendarSlotRecipe } from \"./calendar.recipe\";\nimport { useRecipe } from \"@chakra-ui/react\";\nimport { extractStyleProps } from \"@/utils/extractStyleProps\";\nimport { CalendarCustomContext } from \"./components/calendar.custom-context\";\n\n/**\n * # Calendar\n *\n * Calendars display a grid of days in one or more months and allow users to select a single date.\n *\n * @see {@link https://nimbus-documentation.vercel.app/components/inputs/calendar}\n */\nexport const Calendar = (props: CalendarProps<DateValue>) => {\n const recipe = useRecipe({ recipe: calendarSlotRecipe });\n const [recipeProps, remainingProps] = recipe.splitVariantProps(props);\n const [styleProps, otherProps] = extractStyleProps(remainingProps);\n\n return (\n <CalendarRootSlot {...recipeProps} {...styleProps} asChild>\n <RaCalendar {...otherProps}>\n <CalendarCustomContext>\n <CalendarHeader />\n <CalendarGrids />\n </CalendarCustomContext>\n </RaCalendar>\n </CalendarRootSlot>\n );\n};\n"],"names":["withProvider","withContext","createSlotRecipeContext","CalendarRootSlot","CalendarHeaderSlot","CalendarGridsSlot","CalendarMonthTitleSlot","CalendarGridSlot","CalendarGridHeaderSlot","CalendarHeaderCellSlot","CalendarGridBodySlot","CalendarCellSlot","CalendarGrids","locale","useLocale","context","useSlottedContext","CalendarContext","calendarState","useContext","CalendarStateContext","visibleMonthsCount","todayDate","today","getLocalTimeZone","showMonthTitles","jsx","_","index","gridDate","monthName","jsxs","Box","RaCalendarGrid","RaCalendarGridHeader","day","RaCalendarHeaderCell","RaCalendarGridBody","date","isToday","RaCalendarCell","CalendarHeader","showRangeLabel","Flex","Stack","VisuallyHidden","Heading","IconButton","KeyboardArrowLeft","Text","KeyboardArrowRight","CalendarCustomContext","children","buttonContext","ButtonContext","textContext","TextContext","buttonSlots","monthLabel","monthRangeLabel","yearLabel","textSlots","Provider","Calendar","props","recipe","useRecipe","calendarSlotRecipe","recipeProps","remainingProps","styleProps","otherProps","extractStyleProps","RaCalendar"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar-CKVscUm-.cjs.js","sources":["../../src/components/calendar/calendar.slots.tsx","../../src/components/calendar/components/calendar.grids.tsx","../../src/components/calendar/components/calendar.header.tsx","../../src/components/calendar/components/calendar.custom-context.tsx","../../src/components/calendar/calendar.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-empty-object-type */\nimport {\n createSlotRecipeContext,\n type HTMLChakraProps,\n type RecipeVariantProps,\n} from \"@chakra-ui/react\";\nimport { calendarSlotRecipe } from \"./calendar.recipe\";\nimport type { CalendarProps } from \"react-aria-components\";\nimport type { DateValue } from \"@internationalized/date\";\n\nconst { withProvider, withContext } = createSlotRecipeContext({\n key: \"calendar\",\n});\n\nexport interface CalendarRootSlotProps\n extends HTMLChakraProps<\n \"div\",\n RecipeVariantProps<typeof calendarSlotRecipe> & CalendarProps<DateValue>\n > {}\nexport const CalendarRootSlot = withProvider<\n HTMLDivElement,\n CalendarRootSlotProps\n>(\"div\", \"root\");\n\nexport interface CalendarHeaderSlotProps extends HTMLChakraProps<\"div\"> {}\nexport const CalendarHeaderSlot = withContext<\n HTMLDivElement,\n CalendarHeaderSlotProps\n>(\"div\", \"header\");\n\nexport interface CalendarGridsSlotProps extends HTMLChakraProps<\"div\"> {}\nexport const CalendarGridsSlot = withContext<\n HTMLDivElement,\n CalendarGridsSlotProps\n>(\"div\", \"grids\");\n\nexport interface CalendarMonthTitleSlotProps extends HTMLChakraProps<\"div\"> {}\nexport const CalendarMonthTitleSlot = withContext<\n HTMLDivElement,\n CalendarMonthTitleSlotProps\n>(\"div\", \"monthTitle\");\n\nexport interface CalendarGridSlotProps extends HTMLChakraProps<\"table\"> {}\nexport const CalendarGridSlot = withContext<\n HTMLTableElement,\n CalendarGridSlotProps\n>(\"table\", \"grid\");\n\nexport interface CalendarGridHeaderSlotProps extends HTMLChakraProps<\"thead\"> {}\nexport const CalendarGridHeaderSlot = withContext<\n HTMLTableSectionElement,\n CalendarGridHeaderSlotProps\n>(\"thead\", \"gridHeader\");\n\nexport interface CalendarHeaderCellSlotProps extends HTMLChakraProps<\"th\"> {}\nexport const CalendarHeaderCellSlot = withContext<\n HTMLTableCellElement,\n CalendarHeaderCellSlotProps\n>(\"th\", \"headerCell\");\n\nexport interface CalendarGridBodySlotProps extends HTMLChakraProps<\"tbody\"> {}\nexport const CalendarGridBodySlot = withContext<\n HTMLTableSectionElement,\n CalendarGridBodySlotProps\n>(\"tbody\", \"gridBody\");\n\nexport interface CalendarCellSlotProps extends HTMLChakraProps<\"td\"> {}\nexport const CalendarCellSlot = withContext<\n HTMLTableCellElement,\n CalendarCellSlotProps\n>(\"td\", \"bodyCell\");\n","import { useContext } from \"react\";\nimport { today, getLocalTimeZone } from \"@internationalized/date\";\nimport {\n CalendarGrid as RaCalendarGrid,\n CalendarGridBody as RaCalendarGridBody,\n CalendarGridHeader as RaCalendarGridHeader,\n CalendarHeaderCell as RaCalendarHeaderCell,\n CalendarCell as RaCalendarCell,\n useSlottedContext,\n CalendarContext,\n CalendarStateContext,\n useLocale,\n} from \"react-aria-components\";\n\nimport { Box } from \"@/components\";\n\nimport {\n CalendarCellSlot,\n CalendarGridBodySlot,\n CalendarGridHeaderSlot,\n CalendarGridSlot,\n CalendarGridsSlot,\n CalendarHeaderCellSlot,\n CalendarMonthTitleSlot,\n} from \"../calendar.slots\";\n\nexport const CalendarGrids = () => {\n const { locale } = useLocale();\n const context = useSlottedContext(CalendarContext);\n const calendarState = useContext(CalendarStateContext)!;\n const visibleMonthsCount = context?.visibleDuration?.months || 1;\n const todayDate = today(getLocalTimeZone());\n const showMonthTitles = visibleMonthsCount > 1;\n\n return (\n <CalendarGridsSlot>\n {Array.from({ length: visibleMonthsCount }, (_, index) => {\n const gridDate = calendarState.visibleRange.start.add({\n months: index,\n });\n const monthName = new Intl.DateTimeFormat(locale, {\n month: \"long\",\n }).format(gridDate.toDate(getLocalTimeZone()));\n\n return (\n <Box\n key={monthName}\n width={visibleMonthsCount == 1 ? \"full\" : \"auto\"}\n >\n {showMonthTitles && (\n <CalendarMonthTitleSlot>{monthName}</CalendarMonthTitleSlot>\n )}\n <CalendarGridSlot asChild>\n <RaCalendarGrid offset={{ months: index }} weekdayStyle=\"short\">\n <CalendarGridHeaderSlot asChild>\n <RaCalendarGridHeader>\n {(day) => (\n <CalendarHeaderCellSlot asChild>\n <RaCalendarHeaderCell>{day}</RaCalendarHeaderCell>\n </CalendarHeaderCellSlot>\n )}\n </RaCalendarGridHeader>\n </CalendarGridHeaderSlot>\n <CalendarGridBodySlot asChild>\n <RaCalendarGridBody>\n {(date) => {\n const isToday = date.compare(todayDate) === 0;\n return (\n <CalendarCellSlot asChild data-today={isToday}>\n <RaCalendarCell date={date} />\n </CalendarCellSlot>\n );\n }}\n </RaCalendarGridBody>\n </CalendarGridBodySlot>\n </RaCalendarGrid>\n </CalendarGridSlot>\n </Box>\n );\n })}\n </CalendarGridsSlot>\n );\n};\n","import {\n CalendarContext,\n Heading,\n useSlottedContext,\n} from \"react-aria-components\";\nimport {\n Box,\n Flex,\n IconButton,\n Stack,\n Text,\n VisuallyHidden,\n} from \"@/components\";\nimport {\n KeyboardArrowLeft,\n KeyboardArrowRight,\n} from \"@commercetools/nimbus-icons\";\nimport { CalendarHeaderSlot } from \"../calendar.slots\";\n\nexport const CalendarHeader = () => {\n const calendarProps = useSlottedContext(CalendarContext);\n\n // Needed to decide wether to show a single month or a range\n const visibleDurationMonths = calendarProps?.visibleDuration?.months || 1;\n const showRangeLabel = visibleDurationMonths > 1;\n\n return (\n <CalendarHeaderSlot>\n <Flex>\n <Stack direction=\"row\" alignItems=\"center\">\n {/** solely for screen readers, if not present, a11y issues are raised */}\n <VisuallyHidden>\n <Heading />\n </VisuallyHidden>\n {/* @ts-expect-error - custom-context will add aria-label via the \"slot\" prop */}\n <IconButton\n slot={showRangeLabel ? \"previous\" : \"previous-month\"}\n size=\"xs\"\n variant=\"ghost\"\n tone=\"primary\"\n >\n <KeyboardArrowLeft />\n </IconButton>\n <Text\n textStyle=\"sm\"\n fontWeight=\"500\"\n color=\"neutral.11\"\n width={showRangeLabel ? \"4000\" : \"2000\"}\n textAlign=\"center\"\n aria-hidden=\"true\"\n slot={showRangeLabel ? \"monthRange\" : \"month\"}\n />\n {/* @ts-expect-error - custom-context will add aria-label via the \"slot\" prop */}\n <IconButton\n slot={showRangeLabel ? \"next\" : \"next-month\"}\n size=\"xs\"\n variant=\"ghost\"\n tone=\"primary\"\n >\n <KeyboardArrowRight />\n </IconButton>\n </Stack>\n <Box flexGrow=\"1\" />\n <Stack direction=\"row\" alignItems=\"center\">\n {/* @ts-expect-error - custom-context will add aria-label via the \"slot\" prop */}\n <IconButton\n slot=\"previous-year\"\n size=\"xs\"\n variant=\"ghost\"\n tone=\"primary\"\n >\n <KeyboardArrowLeft />\n </IconButton>\n <Text\n textStyle=\"sm\"\n fontWeight=\"500\"\n color=\"neutral.11\"\n width=\"1400\"\n textAlign=\"center\"\n aria-hidden=\"true\"\n slot=\"year\"\n />\n {/* @ts-expect-error - custom-context will add aria-label via the \"slot\" prop */}\n <IconButton slot=\"next-year\" size=\"xs\" variant=\"ghost\" tone=\"primary\">\n <KeyboardArrowRight />\n </IconButton>\n </Stack>\n </Flex>\n </CalendarHeaderSlot>\n );\n};\n","import { getLocalTimeZone } from \"@internationalized/date\";\nimport { useContext } from \"react\";\nimport {\n Provider,\n ButtonContext,\n CalendarStateContext,\n TextContext,\n useLocale,\n} from \"react-aria-components\";\n\nexport const CalendarCustomContext = ({\n children,\n}: {\n children: React.ReactNode;\n}) => {\n const { locale } = useLocale();\n const buttonContext = useContext(ButtonContext)!;\n const textContext = useContext(TextContext)!;\n const calendarState = useContext(CalendarStateContext)!;\n\n /**\n * Button slots\n * ================================\n */\n const buttonSlots = {\n \"next-month\": {\n onPress: () => calendarState.focusNextSection(),\n \"aria-label\": \"Next month\",\n },\n \"previous-month\": {\n onPress: () => calendarState.focusPreviousSection(),\n \"aria-label\": \"Previous month\",\n },\n \"next-year\": {\n onPress: () => calendarState.focusNextSection(true),\n \"aria-label\": \"Next year\",\n },\n \"previous-year\": {\n onPress: () => calendarState.focusPreviousSection(true),\n \"aria-label\": \"Previous year\",\n },\n };\n\n /**\n * Text slots\n * ================================\n */\n const monthLabel = new Intl.DateTimeFormat(locale, {\n month: \"long\",\n }).format(calendarState.focusedDate.toDate(getLocalTimeZone()));\n\n const monthRangeLabel = [\n new Intl.DateTimeFormat(locale, {\n month: \"long\",\n }).format(calendarState.visibleRange.start.toDate(getLocalTimeZone())),\n new Intl.DateTimeFormat(locale, {\n month: \"long\",\n }).format(calendarState.visibleRange.end.toDate(getLocalTimeZone())),\n ].join(\" - \");\n\n const yearLabel = new Intl.DateTimeFormat(locale, {\n year: \"numeric\",\n }).format(calendarState.focusedDate.toDate(getLocalTimeZone()));\n\n const textSlots = {\n month: { children: monthLabel },\n monthRange: { children: monthRangeLabel },\n year: { children: yearLabel },\n };\n\n return (\n <Provider\n values={[\n [\n ButtonContext,\n {\n ...buttonContext,\n slots: {\n ...(buttonContext &&\n typeof buttonContext === \"object\" &&\n \"slots\" in buttonContext\n ? buttonContext.slots\n : {}),\n ...buttonSlots,\n },\n },\n ],\n [\n TextContext,\n {\n ...textContext,\n slots: {\n ...(textContext &&\n typeof textContext === \"object\" &&\n \"slots\" in textContext\n ? textContext.slots\n : {}),\n ...textSlots,\n },\n },\n ],\n ]}\n >\n {children}\n </Provider>\n );\n};\n","import type { CalendarProps } from \"./calendar.types\";\nimport type { DateValue } from \"react-aria\";\n\nimport { Calendar as RaCalendar } from \"react-aria-components\";\n\nimport { CalendarRootSlot } from \"./calendar.slots\";\nimport { CalendarGrids } from \"./components/calendar.grids\";\nimport { CalendarHeader } from \"./components/calendar.header\";\nimport { calendarSlotRecipe } from \"./calendar.recipe\";\nimport { useRecipe } from \"@chakra-ui/react\";\nimport { extractStyleProps } from \"@/utils/extractStyleProps\";\nimport { CalendarCustomContext } from \"./components/calendar.custom-context\";\n\n/**\n * # Calendar\n * \n * Calendars display a grid of days in one or more months and allow users to select a single date.\n * \n * @see {@link https://nimbus-documentation.vercel.app/components/inputs/calendar}\n */\nexport const Calendar = (props: CalendarProps<DateValue>) => {\n const recipe = useRecipe({ recipe: calendarSlotRecipe });\n const [recipeProps, remainingProps] = recipe.splitVariantProps(props);\n const [styleProps, otherProps] = extractStyleProps(remainingProps);\n\n return (\n <CalendarRootSlot {...recipeProps} {...styleProps} asChild>\n <RaCalendar {...otherProps}>\n <CalendarCustomContext>\n <CalendarHeader />\n <CalendarGrids />\n </CalendarCustomContext>\n </RaCalendar>\n </CalendarRootSlot>\n );\n};\n"],"names":["withProvider","withContext","createSlotRecipeContext","CalendarRootSlot","CalendarHeaderSlot","CalendarGridsSlot","CalendarMonthTitleSlot","CalendarGridSlot","CalendarGridHeaderSlot","CalendarHeaderCellSlot","CalendarGridBodySlot","CalendarCellSlot","CalendarGrids","locale","useLocale","context","useSlottedContext","CalendarContext","calendarState","useContext","CalendarStateContext","visibleMonthsCount","todayDate","today","getLocalTimeZone","showMonthTitles","jsx","_","index","gridDate","monthName","jsxs","Box","RaCalendarGrid","RaCalendarGridHeader","day","RaCalendarHeaderCell","RaCalendarGridBody","date","isToday","RaCalendarCell","CalendarHeader","showRangeLabel","Flex","Stack","VisuallyHidden","Heading","IconButton","KeyboardArrowLeft","Text","KeyboardArrowRight","CalendarCustomContext","children","buttonContext","ButtonContext","textContext","TextContext","buttonSlots","monthLabel","monthRangeLabel","yearLabel","textSlots","Provider","Calendar","props","recipe","useRecipe","calendarSlotRecipe","recipeProps","remainingProps","styleProps","otherProps","extractStyleProps","RaCalendar"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"calendar-CKVscUm-.cjs.js","sources":["../../src/components/calendar/calendar.slots.tsx","../../src/components/calendar/components/calendar.grids.tsx","../../src/components/calendar/components/calendar.header.tsx","../../src/components/calendar/components/calendar.custom-context.tsx","../../src/components/calendar/calendar.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-empty-object-type */\nimport {\n createSlotRecipeContext,\n type HTMLChakraProps,\n type RecipeVariantProps,\n} from \"@chakra-ui/react\";\nimport { calendarSlotRecipe } from \"./calendar.recipe\";\nimport type { CalendarProps } from \"react-aria-components\";\nimport type { DateValue } from \"@internationalized/date\";\n\nconst { withProvider, withContext } = createSlotRecipeContext({\n key: \"calendar\",\n});\n\nexport interface CalendarRootSlotProps\n extends HTMLChakraProps<\n \"div\",\n RecipeVariantProps<typeof calendarSlotRecipe> & CalendarProps<DateValue>\n > {}\nexport const CalendarRootSlot = withProvider<\n HTMLDivElement,\n CalendarRootSlotProps\n>(\"div\", \"root\");\n\nexport interface CalendarHeaderSlotProps extends HTMLChakraProps<\"div\"> {}\nexport const CalendarHeaderSlot = withContext<\n HTMLDivElement,\n CalendarHeaderSlotProps\n>(\"div\", \"header\");\n\nexport interface CalendarGridsSlotProps extends HTMLChakraProps<\"div\"> {}\nexport const CalendarGridsSlot = withContext<\n HTMLDivElement,\n CalendarGridsSlotProps\n>(\"div\", \"grids\");\n\nexport interface CalendarMonthTitleSlotProps extends HTMLChakraProps<\"div\"> {}\nexport const CalendarMonthTitleSlot = withContext<\n HTMLDivElement,\n CalendarMonthTitleSlotProps\n>(\"div\", \"monthTitle\");\n\nexport interface CalendarGridSlotProps extends HTMLChakraProps<\"table\"> {}\nexport const CalendarGridSlot = withContext<\n HTMLTableElement,\n CalendarGridSlotProps\n>(\"table\", \"grid\");\n\nexport interface CalendarGridHeaderSlotProps extends HTMLChakraProps<\"thead\"> {}\nexport const CalendarGridHeaderSlot = withContext<\n HTMLTableSectionElement,\n CalendarGridHeaderSlotProps\n>(\"thead\", \"gridHeader\");\n\nexport interface CalendarHeaderCellSlotProps extends HTMLChakraProps<\"th\"> {}\nexport const CalendarHeaderCellSlot = withContext<\n HTMLTableCellElement,\n CalendarHeaderCellSlotProps\n>(\"th\", \"headerCell\");\n\nexport interface CalendarGridBodySlotProps extends HTMLChakraProps<\"tbody\"> {}\nexport const CalendarGridBodySlot = withContext<\n HTMLTableSectionElement,\n CalendarGridBodySlotProps\n>(\"tbody\", \"gridBody\");\n\nexport interface CalendarCellSlotProps extends HTMLChakraProps<\"td\"> {}\nexport const CalendarCellSlot = withContext<\n HTMLTableCellElement,\n CalendarCellSlotProps\n>(\"td\", \"bodyCell\");\n","import { useContext } from \"react\";\nimport { today, getLocalTimeZone } from \"@internationalized/date\";\nimport {\n CalendarGrid as RaCalendarGrid,\n CalendarGridBody as RaCalendarGridBody,\n CalendarGridHeader as RaCalendarGridHeader,\n CalendarHeaderCell as RaCalendarHeaderCell,\n CalendarCell as RaCalendarCell,\n useSlottedContext,\n CalendarContext,\n CalendarStateContext,\n useLocale,\n} from \"react-aria-components\";\n\nimport { Box } from \"@/components\";\n\nimport {\n CalendarCellSlot,\n CalendarGridBodySlot,\n CalendarGridHeaderSlot,\n CalendarGridSlot,\n CalendarGridsSlot,\n CalendarHeaderCellSlot,\n CalendarMonthTitleSlot,\n} from \"../calendar.slots\";\n\nexport const CalendarGrids = () => {\n const { locale } = useLocale();\n const context = useSlottedContext(CalendarContext);\n const calendarState = useContext(CalendarStateContext)!;\n const visibleMonthsCount = context?.visibleDuration?.months || 1;\n const todayDate = today(getLocalTimeZone());\n const showMonthTitles = visibleMonthsCount > 1;\n\n return (\n <CalendarGridsSlot>\n {Array.from({ length: visibleMonthsCount }, (_, index) => {\n const gridDate = calendarState.visibleRange.start.add({\n months: index,\n });\n const monthName = new Intl.DateTimeFormat(locale, {\n month: \"long\",\n }).format(gridDate.toDate(getLocalTimeZone()));\n\n return (\n <Box\n key={monthName}\n width={visibleMonthsCount == 1 ? \"full\" : \"auto\"}\n >\n {showMonthTitles && (\n <CalendarMonthTitleSlot>{monthName}</CalendarMonthTitleSlot>\n )}\n <CalendarGridSlot asChild>\n <RaCalendarGrid offset={{ months: index }} weekdayStyle=\"short\">\n <CalendarGridHeaderSlot asChild>\n <RaCalendarGridHeader>\n {(day) => (\n <CalendarHeaderCellSlot asChild>\n <RaCalendarHeaderCell>{day}</RaCalendarHeaderCell>\n </CalendarHeaderCellSlot>\n )}\n </RaCalendarGridHeader>\n </CalendarGridHeaderSlot>\n <CalendarGridBodySlot asChild>\n <RaCalendarGridBody>\n {(date) => {\n const isToday = date.compare(todayDate) === 0;\n return (\n <CalendarCellSlot asChild data-today={isToday}>\n <RaCalendarCell date={date} />\n </CalendarCellSlot>\n );\n }}\n </RaCalendarGridBody>\n </CalendarGridBodySlot>\n </RaCalendarGrid>\n </CalendarGridSlot>\n </Box>\n );\n })}\n </CalendarGridsSlot>\n );\n};\n","import {\n CalendarContext,\n Heading,\n useSlottedContext,\n} from \"react-aria-components\";\nimport {\n Box,\n Flex,\n IconButton,\n Stack,\n Text,\n VisuallyHidden,\n} from \"@/components\";\nimport {\n KeyboardArrowLeft,\n KeyboardArrowRight,\n} from \"@commercetools/nimbus-icons\";\nimport { CalendarHeaderSlot } from \"../calendar.slots\";\n\nexport const CalendarHeader = () => {\n const calendarProps = useSlottedContext(CalendarContext);\n\n // Needed to decide wether to show a single month or a range\n const visibleDurationMonths = calendarProps?.visibleDuration?.months || 1;\n const showRangeLabel = visibleDurationMonths > 1;\n\n return (\n <CalendarHeaderSlot>\n <Flex>\n <Stack direction=\"row\" alignItems=\"center\">\n {/** solely for screen readers, if not present, a11y issues are raised */}\n <VisuallyHidden>\n <Heading />\n </VisuallyHidden>\n {/* @ts-expect-error - custom-context will add aria-label via the \"slot\" prop */}\n <IconButton\n slot={showRangeLabel ? \"previous\" : \"previous-month\"}\n size=\"xs\"\n variant=\"ghost\"\n tone=\"primary\"\n >\n <KeyboardArrowLeft />\n </IconButton>\n <Text\n textStyle=\"sm\"\n fontWeight=\"500\"\n color=\"neutral.11\"\n width={showRangeLabel ? \"4000\" : \"2000\"}\n textAlign=\"center\"\n aria-hidden=\"true\"\n slot={showRangeLabel ? \"monthRange\" : \"month\"}\n />\n {/* @ts-expect-error - custom-context will add aria-label via the \"slot\" prop */}\n <IconButton\n slot={showRangeLabel ? \"next\" : \"next-month\"}\n size=\"xs\"\n variant=\"ghost\"\n tone=\"primary\"\n >\n <KeyboardArrowRight />\n </IconButton>\n </Stack>\n <Box flexGrow=\"1\" />\n <Stack direction=\"row\" alignItems=\"center\">\n {/* @ts-expect-error - custom-context will add aria-label via the \"slot\" prop */}\n <IconButton\n slot=\"previous-year\"\n size=\"xs\"\n variant=\"ghost\"\n tone=\"primary\"\n >\n <KeyboardArrowLeft />\n </IconButton>\n <Text\n textStyle=\"sm\"\n fontWeight=\"500\"\n color=\"neutral.11\"\n width=\"1400\"\n textAlign=\"center\"\n aria-hidden=\"true\"\n slot=\"year\"\n />\n {/* @ts-expect-error - custom-context will add aria-label via the \"slot\" prop */}\n <IconButton slot=\"next-year\" size=\"xs\" variant=\"ghost\" tone=\"primary\">\n <KeyboardArrowRight />\n </IconButton>\n </Stack>\n </Flex>\n </CalendarHeaderSlot>\n );\n};\n","import { getLocalTimeZone } from \"@internationalized/date\";\nimport { useContext } from \"react\";\nimport {\n Provider,\n ButtonContext,\n CalendarStateContext,\n TextContext,\n useLocale,\n} from \"react-aria-components\";\n\nexport const CalendarCustomContext = ({\n children,\n}: {\n children: React.ReactNode;\n}) => {\n const { locale } = useLocale();\n const buttonContext = useContext(ButtonContext)!;\n const textContext = useContext(TextContext)!;\n const calendarState = useContext(CalendarStateContext)!;\n\n /**\n * Button slots\n * ================================\n */\n const buttonSlots = {\n \"next-month\": {\n onPress: () => calendarState.focusNextSection(),\n \"aria-label\": \"Next month\",\n },\n \"previous-month\": {\n onPress: () => calendarState.focusPreviousSection(),\n \"aria-label\": \"Previous month\",\n },\n \"next-year\": {\n onPress: () => calendarState.focusNextSection(true),\n \"aria-label\": \"Next year\",\n },\n \"previous-year\": {\n onPress: () => calendarState.focusPreviousSection(true),\n \"aria-label\": \"Previous year\",\n },\n };\n\n /**\n * Text slots\n * ================================\n */\n const monthLabel = new Intl.DateTimeFormat(locale, {\n month: \"long\",\n }).format(calendarState.focusedDate.toDate(getLocalTimeZone()));\n\n const monthRangeLabel = [\n new Intl.DateTimeFormat(locale, {\n month: \"long\",\n }).format(calendarState.visibleRange.start.toDate(getLocalTimeZone())),\n new Intl.DateTimeFormat(locale, {\n month: \"long\",\n }).format(calendarState.visibleRange.end.toDate(getLocalTimeZone())),\n ].join(\" - \");\n\n const yearLabel = new Intl.DateTimeFormat(locale, {\n year: \"numeric\",\n }).format(calendarState.focusedDate.toDate(getLocalTimeZone()));\n\n const textSlots = {\n month: { children: monthLabel },\n monthRange: { children: monthRangeLabel },\n year: { children: yearLabel },\n };\n\n return (\n <Provider\n values={[\n [\n ButtonContext,\n {\n ...buttonContext,\n slots: {\n ...(buttonContext &&\n typeof buttonContext === \"object\" &&\n \"slots\" in buttonContext\n ? buttonContext.slots\n : {}),\n ...buttonSlots,\n },\n },\n ],\n [\n TextContext,\n {\n ...textContext,\n slots: {\n ...(textContext &&\n typeof textContext === \"object\" &&\n \"slots\" in textContext\n ? textContext.slots\n : {}),\n ...textSlots,\n },\n },\n ],\n ]}\n >\n {children}\n </Provider>\n );\n};\n","import type { CalendarProps } from \"./calendar.types\";\nimport type { DateValue } from \"react-aria\";\n\nimport { Calendar as RaCalendar } from \"react-aria-components\";\n\nimport { CalendarRootSlot } from \"./calendar.slots\";\nimport { CalendarGrids } from \"./components/calendar.grids\";\nimport { CalendarHeader } from \"./components/calendar.header\";\nimport { calendarSlotRecipe } from \"./calendar.recipe\";\nimport { useRecipe } from \"@chakra-ui/react\";\nimport { extractStyleProps } from \"@/utils/extractStyleProps\";\nimport { CalendarCustomContext } from \"./components/calendar.custom-context\";\n\n/**\n * # Calendar\n *\n * Calendars display a grid of days in one or more months and allow users to select a single date.\n *\n * @see {@link https://nimbus-documentation.vercel.app/components/inputs/calendar}\n */\nexport const Calendar = (props: CalendarProps<DateValue>) => {\n const recipe = useRecipe({ recipe: calendarSlotRecipe });\n const [recipeProps, remainingProps] = recipe.splitVariantProps(props);\n const [styleProps, otherProps] = extractStyleProps(remainingProps);\n\n return (\n <CalendarRootSlot {...recipeProps} {...styleProps} asChild>\n <RaCalendar {...otherProps}>\n <CalendarCustomContext>\n <CalendarHeader />\n <CalendarGrids />\n </CalendarCustomContext>\n </RaCalendar>\n </CalendarRootSlot>\n );\n};\n"],"names":["withProvider","withContext","createSlotRecipeContext","CalendarRootSlot","CalendarHeaderSlot","CalendarGridsSlot","CalendarMonthTitleSlot","CalendarGridSlot","CalendarGridHeaderSlot","CalendarHeaderCellSlot","CalendarGridBodySlot","CalendarCellSlot","CalendarGrids","locale","useLocale","context","useSlottedContext","CalendarContext","calendarState","useContext","CalendarStateContext","visibleMonthsCount","todayDate","today","getLocalTimeZone","showMonthTitles","jsx","_","index","gridDate","monthName","jsxs","Box","RaCalendarGrid","RaCalendarGridHeader","day","RaCalendarHeaderCell","RaCalendarGridBody","date","isToday","RaCalendarCell","CalendarHeader","showRangeLabel","Flex","Stack","VisuallyHidden","Heading","IconButton","KeyboardArrowLeft","Text","KeyboardArrowRight","CalendarCustomContext","children","buttonContext","ButtonContext","textContext","TextContext","buttonSlots","monthLabel","monthRangeLabel","yearLabel","textSlots","Provider","Calendar","props","recipe","useRecipe","calendarSlotRecipe","recipeProps","remainingProps","styleProps","otherProps","extractStyleProps","RaCalendar"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card-B9z3AknN.cjs.js","sources":["../../src/components/card/card.recipe.tsx","../../src/components/card/card.slots.tsx","../../src/components/card/components/card.root.tsx","../../src/components/card/components/card.header.tsx","../../src/components/card/components/card.content.tsx","../../src/components/card/card.tsx"],"sourcesContent":["import { defineSlotRecipe } from \"@chakra-ui/react\";\n\n/**\n * Recipe configuration for the Card component.\n * Defines the styling variants and base styles using Chakra UI's recipe system.\n */\nexport const cardRecipe = defineSlotRecipe({\n slots: [\"root\", \"header\", \"content\"],\n\n className: \"nimbus-card\",\n\n base: {\n root: {\n colorPalette: \"slate\",\n display: \"inline-flex\",\n alignItems: \"flex-start\",\n borderRadius: \"300\",\n focusVisibleRing: \"outside\",\n },\n },\n\n variants: {\n cardPadding: {\n sm: {\n root: {\n padding: \"200\",\n },\n },\n md: {\n root: {\n padding: \"400\",\n },\n },\n lg: {\n root: {\n padding: \"600\",\n },\n },\n },\n\n borderStyle: {\n none: {},\n outlined: {\n root: {\n border: \"solid-25\",\n borderColor: \"colorPalette.3\",\n },\n },\n },\n elevation: {\n none: {},\n elevated: {\n root: {\n shadow: \"1\",\n },\n },\n },\n backgroundStyle: {\n default: {\n root: {\n backgroundColor: \"colorPalette.contrast\",\n },\n },\n muted: {\n root: {\n backgroundColor: \"colorPalette.2\",\n },\n },\n },\n },\n});\n","import {\n type HTMLChakraProps,\n type RecipeProps,\n type UnstyledProp,\n createSlotRecipeContext,\n} from \"@chakra-ui/react\";\n\nimport { cardRecipe } from \"./card.recipe\";\n\n/**\n * Base recipe props interface that combines Chakra UI's recipe props\n * with the unstyled prop option for the div element.\n */\ninterface CardRecipeProps extends RecipeProps<\"div\">, UnstyledProp {}\n\n/**\n * Root props interface that extends Chakra's HTML props with our recipe props.\n * This creates a complete set of props for the root element, combining\n * HTML attributes, Chakra's styling system, and our custom recipe props.\n */\nexport interface CardRootProps\n extends HTMLChakraProps<\"div\", CardRecipeProps> {}\n\nexport interface CardHeaderProps\n extends HTMLChakraProps<\"div\", CardRecipeProps> {}\n\nexport interface CardContentProps\n extends HTMLChakraProps<\"div\", CardRecipeProps> {}\n\nconst { withProvider, withContext } = createSlotRecipeContext({\n recipe: cardRecipe,\n});\n\n/**\n * Root component that provides the styling context for the Card component.\n * Uses Chakra UI's recipe context system for consistent styling across instances.\n */\nexport const CardRoot = withProvider<HTMLDivElement, CardRootProps>(\n \"div\",\n \"root\"\n);\n\nexport const CardHeader = withContext<HTMLDivElement, CardHeaderProps>(\n \"div\",\n \"header\"\n);\nexport const CardContent = withContext<HTMLDivElement, CardContentProps>(\n \"div\",\n \"content\"\n);\n","import { createContext, useMemo, useState, type ReactNode } from \"react\";\nimport { CardRoot as CardRootSlot } from \"../card.slots\";\nimport type { CardProps } from \"../card.types\";\nimport { Stack } from \"../../stack\";\nimport { mergeProps, useFocusRing } from \"react-aria\";\n\ntype CardContextValue = {\n setHeader: (header: React.ReactNode) => void;\n setContent: (content: React.ReactNode) => void;\n};\n\nexport const CardContext = createContext<CardContextValue | undefined>(\n undefined\n);\n\n/**\n * # Card\n
|
|
1
|
+
{"version":3,"file":"card-B9z3AknN.cjs.js","sources":["../../src/components/card/card.recipe.tsx","../../src/components/card/card.slots.tsx","../../src/components/card/components/card.root.tsx","../../src/components/card/components/card.header.tsx","../../src/components/card/components/card.content.tsx","../../src/components/card/card.tsx"],"sourcesContent":["import { defineSlotRecipe } from \"@chakra-ui/react\";\n\n/**\n * Recipe configuration for the Card component.\n * Defines the styling variants and base styles using Chakra UI's recipe system.\n */\nexport const cardRecipe = defineSlotRecipe({\n slots: [\"root\", \"header\", \"content\"],\n\n className: \"nimbus-card\",\n\n base: {\n root: {\n colorPalette: \"slate\",\n display: \"inline-flex\",\n alignItems: \"flex-start\",\n borderRadius: \"300\",\n focusVisibleRing: \"outside\",\n },\n },\n\n variants: {\n cardPadding: {\n sm: {\n root: {\n padding: \"200\",\n },\n },\n md: {\n root: {\n padding: \"400\",\n },\n },\n lg: {\n root: {\n padding: \"600\",\n },\n },\n },\n\n borderStyle: {\n none: {},\n outlined: {\n root: {\n border: \"solid-25\",\n borderColor: \"colorPalette.3\",\n },\n },\n },\n elevation: {\n none: {},\n elevated: {\n root: {\n shadow: \"1\",\n },\n },\n },\n backgroundStyle: {\n default: {\n root: {\n backgroundColor: \"colorPalette.contrast\",\n },\n },\n muted: {\n root: {\n backgroundColor: \"colorPalette.2\",\n },\n },\n },\n },\n});\n","import {\n type HTMLChakraProps,\n type RecipeProps,\n type UnstyledProp,\n createSlotRecipeContext,\n} from \"@chakra-ui/react\";\n\nimport { cardRecipe } from \"./card.recipe\";\n\n/**\n * Base recipe props interface that combines Chakra UI's recipe props\n * with the unstyled prop option for the div element.\n */\ninterface CardRecipeProps extends RecipeProps<\"div\">, UnstyledProp {}\n\n/**\n * Root props interface that extends Chakra's HTML props with our recipe props.\n * This creates a complete set of props for the root element, combining\n * HTML attributes, Chakra's styling system, and our custom recipe props.\n */\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface CardRootProps\n extends HTMLChakraProps<\"div\", CardRecipeProps> {}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface CardHeaderProps\n extends HTMLChakraProps<\"div\", CardRecipeProps> {}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface CardContentProps\n extends HTMLChakraProps<\"div\", CardRecipeProps> {}\n\nconst { withProvider, withContext } = createSlotRecipeContext({\n recipe: cardRecipe,\n});\n\n/**\n * Root component that provides the styling context for the Card component.\n * Uses Chakra UI's recipe context system for consistent styling across instances.\n */\nexport const CardRoot = withProvider<HTMLDivElement, CardRootProps>(\n \"div\",\n \"root\"\n);\n\nexport const CardHeader = withContext<HTMLDivElement, CardHeaderProps>(\n \"div\",\n \"header\"\n);\nexport const CardContent = withContext<HTMLDivElement, CardContentProps>(\n \"div\",\n \"content\"\n);\n","import { createContext, useMemo, useState, type ReactNode } from \"react\";\nimport { CardRoot as CardRootSlot } from \"../card.slots\";\nimport type { CardProps } from \"../card.types\";\nimport { Stack } from \"../../stack\";\nimport { mergeProps, useFocusRing } from \"react-aria\";\n\ntype CardContextValue = {\n setHeader: (header: React.ReactNode) => void;\n setContent: (content: React.ReactNode) => void;\n};\n\nexport const CardContext = createContext<CardContextValue | undefined>(\n undefined\n);\n\n/**\n * # Card\n *\n * A versatile container component presents self-contained information\n *\n * @see {@link https://nimbus-documentation.vercel.app/components/data-display/card}\n */\nexport const CardRoot = ({ children, ref, ...props }: CardProps) => {\n const { isFocused, isFocusVisible, focusProps } = useFocusRing();\n const [headerNode, setHeader] = useState<ReactNode>(null);\n const [contentNode, setContent] = useState<ReactNode>(null);\n\n // Memoize the context value so we don't cause unnecessary re-renders\n const contextValue = useMemo(\n () => ({\n setHeader,\n setContent,\n }),\n [setHeader, setContent]\n );\n\n return (\n <CardContext.Provider value={contextValue}>\n <CardRootSlot\n ref={ref}\n {...mergeProps(props, focusProps)}\n data-focus={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n tabIndex={0}\n >\n {/* Always render them in this order/layout to protect consumers */}\n <Stack direction=\"column\" gap=\"200\">\n {headerNode}\n {contentNode}\n </Stack>\n\n {/* Render all consumer sub-components, including our own */}\n {children}\n </CardRootSlot>\n </CardContext.Provider>\n );\n};\n\nCardRoot.displayName = \"Card.Root\";\n","import { useContext, useEffect } from \"react\";\nimport {\n CardHeader as CardHeaderSlot,\n type CardHeaderProps,\n} from \"../card.slots\";\nimport { CardContext } from \"./card.root\";\n\nexport const CardHeader = ({ children, ...props }: CardHeaderProps) => {\n const context = useContext(CardContext);\n\n useEffect(() => {\n if (context) {\n const slotElement = (\n <CardHeaderSlot {...props}>{children}</CardHeaderSlot>\n );\n // Register it with the parent\n context.setHeader(slotElement);\n\n // On unmount, remove it\n return () => context.setHeader(null);\n }\n }, [children, props]);\n\n return null;\n};\nCardHeader.displayName = \"Card.Header\";\n","import { useContext, useEffect } from \"react\";\nimport {\n CardContent as CardContentSlot,\n type CardContentProps,\n} from \"../card.slots\";\nimport { CardContext } from \"./card.root\";\n\nexport const CardContent = ({ children, ...props }: CardContentProps) => {\n const context = useContext(CardContext);\n\n useEffect(() => {\n if (context) {\n const slotElement = (\n <CardContentSlot {...props}>{children}</CardContentSlot>\n );\n // Register it with the parent\n context.setContent(slotElement);\n\n // On unmount, remove it\n return () => context.setContent(null);\n }\n }, [children, props]);\n\n return null;\n};\n\nCardContent.displayName = \"Card.Content\";\n","import { CardRoot } from \"./components/card.root\";\nimport { CardHeader } from \"./components/card.header\";\nimport { CardContent } from \"./components/card.content\";\n\nexport const Card = {\n Root: CardRoot,\n Header: CardHeader,\n Content: CardContent,\n};\n\nexport {\n CardRoot as _CardRoot,\n CardHeader as _CardHeader,\n CardContent as _CardContent,\n};\n"],"names":["cardRecipe","defineSlotRecipe","withProvider","withContext","createSlotRecipeContext","CardRoot","CardHeader","CardContent","CardContext","createContext","children","ref","props","isFocused","isFocusVisible","focusProps","useFocusRing","headerNode","setHeader","useState","contentNode","setContent","contextValue","useMemo","jsx","jsxs","CardRootSlot","mergeProps","Stack","context","useContext","useEffect","slotElement","CardHeaderSlot","CardContentSlot","Card"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card-CvY06qIE.es.js","sources":["../../src/components/card/card.recipe.tsx","../../src/components/card/card.slots.tsx","../../src/components/card/components/card.root.tsx","../../src/components/card/components/card.header.tsx","../../src/components/card/components/card.content.tsx","../../src/components/card/card.tsx"],"sourcesContent":["import { defineSlotRecipe } from \"@chakra-ui/react\";\n\n/**\n * Recipe configuration for the Card component.\n * Defines the styling variants and base styles using Chakra UI's recipe system.\n */\nexport const cardRecipe = defineSlotRecipe({\n slots: [\"root\", \"header\", \"content\"],\n\n className: \"nimbus-card\",\n\n base: {\n root: {\n colorPalette: \"slate\",\n display: \"inline-flex\",\n alignItems: \"flex-start\",\n borderRadius: \"300\",\n focusVisibleRing: \"outside\",\n },\n },\n\n variants: {\n cardPadding: {\n sm: {\n root: {\n padding: \"200\",\n },\n },\n md: {\n root: {\n padding: \"400\",\n },\n },\n lg: {\n root: {\n padding: \"600\",\n },\n },\n },\n\n borderStyle: {\n none: {},\n outlined: {\n root: {\n border: \"solid-25\",\n borderColor: \"colorPalette.3\",\n },\n },\n },\n elevation: {\n none: {},\n elevated: {\n root: {\n shadow: \"1\",\n },\n },\n },\n backgroundStyle: {\n default: {\n root: {\n backgroundColor: \"colorPalette.contrast\",\n },\n },\n muted: {\n root: {\n backgroundColor: \"colorPalette.2\",\n },\n },\n },\n },\n});\n","import {\n type HTMLChakraProps,\n type RecipeProps,\n type UnstyledProp,\n createSlotRecipeContext,\n} from \"@chakra-ui/react\";\n\nimport { cardRecipe } from \"./card.recipe\";\n\n/**\n * Base recipe props interface that combines Chakra UI's recipe props\n * with the unstyled prop option for the div element.\n */\ninterface CardRecipeProps extends RecipeProps<\"div\">, UnstyledProp {}\n\n/**\n * Root props interface that extends Chakra's HTML props with our recipe props.\n * This creates a complete set of props for the root element, combining\n * HTML attributes, Chakra's styling system, and our custom recipe props.\n */\nexport interface CardRootProps\n extends HTMLChakraProps<\"div\", CardRecipeProps> {}\n\nexport interface CardHeaderProps\n extends HTMLChakraProps<\"div\", CardRecipeProps> {}\n\nexport interface CardContentProps\n extends HTMLChakraProps<\"div\", CardRecipeProps> {}\n\nconst { withProvider, withContext } = createSlotRecipeContext({\n recipe: cardRecipe,\n});\n\n/**\n * Root component that provides the styling context for the Card component.\n * Uses Chakra UI's recipe context system for consistent styling across instances.\n */\nexport const CardRoot = withProvider<HTMLDivElement, CardRootProps>(\n \"div\",\n \"root\"\n);\n\nexport const CardHeader = withContext<HTMLDivElement, CardHeaderProps>(\n \"div\",\n \"header\"\n);\nexport const CardContent = withContext<HTMLDivElement, CardContentProps>(\n \"div\",\n \"content\"\n);\n","import { createContext, useMemo, useState, type ReactNode } from \"react\";\nimport { CardRoot as CardRootSlot } from \"../card.slots\";\nimport type { CardProps } from \"../card.types\";\nimport { Stack } from \"../../stack\";\nimport { mergeProps, useFocusRing } from \"react-aria\";\n\ntype CardContextValue = {\n setHeader: (header: React.ReactNode) => void;\n setContent: (content: React.ReactNode) => void;\n};\n\nexport const CardContext = createContext<CardContextValue | undefined>(\n undefined\n);\n\n/**\n * # Card\n * \n * A versatile container component presents self-contained information\n * \n * @see {@link https://nimbus-documentation.vercel.app/components/data-display/card}\n */\nexport const CardRoot = ({ children, ref, ...props }: CardProps) => {\n const { isFocused, isFocusVisible, focusProps } = useFocusRing();\n const [headerNode, setHeader] = useState<ReactNode>(null);\n const [contentNode, setContent] = useState<ReactNode>(null);\n\n // Memoize the context value so we don't cause unnecessary re-renders\n const contextValue = useMemo(\n () => ({\n setHeader,\n setContent,\n }),\n [setHeader, setContent]\n );\n\n return (\n <CardContext.Provider value={contextValue}>\n <CardRootSlot\n ref={ref}\n {...mergeProps(props, focusProps)}\n data-focus={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n tabIndex={0}\n >\n {/* Always render them in this order/layout to protect consumers */}\n <Stack direction=\"column\" gap=\"200\">\n {headerNode}\n {contentNode}\n </Stack>\n\n {/* Render all consumer sub-components, including our own */}\n {children}\n </CardRootSlot>\n </CardContext.Provider>\n );\n};\n\nCardRoot.displayName = \"Card.Root\";\n","import { useContext, useEffect } from \"react\";\nimport {\n CardHeader as CardHeaderSlot,\n type CardHeaderProps,\n} from \"../card.slots\";\nimport { CardContext } from \"./card.root\";\n\nexport const CardHeader = ({ children, ...props }: CardHeaderProps) => {\n const context = useContext(CardContext);\n\n useEffect(() => {\n if (context) {\n const slotElement = (\n <CardHeaderSlot {...props}>{children}</CardHeaderSlot>\n );\n // Register it with the parent\n context.setHeader(slotElement);\n\n // On unmount, remove it\n return () => context.setHeader(null);\n }\n }, [children, props]);\n\n return null;\n};\nCardHeader.displayName = \"Card.Header\";\n","import { useContext, useEffect } from \"react\";\nimport {\n CardContent as CardContentSlot,\n type CardContentProps,\n} from \"../card.slots\";\nimport { CardContext } from \"./card.root\";\n\nexport const CardContent = ({ children, ...props }: CardContentProps) => {\n const context = useContext(CardContext);\n\n useEffect(() => {\n if (context) {\n const slotElement = (\n <CardContentSlot {...props}>{children}</CardContentSlot>\n );\n // Register it with the parent\n context.setContent(slotElement);\n\n // On unmount, remove it\n return () => context.setContent(null);\n }\n }, [children, props]);\n\n return null;\n};\n\nCardContent.displayName = \"Card.Content\";\n","import { CardRoot } from \"./components/card.root\";\nimport { CardHeader } from \"./components/card.header\";\nimport { CardContent } from \"./components/card.content\";\n\nexport const Card = {\n Root: CardRoot,\n Header: CardHeader,\n Content: CardContent,\n};\n\nexport {\n CardRoot as _CardRoot,\n CardHeader as _CardHeader,\n CardContent as _CardContent,\n};\n"],"names":["cardRecipe","defineSlotRecipe","withProvider","withContext","createSlotRecipeContext","CardRoot","CardHeader","CardContent","CardContext","createContext","children","ref","props","isFocused","isFocusVisible","focusProps","useFocusRing","headerNode","setHeader","useState","contentNode","setContent","contextValue","useMemo","jsx","jsxs","CardRootSlot","mergeProps","Stack","context","useContext","useEffect","slotElement","CardHeaderSlot","CardContentSlot","Card"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"card-CvY06qIE.es.js","sources":["../../src/components/card/card.recipe.tsx","../../src/components/card/card.slots.tsx","../../src/components/card/components/card.root.tsx","../../src/components/card/components/card.header.tsx","../../src/components/card/components/card.content.tsx","../../src/components/card/card.tsx"],"sourcesContent":["import { defineSlotRecipe } from \"@chakra-ui/react\";\n\n/**\n * Recipe configuration for the Card component.\n * Defines the styling variants and base styles using Chakra UI's recipe system.\n */\nexport const cardRecipe = defineSlotRecipe({\n slots: [\"root\", \"header\", \"content\"],\n\n className: \"nimbus-card\",\n\n base: {\n root: {\n colorPalette: \"slate\",\n display: \"inline-flex\",\n alignItems: \"flex-start\",\n borderRadius: \"300\",\n focusVisibleRing: \"outside\",\n },\n },\n\n variants: {\n cardPadding: {\n sm: {\n root: {\n padding: \"200\",\n },\n },\n md: {\n root: {\n padding: \"400\",\n },\n },\n lg: {\n root: {\n padding: \"600\",\n },\n },\n },\n\n borderStyle: {\n none: {},\n outlined: {\n root: {\n border: \"solid-25\",\n borderColor: \"colorPalette.3\",\n },\n },\n },\n elevation: {\n none: {},\n elevated: {\n root: {\n shadow: \"1\",\n },\n },\n },\n backgroundStyle: {\n default: {\n root: {\n backgroundColor: \"colorPalette.contrast\",\n },\n },\n muted: {\n root: {\n backgroundColor: \"colorPalette.2\",\n },\n },\n },\n },\n});\n","import {\n type HTMLChakraProps,\n type RecipeProps,\n type UnstyledProp,\n createSlotRecipeContext,\n} from \"@chakra-ui/react\";\n\nimport { cardRecipe } from \"./card.recipe\";\n\n/**\n * Base recipe props interface that combines Chakra UI's recipe props\n * with the unstyled prop option for the div element.\n */\ninterface CardRecipeProps extends RecipeProps<\"div\">, UnstyledProp {}\n\n/**\n * Root props interface that extends Chakra's HTML props with our recipe props.\n * This creates a complete set of props for the root element, combining\n * HTML attributes, Chakra's styling system, and our custom recipe props.\n */\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface CardRootProps\n extends HTMLChakraProps<\"div\", CardRecipeProps> {}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface CardHeaderProps\n extends HTMLChakraProps<\"div\", CardRecipeProps> {}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface CardContentProps\n extends HTMLChakraProps<\"div\", CardRecipeProps> {}\n\nconst { withProvider, withContext } = createSlotRecipeContext({\n recipe: cardRecipe,\n});\n\n/**\n * Root component that provides the styling context for the Card component.\n * Uses Chakra UI's recipe context system for consistent styling across instances.\n */\nexport const CardRoot = withProvider<HTMLDivElement, CardRootProps>(\n \"div\",\n \"root\"\n);\n\nexport const CardHeader = withContext<HTMLDivElement, CardHeaderProps>(\n \"div\",\n \"header\"\n);\nexport const CardContent = withContext<HTMLDivElement, CardContentProps>(\n \"div\",\n \"content\"\n);\n","import { createContext, useMemo, useState, type ReactNode } from \"react\";\nimport { CardRoot as CardRootSlot } from \"../card.slots\";\nimport type { CardProps } from \"../card.types\";\nimport { Stack } from \"../../stack\";\nimport { mergeProps, useFocusRing } from \"react-aria\";\n\ntype CardContextValue = {\n setHeader: (header: React.ReactNode) => void;\n setContent: (content: React.ReactNode) => void;\n};\n\nexport const CardContext = createContext<CardContextValue | undefined>(\n undefined\n);\n\n/**\n * # Card\n *\n * A versatile container component presents self-contained information\n *\n * @see {@link https://nimbus-documentation.vercel.app/components/data-display/card}\n */\nexport const CardRoot = ({ children, ref, ...props }: CardProps) => {\n const { isFocused, isFocusVisible, focusProps } = useFocusRing();\n const [headerNode, setHeader] = useState<ReactNode>(null);\n const [contentNode, setContent] = useState<ReactNode>(null);\n\n // Memoize the context value so we don't cause unnecessary re-renders\n const contextValue = useMemo(\n () => ({\n setHeader,\n setContent,\n }),\n [setHeader, setContent]\n );\n\n return (\n <CardContext.Provider value={contextValue}>\n <CardRootSlot\n ref={ref}\n {...mergeProps(props, focusProps)}\n data-focus={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n tabIndex={0}\n >\n {/* Always render them in this order/layout to protect consumers */}\n <Stack direction=\"column\" gap=\"200\">\n {headerNode}\n {contentNode}\n </Stack>\n\n {/* Render all consumer sub-components, including our own */}\n {children}\n </CardRootSlot>\n </CardContext.Provider>\n );\n};\n\nCardRoot.displayName = \"Card.Root\";\n","import { useContext, useEffect } from \"react\";\nimport {\n CardHeader as CardHeaderSlot,\n type CardHeaderProps,\n} from \"../card.slots\";\nimport { CardContext } from \"./card.root\";\n\nexport const CardHeader = ({ children, ...props }: CardHeaderProps) => {\n const context = useContext(CardContext);\n\n useEffect(() => {\n if (context) {\n const slotElement = (\n <CardHeaderSlot {...props}>{children}</CardHeaderSlot>\n );\n // Register it with the parent\n context.setHeader(slotElement);\n\n // On unmount, remove it\n return () => context.setHeader(null);\n }\n }, [children, props]);\n\n return null;\n};\nCardHeader.displayName = \"Card.Header\";\n","import { useContext, useEffect } from \"react\";\nimport {\n CardContent as CardContentSlot,\n type CardContentProps,\n} from \"../card.slots\";\nimport { CardContext } from \"./card.root\";\n\nexport const CardContent = ({ children, ...props }: CardContentProps) => {\n const context = useContext(CardContext);\n\n useEffect(() => {\n if (context) {\n const slotElement = (\n <CardContentSlot {...props}>{children}</CardContentSlot>\n );\n // Register it with the parent\n context.setContent(slotElement);\n\n // On unmount, remove it\n return () => context.setContent(null);\n }\n }, [children, props]);\n\n return null;\n};\n\nCardContent.displayName = \"Card.Content\";\n","import { CardRoot } from \"./components/card.root\";\nimport { CardHeader } from \"./components/card.header\";\nimport { CardContent } from \"./components/card.content\";\n\nexport const Card = {\n Root: CardRoot,\n Header: CardHeader,\n Content: CardContent,\n};\n\nexport {\n CardRoot as _CardRoot,\n CardHeader as _CardHeader,\n CardContent as _CardContent,\n};\n"],"names":["cardRecipe","defineSlotRecipe","withProvider","withContext","createSlotRecipeContext","CardRoot","CardHeader","CardContent","CardContext","createContext","children","ref","props","isFocused","isFocusVisible","focusProps","useFocusRing","headerNode","setHeader","useState","contentNode","setContent","contextValue","useMemo","jsx","jsxs","CardRootSlot","mergeProps","Stack","context","useContext","useEffect","slotElement","CardHeaderSlot","CardContentSlot","Card"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox-DywApPQh.cjs.js","sources":["../../../../node_modules/.pnpm/@react-aria+checkbox@3.15.7_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@react-aria/checkbox/dist/useCheckbox.mjs","../../src/components/checkbox/checkbox.slots.tsx","../../src/components/checkbox/checkbox.tsx"],"sourcesContent":["import {useEffect as $jNP0e$useEffect} from \"react\";\nimport {mergeProps as $jNP0e$mergeProps} from \"@react-aria/utils\";\nimport {useFormValidationState as $jNP0e$useFormValidationState, privateValidationStateProp as $jNP0e$privateValidationStateProp} from \"@react-stately/form\";\nimport {useFormValidation as $jNP0e$useFormValidation} from \"@react-aria/form\";\nimport {usePress as $jNP0e$usePress} from \"@react-aria/interactions\";\nimport {useToggle as $jNP0e$useToggle} from \"@react-aria/toggle\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\n\n\n\nfunction $406796ff087fe49b$export$e375f10ce42261c5(props, state, inputRef) {\n // Create validation state here because it doesn't make sense to add to general useToggleState.\n let validationState = (0, $jNP0e$useFormValidationState)({\n ...props,\n value: state.isSelected\n });\n let { isInvalid: isInvalid, validationErrors: validationErrors, validationDetails: validationDetails } = validationState.displayValidation;\n let { labelProps: labelProps, inputProps: inputProps, isSelected: isSelected, isPressed: isPressed, isDisabled: isDisabled, isReadOnly: isReadOnly } = (0, $jNP0e$useToggle)({\n ...props,\n isInvalid: isInvalid\n }, state, inputRef);\n (0, $jNP0e$useFormValidation)(props, validationState, inputRef);\n let { isIndeterminate: isIndeterminate, isRequired: isRequired, validationBehavior: validationBehavior = 'aria' } = props;\n (0, $jNP0e$useEffect)(()=>{\n // indeterminate is a property, but it can only be set via javascript\n // https://css-tricks.com/indeterminate-checkboxes/\n if (inputRef.current) inputRef.current.indeterminate = !!isIndeterminate;\n });\n // Reset validation state on label press for checkbox with a hidden input.\n let { pressProps: pressProps } = (0, $jNP0e$usePress)({\n isDisabled: isDisabled || isReadOnly,\n onPress () {\n // @ts-expect-error\n let { [(0, $jNP0e$privateValidationStateProp)]: groupValidationState } = props;\n let { commitValidation: commitValidation } = groupValidationState ? groupValidationState : validationState;\n commitValidation();\n }\n });\n return {\n labelProps: (0, $jNP0e$mergeProps)(labelProps, pressProps),\n inputProps: {\n ...inputProps,\n checked: isSelected,\n 'aria-required': isRequired && validationBehavior === 'aria' || undefined,\n required: isRequired && validationBehavior === 'native'\n },\n isSelected: isSelected,\n isPressed: isPressed,\n isDisabled: isDisabled,\n isReadOnly: isReadOnly,\n isInvalid: isInvalid,\n validationErrors: validationErrors,\n validationDetails: validationDetails\n };\n}\n\n\nexport {$406796ff087fe49b$export$e375f10ce42261c5 as useCheckbox};\n//# sourceMappingURL=useCheckbox.module.js.map\n","/* eslint-disable @typescript-eslint/no-empty-object-type */\nimport {\n createSlotRecipeContext,\n type HTMLChakraProps,\n type RecipeVariantProps,\n} from \"@chakra-ui/react\";\nimport { checkboxSlotRecipe } from \"./checkbox.recipe\";\n\nconst { withProvider, withContext } = createSlotRecipeContext({\n key: \"checkbox\",\n});\n\nexport interface CheckboxRootProps\n extends HTMLChakraProps<\n \"label\",\n RecipeVariantProps<typeof checkboxSlotRecipe>\n > {}\nexport const CheckboxRoot = withProvider<HTMLLabelElement, CheckboxRootProps>(\n \"label\",\n \"root\"\n);\n\ninterface CheckboxLabelProps extends HTMLChakraProps<\"span\"> {}\nexport const CheckboxLabel = withContext<HTMLSpanElement, CheckboxLabelProps>(\n \"span\",\n \"label\"\n);\n\ninterface CheckboxIndicatorProps extends HTMLChakraProps<\"span\"> {}\nexport const CheckboxIndicator = withContext<\n HTMLSpanElement,\n CheckboxIndicatorProps\n>(\"span\", \"indicator\");\n","import { useRef } from \"react\";\nimport { useToggleState } from \"react-stately\";\nimport { useSlotRecipe } from \"@chakra-ui/react\";\nimport { VisuallyHidden } from \"@/components\";\nimport { Check, Remove as Minus } from \"@commercetools/nimbus-icons\";\nimport { extractStyleProps } from \"@/utils/extractStyleProps\";\n\nimport {\n useFocusRing,\n useCheckbox,\n useObjectRef,\n mergeProps,\n} from \"react-aria\";\n\nimport { mergeRefs } from \"@chakra-ui/react\";\nimport type { CheckboxProps } from \"./checkbox.types\";\nimport {\n CheckboxIndicator,\n CheckboxRoot,\n CheckboxLabel,\n} from \"./checkbox.slots\";\n\n/**\n * # Checkbox\n * \n * Displays a checkbox.\n * \n * @see {@link https://nimbus-documentation.vercel.app/components/inputs/checkbox}\n */\nexport const Checkbox = (props: CheckboxProps) => {\n const { ref: forwardedRef } = props;\n const localRef = useRef<HTMLInputElement>(null);\n const ref = useObjectRef(mergeRefs(localRef, forwardedRef));\n\n const recipe = useSlotRecipe({ key: \"checkbox\" });\n const [recipeProps] = recipe.splitVariantProps(props);\n\n const [styleProps] = extractStyleProps(props);\n\n const state = useToggleState(props);\n const { inputProps } = useCheckbox(props, state, ref);\n\n const { isFocused, focusProps } = useFocusRing();\n const isSelected = state.isSelected && !props.isIndeterminate;\n const isIndeterminate = props.isIndeterminate;\n\n const stateProps = {\n \"data-selected\": isSelected,\n \"data-indeterminate\": isIndeterminate,\n \"data-invalid\": props.isInvalid,\n \"data-disabled\": props.isDisabled,\n \"data-focus\": isFocused || undefined,\n };\n\n return (\n <CheckboxRoot\n data-slot=\"root\"\n {...recipeProps}\n {...stateProps}\n {...styleProps}\n >\n <CheckboxIndicator data-slot=\"indicator\" {...stateProps}>\n {isSelected && <Check />}\n {isIndeterminate && <Minus />}\n <VisuallyHidden as=\"span\">\n <input {...mergeProps(inputProps, focusProps)} ref={ref} />\n </VisuallyHidden>\n </CheckboxIndicator>\n\n {props.children && (\n <CheckboxLabel data-slot=\"label\" {...stateProps}>\n {props.children}\n </CheckboxLabel>\n )}\n </CheckboxRoot>\n );\n};\nCheckbox.displayName = \"Checkbox\";\n"],"names":["$406796ff087fe49b$export$e375f10ce42261c5","props","state","inputRef","validationState","$jNP0e$useFormValidationState","isInvalid","validationErrors","validationDetails","labelProps","inputProps","isSelected","isPressed","isDisabled","isReadOnly","$jNP0e$useToggle","$jNP0e$useFormValidation","isIndeterminate","isRequired","validationBehavior","$jNP0e$useEffect","pressProps","$jNP0e$usePress","$jNP0e$privateValidationStateProp","groupValidationState","commitValidation","$jNP0e$mergeProps","withProvider","withContext","createSlotRecipeContext","CheckboxRoot","CheckboxLabel","CheckboxIndicator","Checkbox","forwardedRef","localRef","useRef","ref","useObjectRef","mergeRefs","recipe","useSlotRecipe","recipeProps","styleProps","extractStyleProps","useToggleState","useCheckbox","isFocused","focusProps","useFocusRing","stateProps","jsxs","Check","Minus","jsx","VisuallyHidden","mergeProps"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"checkbox-DywApPQh.cjs.js","sources":["../../../../node_modules/.pnpm/@react-aria+checkbox@3.15.7_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@react-aria/checkbox/dist/useCheckbox.mjs","../../src/components/checkbox/checkbox.slots.tsx","../../src/components/checkbox/checkbox.tsx"],"sourcesContent":["import {useEffect as $jNP0e$useEffect} from \"react\";\nimport {mergeProps as $jNP0e$mergeProps} from \"@react-aria/utils\";\nimport {useFormValidationState as $jNP0e$useFormValidationState, privateValidationStateProp as $jNP0e$privateValidationStateProp} from \"@react-stately/form\";\nimport {useFormValidation as $jNP0e$useFormValidation} from \"@react-aria/form\";\nimport {usePress as $jNP0e$usePress} from \"@react-aria/interactions\";\nimport {useToggle as $jNP0e$useToggle} from \"@react-aria/toggle\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\n\n\n\nfunction $406796ff087fe49b$export$e375f10ce42261c5(props, state, inputRef) {\n // Create validation state here because it doesn't make sense to add to general useToggleState.\n let validationState = (0, $jNP0e$useFormValidationState)({\n ...props,\n value: state.isSelected\n });\n let { isInvalid: isInvalid, validationErrors: validationErrors, validationDetails: validationDetails } = validationState.displayValidation;\n let { labelProps: labelProps, inputProps: inputProps, isSelected: isSelected, isPressed: isPressed, isDisabled: isDisabled, isReadOnly: isReadOnly } = (0, $jNP0e$useToggle)({\n ...props,\n isInvalid: isInvalid\n }, state, inputRef);\n (0, $jNP0e$useFormValidation)(props, validationState, inputRef);\n let { isIndeterminate: isIndeterminate, isRequired: isRequired, validationBehavior: validationBehavior = 'aria' } = props;\n (0, $jNP0e$useEffect)(()=>{\n // indeterminate is a property, but it can only be set via javascript\n // https://css-tricks.com/indeterminate-checkboxes/\n if (inputRef.current) inputRef.current.indeterminate = !!isIndeterminate;\n });\n // Reset validation state on label press for checkbox with a hidden input.\n let { pressProps: pressProps } = (0, $jNP0e$usePress)({\n isDisabled: isDisabled || isReadOnly,\n onPress () {\n // @ts-expect-error\n let { [(0, $jNP0e$privateValidationStateProp)]: groupValidationState } = props;\n let { commitValidation: commitValidation } = groupValidationState ? groupValidationState : validationState;\n commitValidation();\n }\n });\n return {\n labelProps: (0, $jNP0e$mergeProps)(labelProps, pressProps),\n inputProps: {\n ...inputProps,\n checked: isSelected,\n 'aria-required': isRequired && validationBehavior === 'aria' || undefined,\n required: isRequired && validationBehavior === 'native'\n },\n isSelected: isSelected,\n isPressed: isPressed,\n isDisabled: isDisabled,\n isReadOnly: isReadOnly,\n isInvalid: isInvalid,\n validationErrors: validationErrors,\n validationDetails: validationDetails\n };\n}\n\n\nexport {$406796ff087fe49b$export$e375f10ce42261c5 as useCheckbox};\n//# sourceMappingURL=useCheckbox.module.js.map\n","/* eslint-disable @typescript-eslint/no-empty-object-type */\nimport {\n createSlotRecipeContext,\n type HTMLChakraProps,\n type RecipeVariantProps,\n} from \"@chakra-ui/react\";\nimport { checkboxSlotRecipe } from \"./checkbox.recipe\";\n\nconst { withProvider, withContext } = createSlotRecipeContext({\n key: \"checkbox\",\n});\n\nexport interface CheckboxRootProps\n extends HTMLChakraProps<\n \"label\",\n RecipeVariantProps<typeof checkboxSlotRecipe>\n > {}\nexport const CheckboxRoot = withProvider<HTMLLabelElement, CheckboxRootProps>(\n \"label\",\n \"root\"\n);\n\ninterface CheckboxLabelProps extends HTMLChakraProps<\"span\"> {}\nexport const CheckboxLabel = withContext<HTMLSpanElement, CheckboxLabelProps>(\n \"span\",\n \"label\"\n);\n\ninterface CheckboxIndicatorProps extends HTMLChakraProps<\"span\"> {}\nexport const CheckboxIndicator = withContext<\n HTMLSpanElement,\n CheckboxIndicatorProps\n>(\"span\", \"indicator\");\n","import { useRef } from \"react\";\nimport { useToggleState } from \"react-stately\";\nimport { useSlotRecipe } from \"@chakra-ui/react\";\nimport { VisuallyHidden } from \"@/components\";\nimport { Check, Remove as Minus } from \"@commercetools/nimbus-icons\";\nimport { extractStyleProps } from \"@/utils/extractStyleProps\";\n\nimport {\n useFocusRing,\n useCheckbox,\n useObjectRef,\n mergeProps,\n} from \"react-aria\";\n\nimport { mergeRefs } from \"@chakra-ui/react\";\nimport type { CheckboxProps } from \"./checkbox.types\";\nimport {\n CheckboxIndicator,\n CheckboxRoot,\n CheckboxLabel,\n} from \"./checkbox.slots\";\n\n/**\n * # Checkbox\n *\n * Displays a checkbox.\n *\n * @see {@link https://nimbus-documentation.vercel.app/components/inputs/checkbox}\n */\nexport const Checkbox = (props: CheckboxProps) => {\n const { ref: forwardedRef } = props;\n const localRef = useRef<HTMLInputElement>(null);\n const ref = useObjectRef(mergeRefs(localRef, forwardedRef));\n\n const recipe = useSlotRecipe({ key: \"checkbox\" });\n const [recipeProps] = recipe.splitVariantProps(props);\n\n const [styleProps] = extractStyleProps(props);\n\n const state = useToggleState(props);\n const { inputProps } = useCheckbox(props, state, ref);\n\n const { isFocused, focusProps } = useFocusRing();\n const isSelected = state.isSelected && !props.isIndeterminate;\n const isIndeterminate = props.isIndeterminate;\n\n const stateProps = {\n \"data-selected\": isSelected,\n \"data-indeterminate\": isIndeterminate,\n \"data-invalid\": props.isInvalid,\n \"data-disabled\": props.isDisabled,\n \"data-focus\": isFocused || undefined,\n };\n\n return (\n <CheckboxRoot\n data-slot=\"root\"\n {...recipeProps}\n {...stateProps}\n {...styleProps}\n >\n <CheckboxIndicator data-slot=\"indicator\" {...stateProps}>\n {isSelected && <Check />}\n {isIndeterminate && <Minus />}\n <VisuallyHidden as=\"span\">\n <input {...mergeProps(inputProps, focusProps)} ref={ref} />\n </VisuallyHidden>\n </CheckboxIndicator>\n\n {props.children && (\n <CheckboxLabel data-slot=\"label\" {...stateProps}>\n {props.children}\n </CheckboxLabel>\n )}\n </CheckboxRoot>\n );\n};\nCheckbox.displayName = \"Checkbox\";\n"],"names":["$406796ff087fe49b$export$e375f10ce42261c5","props","state","inputRef","validationState","$jNP0e$useFormValidationState","isInvalid","validationErrors","validationDetails","labelProps","inputProps","isSelected","isPressed","isDisabled","isReadOnly","$jNP0e$useToggle","$jNP0e$useFormValidation","isIndeterminate","isRequired","validationBehavior","$jNP0e$useEffect","pressProps","$jNP0e$usePress","$jNP0e$privateValidationStateProp","groupValidationState","commitValidation","$jNP0e$mergeProps","withProvider","withContext","createSlotRecipeContext","CheckboxRoot","CheckboxLabel","CheckboxIndicator","Checkbox","forwardedRef","localRef","useRef","ref","useObjectRef","mergeRefs","recipe","useSlotRecipe","recipeProps","styleProps","extractStyleProps","useToggleState","useCheckbox","isFocused","focusProps","useFocusRing","stateProps","jsxs","Check","Minus","jsx","VisuallyHidden","mergeProps"],"mappings":"8hBAuBA,SAASA,EAA0CC,EAAOC,EAAOC,EAAU,CAEvE,IAAIC,EAAsBC,4CAA+B,CACrD,GAAGJ,EACH,MAAOC,EAAM,UACrB,CAAK,EACG,CAAE,UAAWI,EAAW,iBAAkBC,EAAkB,kBAAmBC,GAAsBJ,EAAgB,kBACrH,CAAE,WAAYK,EAAY,WAAYC,EAAY,WAAYC,EAAY,UAAWC,EAAW,WAAYC,EAAY,WAAYC,CAAU,EAASC,4CAAkB,CACzK,GAAGd,EACH,UAAWK,CACnB,EAAOJ,EAAOC,CAAQ,EACda,4CAA0Bf,EAAOG,EAAiBD,CAAQ,EAC9D,GAAI,CAAE,gBAAiBc,EAAiB,WAAYC,EAAY,mBAAoBC,EAAqB,MAAM,EAAKlB,EAChHmB,EAAAA,UAAkB,IAAI,CAGlBjB,EAAS,UAASA,EAAS,QAAQ,cAAgB,CAAC,CAACc,EAC7D,CAAC,EAED,GAAI,CAAE,WAAYI,CAAU,EAASC,EAAAA,0CAAiB,CAClD,WAAYT,GAAcC,EAC1B,SAAW,CAEP,GAAI,CAAE,CAAKS,EAAAA,0CAAqCC,CAAoB,EAAKvB,EACrE,CAAE,iBAAkBwB,CAAgB,EAAKD,GAA8CpB,EAC3FqB,EAAgB,CACpB,CACR,CAAK,EACD,MAAO,CACH,WAAgBC,EAAAA,0CAAmBjB,EAAYY,CAAU,EACzD,WAAY,CACR,GAAGX,EACH,QAASC,EACT,gBAAiBO,GAAcC,IAAuB,QAAU,OAChE,SAAUD,GAAcC,IAAuB,QAC3D,EACQ,WAAYR,EACZ,UAAWC,EACX,WAAYC,EACZ,WAAYC,EACZ,UAAWR,EACX,iBAAkBC,EAClB,kBAAmBC,CAC3B,CACA,CC3DA,KAAM,CAAE,aAAAmB,EAAc,YAAAC,CAAA,EAAgBC,0BAAwB,CAC5D,IAAK,UACP,CAAC,EAOYC,EAAeH,EAC1B,QACA,MACF,EAGaI,EAAgBH,EAC3B,OACA,OACF,EAGaI,EAAoBJ,EAG/B,OAAQ,WAAW,ECHRK,EAAYhC,GAAyB,CAChD,KAAM,CAAE,IAAKiC,CAAA,EAAiBjC,EACxBkC,EAAWC,EAAAA,OAAyB,IAAI,EACxCC,EAAMC,EAAAA,0CAAaC,EAAAA,UAAUJ,EAAUD,CAAY,CAAC,EAEpDM,EAASC,EAAAA,cAAc,CAAE,IAAK,WAAY,EAC1C,CAACC,CAAW,EAAIF,EAAO,kBAAkBvC,CAAK,EAE9C,CAAC0C,CAAU,EAAIC,EAAAA,kBAAkB3C,CAAK,EAEtCC,EAAQ2C,EAAAA,0CAAe5C,CAAK,EAC5B,CAAE,WAAAS,CAAA,EAAeoC,EAAY7C,EAAOC,EAAOmC,CAAG,EAE9C,CAAE,UAAAU,EAAW,WAAAC,CAAA,EAAeC,4CAAA,EAC5BtC,EAAaT,EAAM,YAAc,CAACD,EAAM,gBACxCgB,EAAkBhB,EAAM,gBAExBiD,EAAa,CACjB,gBAAiBvC,EACjB,qBAAsBM,EACtB,eAAgBhB,EAAM,UACtB,gBAAiBA,EAAM,WACvB,aAAc8C,GAAa,MAAA,EAG7B,OACEI,EAAAA,KAACrB,EAAA,CACC,YAAU,OACT,GAAGY,EACH,GAAGQ,EACH,GAAGP,EAEJ,SAAA,CAAAQ,EAAAA,KAACnB,EAAA,CAAkB,YAAU,YAAa,GAAGkB,EAC1C,SAAA,CAAAvC,SAAeyC,EAAAA,MAAA,EAAM,EACrBnC,SAAoBoC,EAAAA,OAAA,EAAM,EAC3BC,EAAAA,IAACC,EAAAA,eAAA,CAAe,GAAG,OACjB,SAAAD,EAAAA,IAAC,QAAA,CAAO,GAAGE,EAAAA,0CAAW9C,EAAYsC,CAAU,EAAG,IAAAX,CAAA,CAAU,CAAA,CAC3D,CAAA,EACF,EAECpC,EAAM,UACLqD,MAACvB,EAAA,CAAc,YAAU,QAAS,GAAGmB,EAClC,SAAAjD,EAAM,QAAA,CACT,CAAA,CAAA,CAAA,CAIR,EACAgC,EAAS,YAAc","x_google_ignoreList":[0]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox-yo64B6Gz.es.js","sources":["../../../../node_modules/.pnpm/@react-aria+checkbox@3.15.7_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@react-aria/checkbox/dist/useCheckbox.mjs","../../src/components/checkbox/checkbox.slots.tsx","../../src/components/checkbox/checkbox.tsx"],"sourcesContent":["import {useEffect as $jNP0e$useEffect} from \"react\";\nimport {mergeProps as $jNP0e$mergeProps} from \"@react-aria/utils\";\nimport {useFormValidationState as $jNP0e$useFormValidationState, privateValidationStateProp as $jNP0e$privateValidationStateProp} from \"@react-stately/form\";\nimport {useFormValidation as $jNP0e$useFormValidation} from \"@react-aria/form\";\nimport {usePress as $jNP0e$usePress} from \"@react-aria/interactions\";\nimport {useToggle as $jNP0e$useToggle} from \"@react-aria/toggle\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\n\n\n\nfunction $406796ff087fe49b$export$e375f10ce42261c5(props, state, inputRef) {\n // Create validation state here because it doesn't make sense to add to general useToggleState.\n let validationState = (0, $jNP0e$useFormValidationState)({\n ...props,\n value: state.isSelected\n });\n let { isInvalid: isInvalid, validationErrors: validationErrors, validationDetails: validationDetails } = validationState.displayValidation;\n let { labelProps: labelProps, inputProps: inputProps, isSelected: isSelected, isPressed: isPressed, isDisabled: isDisabled, isReadOnly: isReadOnly } = (0, $jNP0e$useToggle)({\n ...props,\n isInvalid: isInvalid\n }, state, inputRef);\n (0, $jNP0e$useFormValidation)(props, validationState, inputRef);\n let { isIndeterminate: isIndeterminate, isRequired: isRequired, validationBehavior: validationBehavior = 'aria' } = props;\n (0, $jNP0e$useEffect)(()=>{\n // indeterminate is a property, but it can only be set via javascript\n // https://css-tricks.com/indeterminate-checkboxes/\n if (inputRef.current) inputRef.current.indeterminate = !!isIndeterminate;\n });\n // Reset validation state on label press for checkbox with a hidden input.\n let { pressProps: pressProps } = (0, $jNP0e$usePress)({\n isDisabled: isDisabled || isReadOnly,\n onPress () {\n // @ts-expect-error\n let { [(0, $jNP0e$privateValidationStateProp)]: groupValidationState } = props;\n let { commitValidation: commitValidation } = groupValidationState ? groupValidationState : validationState;\n commitValidation();\n }\n });\n return {\n labelProps: (0, $jNP0e$mergeProps)(labelProps, pressProps),\n inputProps: {\n ...inputProps,\n checked: isSelected,\n 'aria-required': isRequired && validationBehavior === 'aria' || undefined,\n required: isRequired && validationBehavior === 'native'\n },\n isSelected: isSelected,\n isPressed: isPressed,\n isDisabled: isDisabled,\n isReadOnly: isReadOnly,\n isInvalid: isInvalid,\n validationErrors: validationErrors,\n validationDetails: validationDetails\n };\n}\n\n\nexport {$406796ff087fe49b$export$e375f10ce42261c5 as useCheckbox};\n//# sourceMappingURL=useCheckbox.module.js.map\n","/* eslint-disable @typescript-eslint/no-empty-object-type */\nimport {\n createSlotRecipeContext,\n type HTMLChakraProps,\n type RecipeVariantProps,\n} from \"@chakra-ui/react\";\nimport { checkboxSlotRecipe } from \"./checkbox.recipe\";\n\nconst { withProvider, withContext } = createSlotRecipeContext({\n key: \"checkbox\",\n});\n\nexport interface CheckboxRootProps\n extends HTMLChakraProps<\n \"label\",\n RecipeVariantProps<typeof checkboxSlotRecipe>\n > {}\nexport const CheckboxRoot = withProvider<HTMLLabelElement, CheckboxRootProps>(\n \"label\",\n \"root\"\n);\n\ninterface CheckboxLabelProps extends HTMLChakraProps<\"span\"> {}\nexport const CheckboxLabel = withContext<HTMLSpanElement, CheckboxLabelProps>(\n \"span\",\n \"label\"\n);\n\ninterface CheckboxIndicatorProps extends HTMLChakraProps<\"span\"> {}\nexport const CheckboxIndicator = withContext<\n HTMLSpanElement,\n CheckboxIndicatorProps\n>(\"span\", \"indicator\");\n","import { useRef } from \"react\";\nimport { useToggleState } from \"react-stately\";\nimport { useSlotRecipe } from \"@chakra-ui/react\";\nimport { VisuallyHidden } from \"@/components\";\nimport { Check, Remove as Minus } from \"@commercetools/nimbus-icons\";\nimport { extractStyleProps } from \"@/utils/extractStyleProps\";\n\nimport {\n useFocusRing,\n useCheckbox,\n useObjectRef,\n mergeProps,\n} from \"react-aria\";\n\nimport { mergeRefs } from \"@chakra-ui/react\";\nimport type { CheckboxProps } from \"./checkbox.types\";\nimport {\n CheckboxIndicator,\n CheckboxRoot,\n CheckboxLabel,\n} from \"./checkbox.slots\";\n\n/**\n * # Checkbox\n * \n * Displays a checkbox.\n * \n * @see {@link https://nimbus-documentation.vercel.app/components/inputs/checkbox}\n */\nexport const Checkbox = (props: CheckboxProps) => {\n const { ref: forwardedRef } = props;\n const localRef = useRef<HTMLInputElement>(null);\n const ref = useObjectRef(mergeRefs(localRef, forwardedRef));\n\n const recipe = useSlotRecipe({ key: \"checkbox\" });\n const [recipeProps] = recipe.splitVariantProps(props);\n\n const [styleProps] = extractStyleProps(props);\n\n const state = useToggleState(props);\n const { inputProps } = useCheckbox(props, state, ref);\n\n const { isFocused, focusProps } = useFocusRing();\n const isSelected = state.isSelected && !props.isIndeterminate;\n const isIndeterminate = props.isIndeterminate;\n\n const stateProps = {\n \"data-selected\": isSelected,\n \"data-indeterminate\": isIndeterminate,\n \"data-invalid\": props.isInvalid,\n \"data-disabled\": props.isDisabled,\n \"data-focus\": isFocused || undefined,\n };\n\n return (\n <CheckboxRoot\n data-slot=\"root\"\n {...recipeProps}\n {...stateProps}\n {...styleProps}\n >\n <CheckboxIndicator data-slot=\"indicator\" {...stateProps}>\n {isSelected && <Check />}\n {isIndeterminate && <Minus />}\n <VisuallyHidden as=\"span\">\n <input {...mergeProps(inputProps, focusProps)} ref={ref} />\n </VisuallyHidden>\n </CheckboxIndicator>\n\n {props.children && (\n <CheckboxLabel data-slot=\"label\" {...stateProps}>\n {props.children}\n </CheckboxLabel>\n )}\n </CheckboxRoot>\n );\n};\nCheckbox.displayName = \"Checkbox\";\n"],"names":["$406796ff087fe49b$export$e375f10ce42261c5","props","state","inputRef","validationState","$jNP0e$useFormValidationState","isInvalid","validationErrors","validationDetails","labelProps","inputProps","isSelected","isPressed","isDisabled","isReadOnly","$jNP0e$useToggle","$jNP0e$useFormValidation","isIndeterminate","isRequired","validationBehavior","$jNP0e$useEffect","pressProps","$jNP0e$usePress","$jNP0e$privateValidationStateProp","groupValidationState","commitValidation","$jNP0e$mergeProps","withProvider","withContext","createSlotRecipeContext","CheckboxRoot","CheckboxLabel","CheckboxIndicator","Checkbox","forwardedRef","localRef","useRef","ref","useObjectRef","mergeRefs","recipe","useSlotRecipe","recipeProps","styleProps","extractStyleProps","useToggleState","useCheckbox","isFocused","focusProps","useFocusRing","stateProps","jsxs","Check","Minus","jsx","VisuallyHidden","mergeProps"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"checkbox-yo64B6Gz.es.js","sources":["../../../../node_modules/.pnpm/@react-aria+checkbox@3.15.7_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@react-aria/checkbox/dist/useCheckbox.mjs","../../src/components/checkbox/checkbox.slots.tsx","../../src/components/checkbox/checkbox.tsx"],"sourcesContent":["import {useEffect as $jNP0e$useEffect} from \"react\";\nimport {mergeProps as $jNP0e$mergeProps} from \"@react-aria/utils\";\nimport {useFormValidationState as $jNP0e$useFormValidationState, privateValidationStateProp as $jNP0e$privateValidationStateProp} from \"@react-stately/form\";\nimport {useFormValidation as $jNP0e$useFormValidation} from \"@react-aria/form\";\nimport {usePress as $jNP0e$usePress} from \"@react-aria/interactions\";\nimport {useToggle as $jNP0e$useToggle} from \"@react-aria/toggle\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\n\n\n\nfunction $406796ff087fe49b$export$e375f10ce42261c5(props, state, inputRef) {\n // Create validation state here because it doesn't make sense to add to general useToggleState.\n let validationState = (0, $jNP0e$useFormValidationState)({\n ...props,\n value: state.isSelected\n });\n let { isInvalid: isInvalid, validationErrors: validationErrors, validationDetails: validationDetails } = validationState.displayValidation;\n let { labelProps: labelProps, inputProps: inputProps, isSelected: isSelected, isPressed: isPressed, isDisabled: isDisabled, isReadOnly: isReadOnly } = (0, $jNP0e$useToggle)({\n ...props,\n isInvalid: isInvalid\n }, state, inputRef);\n (0, $jNP0e$useFormValidation)(props, validationState, inputRef);\n let { isIndeterminate: isIndeterminate, isRequired: isRequired, validationBehavior: validationBehavior = 'aria' } = props;\n (0, $jNP0e$useEffect)(()=>{\n // indeterminate is a property, but it can only be set via javascript\n // https://css-tricks.com/indeterminate-checkboxes/\n if (inputRef.current) inputRef.current.indeterminate = !!isIndeterminate;\n });\n // Reset validation state on label press for checkbox with a hidden input.\n let { pressProps: pressProps } = (0, $jNP0e$usePress)({\n isDisabled: isDisabled || isReadOnly,\n onPress () {\n // @ts-expect-error\n let { [(0, $jNP0e$privateValidationStateProp)]: groupValidationState } = props;\n let { commitValidation: commitValidation } = groupValidationState ? groupValidationState : validationState;\n commitValidation();\n }\n });\n return {\n labelProps: (0, $jNP0e$mergeProps)(labelProps, pressProps),\n inputProps: {\n ...inputProps,\n checked: isSelected,\n 'aria-required': isRequired && validationBehavior === 'aria' || undefined,\n required: isRequired && validationBehavior === 'native'\n },\n isSelected: isSelected,\n isPressed: isPressed,\n isDisabled: isDisabled,\n isReadOnly: isReadOnly,\n isInvalid: isInvalid,\n validationErrors: validationErrors,\n validationDetails: validationDetails\n };\n}\n\n\nexport {$406796ff087fe49b$export$e375f10ce42261c5 as useCheckbox};\n//# sourceMappingURL=useCheckbox.module.js.map\n","/* eslint-disable @typescript-eslint/no-empty-object-type */\nimport {\n createSlotRecipeContext,\n type HTMLChakraProps,\n type RecipeVariantProps,\n} from \"@chakra-ui/react\";\nimport { checkboxSlotRecipe } from \"./checkbox.recipe\";\n\nconst { withProvider, withContext } = createSlotRecipeContext({\n key: \"checkbox\",\n});\n\nexport interface CheckboxRootProps\n extends HTMLChakraProps<\n \"label\",\n RecipeVariantProps<typeof checkboxSlotRecipe>\n > {}\nexport const CheckboxRoot = withProvider<HTMLLabelElement, CheckboxRootProps>(\n \"label\",\n \"root\"\n);\n\ninterface CheckboxLabelProps extends HTMLChakraProps<\"span\"> {}\nexport const CheckboxLabel = withContext<HTMLSpanElement, CheckboxLabelProps>(\n \"span\",\n \"label\"\n);\n\ninterface CheckboxIndicatorProps extends HTMLChakraProps<\"span\"> {}\nexport const CheckboxIndicator = withContext<\n HTMLSpanElement,\n CheckboxIndicatorProps\n>(\"span\", \"indicator\");\n","import { useRef } from \"react\";\nimport { useToggleState } from \"react-stately\";\nimport { useSlotRecipe } from \"@chakra-ui/react\";\nimport { VisuallyHidden } from \"@/components\";\nimport { Check, Remove as Minus } from \"@commercetools/nimbus-icons\";\nimport { extractStyleProps } from \"@/utils/extractStyleProps\";\n\nimport {\n useFocusRing,\n useCheckbox,\n useObjectRef,\n mergeProps,\n} from \"react-aria\";\n\nimport { mergeRefs } from \"@chakra-ui/react\";\nimport type { CheckboxProps } from \"./checkbox.types\";\nimport {\n CheckboxIndicator,\n CheckboxRoot,\n CheckboxLabel,\n} from \"./checkbox.slots\";\n\n/**\n * # Checkbox\n *\n * Displays a checkbox.\n *\n * @see {@link https://nimbus-documentation.vercel.app/components/inputs/checkbox}\n */\nexport const Checkbox = (props: CheckboxProps) => {\n const { ref: forwardedRef } = props;\n const localRef = useRef<HTMLInputElement>(null);\n const ref = useObjectRef(mergeRefs(localRef, forwardedRef));\n\n const recipe = useSlotRecipe({ key: \"checkbox\" });\n const [recipeProps] = recipe.splitVariantProps(props);\n\n const [styleProps] = extractStyleProps(props);\n\n const state = useToggleState(props);\n const { inputProps } = useCheckbox(props, state, ref);\n\n const { isFocused, focusProps } = useFocusRing();\n const isSelected = state.isSelected && !props.isIndeterminate;\n const isIndeterminate = props.isIndeterminate;\n\n const stateProps = {\n \"data-selected\": isSelected,\n \"data-indeterminate\": isIndeterminate,\n \"data-invalid\": props.isInvalid,\n \"data-disabled\": props.isDisabled,\n \"data-focus\": isFocused || undefined,\n };\n\n return (\n <CheckboxRoot\n data-slot=\"root\"\n {...recipeProps}\n {...stateProps}\n {...styleProps}\n >\n <CheckboxIndicator data-slot=\"indicator\" {...stateProps}>\n {isSelected && <Check />}\n {isIndeterminate && <Minus />}\n <VisuallyHidden as=\"span\">\n <input {...mergeProps(inputProps, focusProps)} ref={ref} />\n </VisuallyHidden>\n </CheckboxIndicator>\n\n {props.children && (\n <CheckboxLabel data-slot=\"label\" {...stateProps}>\n {props.children}\n </CheckboxLabel>\n )}\n </CheckboxRoot>\n );\n};\nCheckbox.displayName = \"Checkbox\";\n"],"names":["$406796ff087fe49b$export$e375f10ce42261c5","props","state","inputRef","validationState","$jNP0e$useFormValidationState","isInvalid","validationErrors","validationDetails","labelProps","inputProps","isSelected","isPressed","isDisabled","isReadOnly","$jNP0e$useToggle","$jNP0e$useFormValidation","isIndeterminate","isRequired","validationBehavior","$jNP0e$useEffect","pressProps","$jNP0e$usePress","$jNP0e$privateValidationStateProp","groupValidationState","commitValidation","$jNP0e$mergeProps","withProvider","withContext","createSlotRecipeContext","CheckboxRoot","CheckboxLabel","CheckboxIndicator","Checkbox","forwardedRef","localRef","useRef","ref","useObjectRef","mergeRefs","recipe","useSlotRecipe","recipeProps","styleProps","extractStyleProps","useToggleState","useCheckbox","isFocused","focusProps","useFocusRing","stateProps","jsxs","Check","Minus","jsx","VisuallyHidden","mergeProps"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-CI8aUhmu.es.js","sources":["../../src/components/code/code.tsx"],"sourcesContent":["import { Code as ChakraCode } from \"@chakra-ui/react\";\n\n/**\n * # Code\n
|
|
1
|
+
{"version":3,"file":"code-CI8aUhmu.es.js","sources":["../../src/components/code/code.tsx"],"sourcesContent":["import { Code as ChakraCode } from \"@chakra-ui/react\";\n\n/**\n * # Code\n *\n * renders code blocks\n *\n * @see {@link https://nimbus-documentation.vercel.app/components/typography/code}\n *\n * @experimental This component is experimental and may change or be removed in future versions.\n */\nexport const Code = ChakraCode;\n"],"names":["Code","ChakraCode"],"mappings":";AAWO,MAAMA,IAAOC;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-Dg4Larbo.cjs.js","sources":["../../src/components/code/code.tsx"],"sourcesContent":["import { Code as ChakraCode } from \"@chakra-ui/react\";\n\n/**\n * # Code\n
|
|
1
|
+
{"version":3,"file":"code-Dg4Larbo.cjs.js","sources":["../../src/components/code/code.tsx"],"sourcesContent":["import { Code as ChakraCode } from \"@chakra-ui/react\";\n\n/**\n * # Code\n *\n * renders code blocks\n *\n * @see {@link https://nimbus-documentation.vercel.app/components/typography/code}\n *\n * @experimental This component is experimental and may change or be removed in future versions.\n */\nexport const Code = ChakraCode;\n"],"names":["Code","ChakraCode"],"mappings":"iDAWaA,EAAOC,EAAAA"}
|