@arolariu/components 1.1.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +32 -0
- package/dist/components/ui/accordion.js +3 -3
- package/dist/components/ui/accordion.js.map +1 -1
- package/dist/components/ui/accordion_module.css.map +1 -1
- package/dist/components/ui/alert-dialog.js +8 -8
- package/dist/components/ui/alert-dialog.js.map +1 -1
- package/dist/components/ui/alert-dialog_module.css +1 -1
- package/dist/components/ui/alert-dialog_module.css.map +1 -1
- package/dist/components/ui/alert.js +4 -4
- package/dist/components/ui/alert.js.map +1 -1
- package/dist/components/ui/alert_module.css.map +1 -1
- package/dist/components/ui/aspect-ratio.js +2 -2
- package/dist/components/ui/aspect-ratio.js.map +1 -1
- package/dist/components/ui/aspect-ratio_module.css.map +1 -1
- package/dist/components/ui/async-boundary.js +2 -2
- package/dist/components/ui/async-boundary.js.map +1 -1
- package/dist/components/ui/avatar.js +4 -4
- package/dist/components/ui/avatar.js.map +1 -1
- package/dist/components/ui/avatar_module.css.map +1 -1
- package/dist/components/ui/background-beams.js +3 -3
- package/dist/components/ui/background-beams.js.map +1 -1
- package/dist/components/ui/background-beams_module.css.map +1 -1
- package/dist/components/ui/badge.js +2 -2
- package/dist/components/ui/badge.js.map +1 -1
- package/dist/components/ui/badge_module.css.map +1 -1
- package/dist/components/ui/breadcrumb.js +10 -10
- package/dist/components/ui/breadcrumb.js.map +1 -1
- package/dist/components/ui/breadcrumb_module.css.map +1 -1
- package/dist/components/ui/bubble-background.js +5 -5
- package/dist/components/ui/bubble-background.js.map +1 -1
- package/dist/components/ui/bubble-background_module.css.map +1 -1
- package/dist/components/ui/button-group.js +6 -6
- package/dist/components/ui/button-group.js.map +1 -1
- package/dist/components/ui/button-group_module.css.map +1 -1
- package/dist/components/ui/button.js +4 -4
- package/dist/components/ui/button.js.map +1 -1
- package/dist/components/ui/button_module.css.map +1 -1
- package/dist/components/ui/calendar.d.ts +2 -1
- package/dist/components/ui/calendar.d.ts.map +1 -1
- package/dist/components/ui/calendar.js +4 -4
- package/dist/components/ui/calendar.js.map +1 -1
- package/dist/components/ui/calendar_module.css.map +1 -1
- package/dist/components/ui/card-skeleton.js +2 -2
- package/dist/components/ui/card-skeleton.js.map +1 -1
- package/dist/components/ui/card-skeleton_module.css.map +1 -1
- package/dist/components/ui/card.js +8 -8
- package/dist/components/ui/card.js.map +1 -1
- package/dist/components/ui/card_module.css.map +1 -1
- package/dist/components/ui/carousel.js +16 -16
- package/dist/components/ui/carousel.js.map +1 -1
- package/dist/components/ui/carousel_module.css +1 -1
- package/dist/components/ui/carousel_module.css.map +1 -1
- package/dist/components/ui/chart.d.ts +6 -3
- package/dist/components/ui/chart.d.ts.map +1 -1
- package/dist/components/ui/chart.js +70 -136
- package/dist/components/ui/chart.js.map +1 -1
- package/dist/components/ui/chart_module.css.map +1 -1
- package/dist/components/ui/checkbox-group.js +2 -2
- package/dist/components/ui/checkbox-group.js.map +1 -1
- package/dist/components/ui/checkbox-group_module.css.map +1 -1
- package/dist/components/ui/checkbox.js +2 -2
- package/dist/components/ui/checkbox.js.map +1 -1
- package/dist/components/ui/checkbox_module.css.map +1 -1
- package/dist/components/ui/collapsible.js +4 -4
- package/dist/components/ui/collapsible.js.map +1 -1
- package/dist/components/ui/collapsible_module.css.map +1 -1
- package/dist/components/ui/combobox.js +13 -13
- package/dist/components/ui/combobox.js.map +1 -1
- package/dist/components/ui/combobox_module.css.map +1 -1
- package/dist/components/ui/command.js +40 -40
- package/dist/components/ui/command.js.map +1 -1
- package/dist/components/ui/command_module.css +1 -1
- package/dist/components/ui/command_module.css.map +1 -1
- package/dist/components/ui/context-menu.js +6 -6
- package/dist/components/ui/context-menu.js.map +1 -1
- package/dist/components/ui/context-menu_module.css.map +1 -1
- package/dist/components/ui/copy-button.js +6 -6
- package/dist/components/ui/copy-button.js.map +1 -1
- package/dist/components/ui/copy-button_module.css.map +1 -1
- package/dist/components/ui/counting-number.js +6 -6
- package/dist/components/ui/counting-number.js.map +1 -1
- package/dist/components/ui/counting-number_module.css.map +1 -1
- package/dist/components/ui/dialog.js +6 -6
- package/dist/components/ui/dialog.js.map +1 -1
- package/dist/components/ui/dialog_module.css +1 -1
- package/dist/components/ui/dialog_module.css.map +1 -1
- package/dist/components/ui/dot-background_module.css.map +1 -1
- package/dist/components/ui/drawer.js +5 -5
- package/dist/components/ui/drawer.js.map +1 -1
- package/dist/components/ui/drawer_module.css.map +1 -1
- package/dist/components/ui/dropdown-menu.js +6 -6
- package/dist/components/ui/dropdown-menu.js.map +1 -1
- package/dist/components/ui/dropdown-menu_module.css.map +1 -1
- package/dist/components/ui/dropdrawer.js +52 -52
- package/dist/components/ui/dropdrawer.js.map +1 -1
- package/dist/components/ui/dropdrawer_module.css.map +1 -1
- package/dist/components/ui/empty.js +7 -7
- package/dist/components/ui/empty.js.map +1 -1
- package/dist/components/ui/empty_module.css.map +1 -1
- package/dist/components/ui/error-boundary.js +2 -2
- package/dist/components/ui/error-boundary.js.map +1 -1
- package/dist/components/ui/error-boundary_module.css.map +1 -1
- package/dist/components/ui/field.js +12 -12
- package/dist/components/ui/field.js.map +1 -1
- package/dist/components/ui/field_module.css.map +1 -1
- package/dist/components/ui/fireworks-background.js +6 -6
- package/dist/components/ui/fireworks-background.js.map +1 -1
- package/dist/components/ui/fireworks-background_module.css.map +1 -1
- package/dist/components/ui/flip-button.js +5 -5
- package/dist/components/ui/flip-button.js.map +1 -1
- package/dist/components/ui/flip-button_module.css.map +1 -1
- package/dist/components/ui/focus-scope.js +6 -6
- package/dist/components/ui/focus-scope.js.map +1 -1
- package/dist/components/ui/focus-scope_module.css.map +1 -1
- package/dist/components/ui/form-skeleton.js +2 -2
- package/dist/components/ui/form-skeleton.js.map +1 -1
- package/dist/components/ui/form-skeleton_module.css.map +1 -1
- package/dist/components/ui/form.d.ts +3 -3
- package/dist/components/ui/form.d.ts.map +1 -1
- package/dist/components/ui/form.js +13 -13
- package/dist/components/ui/form.js.map +1 -1
- package/dist/components/ui/form_module.css.map +1 -1
- package/dist/components/ui/gradient-background.js +2 -2
- package/dist/components/ui/gradient-background.js.map +1 -1
- package/dist/components/ui/gradient-background_module.css.map +1 -1
- package/dist/components/ui/gradient-text.js +2 -2
- package/dist/components/ui/gradient-text.js.map +1 -1
- package/dist/components/ui/gradient-text_module.css.map +1 -1
- package/dist/components/ui/highlight-text.js +4 -4
- package/dist/components/ui/highlight-text.js.map +1 -1
- package/dist/components/ui/highlight-text_module.css.map +1 -1
- package/dist/components/ui/hole-background.js +21 -21
- package/dist/components/ui/hole-background.js.map +1 -1
- package/dist/components/ui/hole-background_module.css.map +1 -1
- package/dist/components/ui/hover-card.js +3 -3
- package/dist/components/ui/hover-card.js.map +1 -1
- package/dist/components/ui/hover-card_module.css.map +1 -1
- package/dist/components/ui/input-group.js +7 -7
- package/dist/components/ui/input-group.js.map +1 -1
- package/dist/components/ui/input-group_module.css.map +1 -1
- package/dist/components/ui/input-otp.d.ts +3 -3
- package/dist/components/ui/input-otp.d.ts.map +1 -1
- package/dist/components/ui/input-otp.js +6 -6
- package/dist/components/ui/input-otp.js.map +1 -1
- package/dist/components/ui/input-otp_module.css.map +1 -1
- package/dist/components/ui/input.js +2 -2
- package/dist/components/ui/input.js.map +1 -1
- package/dist/components/ui/input_module.css.map +1 -1
- package/dist/components/ui/item.js +13 -13
- package/dist/components/ui/item.js.map +1 -1
- package/dist/components/ui/item_module.css.map +1 -1
- package/dist/components/ui/kbd.js +3 -3
- package/dist/components/ui/kbd.js.map +1 -1
- package/dist/components/ui/kbd_module.css.map +1 -1
- package/dist/components/ui/label.js +2 -2
- package/dist/components/ui/label.js.map +1 -1
- package/dist/components/ui/label_module.css.map +1 -1
- package/dist/components/ui/list-skeleton.js +2 -2
- package/dist/components/ui/list-skeleton.js.map +1 -1
- package/dist/components/ui/list-skeleton_module.css.map +1 -1
- package/dist/components/ui/loading-overlay.js +2 -2
- package/dist/components/ui/loading-overlay.js.map +1 -1
- package/dist/components/ui/loading-overlay_module.css.map +1 -1
- package/dist/components/ui/menubar.js +4 -4
- package/dist/components/ui/menubar.js.map +1 -1
- package/dist/components/ui/menubar_module.css.map +1 -1
- package/dist/components/ui/meter.js +5 -5
- package/dist/components/ui/meter.js.map +1 -1
- package/dist/components/ui/meter_module.css.map +1 -1
- package/dist/components/ui/navigation-menu.js +5 -5
- package/dist/components/ui/navigation-menu.js.map +1 -1
- package/dist/components/ui/navigation-menu_module.css +1 -1
- package/dist/components/ui/navigation-menu_module.css.map +1 -1
- package/dist/components/ui/number-field.js +3 -3
- package/dist/components/ui/number-field.js.map +1 -1
- package/dist/components/ui/number-field_module.css.map +1 -1
- package/dist/components/ui/pagination.js +8 -8
- package/dist/components/ui/pagination.js.map +1 -1
- package/dist/components/ui/pagination_module.css.map +1 -1
- package/dist/components/ui/popover.js +5 -5
- package/dist/components/ui/popover.js.map +1 -1
- package/dist/components/ui/popover_module.css.map +1 -1
- package/dist/components/ui/progress.js +2 -2
- package/dist/components/ui/progress.js.map +1 -1
- package/dist/components/ui/progress_module.css.map +1 -1
- package/dist/components/ui/radio-group.js +3 -3
- package/dist/components/ui/radio-group.js.map +1 -1
- package/dist/components/ui/radio-group_module.css.map +1 -1
- package/dist/components/ui/resizable.d.ts +13 -29
- package/dist/components/ui/resizable.d.ts.map +1 -1
- package/dist/components/ui/resizable.js +8 -7
- package/dist/components/ui/resizable.js.map +1 -1
- package/dist/components/ui/resizable_module.css.map +1 -1
- package/dist/components/ui/ripple-button.js +9 -9
- package/dist/components/ui/ripple-button.js.map +1 -1
- package/dist/components/ui/ripple-button_module.css.map +1 -1
- package/dist/components/ui/scratcher_module.css.map +1 -1
- package/dist/components/ui/scroll-area.js +2 -2
- package/dist/components/ui/scroll-area.js.map +1 -1
- package/dist/components/ui/scroll-area_module.css.map +1 -1
- package/dist/components/ui/select.js +4 -4
- package/dist/components/ui/select.js.map +1 -1
- package/dist/components/ui/select_module.css.map +1 -1
- package/dist/components/ui/separator.js +2 -2
- package/dist/components/ui/separator.js.map +1 -1
- package/dist/components/ui/separator_module.css.map +1 -1
- package/dist/components/ui/sheet.js +6 -6
- package/dist/components/ui/sheet.js.map +1 -1
- package/dist/components/ui/sheet_module.css.map +1 -1
- package/dist/components/ui/sidebar.js +36 -36
- package/dist/components/ui/sidebar.js.map +1 -1
- package/dist/components/ui/sidebar_module.css.map +1 -1
- package/dist/components/ui/skeleton.js +2 -2
- package/dist/components/ui/skeleton.js.map +1 -1
- package/dist/components/ui/skeleton_module.css.map +1 -1
- package/dist/components/ui/slider.js +2 -2
- package/dist/components/ui/slider.js.map +1 -1
- package/dist/components/ui/slider_module.css.map +1 -1
- package/dist/components/ui/spinner.js +2 -2
- package/dist/components/ui/spinner.js.map +1 -1
- package/dist/components/ui/spinner_module.css.map +1 -1
- package/dist/components/ui/stepper.js +2 -2
- package/dist/components/ui/stepper.js.map +1 -1
- package/dist/components/ui/stepper_module.css.map +1 -1
- package/dist/components/ui/switch.js +2 -2
- package/dist/components/ui/switch.js.map +1 -1
- package/dist/components/ui/switch_module.css.map +1 -1
- package/dist/components/ui/table-skeleton.js +2 -2
- package/dist/components/ui/table-skeleton.js.map +1 -1
- package/dist/components/ui/table-skeleton_module.css.map +1 -1
- package/dist/components/ui/table.js +9 -9
- package/dist/components/ui/table.js.map +1 -1
- package/dist/components/ui/table_module.css.map +1 -1
- package/dist/components/ui/tabs.js +3 -3
- package/dist/components/ui/tabs.js.map +1 -1
- package/dist/components/ui/tabs_module.css.map +1 -1
- package/dist/components/ui/textarea.js +2 -2
- package/dist/components/ui/textarea.js.map +1 -1
- package/dist/components/ui/textarea_module.css.map +1 -1
- package/dist/components/ui/timeline.js +5 -5
- package/dist/components/ui/timeline.js.map +1 -1
- package/dist/components/ui/timeline_module.css.map +1 -1
- package/dist/components/ui/{sonner.d.ts → toast.d.ts} +10 -2
- package/dist/components/ui/toast.d.ts.map +1 -0
- package/dist/components/ui/{sonner.js → toast.js} +40 -40
- package/dist/components/ui/toast.js.map +1 -0
- package/dist/components/ui/toast.module.js +34 -0
- package/dist/components/ui/toast.module.js.map +1 -0
- package/dist/components/ui/{sonner_module.css → toast_module.css} +35 -35
- package/dist/components/ui/toast_module.css.map +1 -0
- package/dist/components/ui/toggle-group.js +5 -5
- package/dist/components/ui/toggle-group.js.map +1 -1
- package/dist/components/ui/toggle-group_module.css.map +1 -1
- package/dist/components/ui/toggle.js +2 -2
- package/dist/components/ui/toggle.js.map +1 -1
- package/dist/components/ui/toggle_module.css.map +1 -1
- package/dist/components/ui/toolbar.js +6 -6
- package/dist/components/ui/toolbar.js.map +1 -1
- package/dist/components/ui/toolbar_module.css.map +1 -1
- package/dist/components/ui/tooltip.js +4 -4
- package/dist/components/ui/tooltip.js.map +1 -1
- package/dist/components/ui/tooltip_module.css.map +1 -1
- package/dist/components/ui/typewriter.js +4 -4
- package/dist/components/ui/typewriter.js.map +1 -1
- package/dist/components/ui/typewriter_module.css.map +1 -1
- package/dist/components/ui/visually-hidden.js +2 -2
- package/dist/components/ui/visually-hidden.js.map +1 -1
- package/dist/components/ui/visually-hidden_module.css.map +1 -1
- package/dist/hooks/useAnnounce.js +5 -5
- package/dist/hooks/useAnnounce.js.map +1 -1
- package/dist/hooks/useClipboard.js +6 -6
- package/dist/hooks/useClipboard.js.map +1 -1
- package/dist/hooks/useControllableState.js +3 -3
- package/dist/hooks/useControllableState.js.map +1 -1
- package/dist/hooks/useDebounce.js +3 -3
- package/dist/hooks/useDebounce.js.map +1 -1
- package/dist/hooks/useEventCallback.js +4 -4
- package/dist/hooks/useEventCallback.js.map +1 -1
- package/dist/hooks/useFocusManager.js +6 -6
- package/dist/hooks/useFocusManager.js.map +1 -1
- package/dist/hooks/useFocusVisible.js +5 -5
- package/dist/hooks/useFocusVisible.js.map +1 -1
- package/dist/hooks/useId.js +4 -4
- package/dist/hooks/useId.js.map +1 -1
- package/dist/hooks/useIntersectionObserver.js +3 -3
- package/dist/hooks/useIntersectionObserver.js.map +1 -1
- package/dist/hooks/useInterval.js +4 -4
- package/dist/hooks/useInterval.js.map +1 -1
- package/dist/hooks/useLocalStorage.js +4 -4
- package/dist/hooks/useLocalStorage.js.map +1 -1
- package/dist/hooks/useMediaQuery.js +3 -3
- package/dist/hooks/useMediaQuery.js.map +1 -1
- package/dist/hooks/useMergedRefs.js +2 -2
- package/dist/hooks/useMergedRefs.js.map +1 -1
- package/dist/hooks/useOnClickOutside.js +2 -2
- package/dist/hooks/useOnClickOutside.js.map +1 -1
- package/dist/hooks/usePrevious.js +3 -3
- package/dist/hooks/usePrevious.js.map +1 -1
- package/dist/hooks/useThrottle.js +7 -7
- package/dist/hooks/useThrottle.js.map +1 -1
- package/dist/hooks/useTimeout.js +4 -4
- package/dist/hooks/useTimeout.js.map +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/motion/Collapse.js +2 -2
- package/dist/motion/Collapse.js.map +1 -1
- package/dist/motion/Collapse_module.css.map +1 -1
- package/package.json +7 -8
- package/src/components/ui/calendar.tsx +2 -1
- package/src/components/ui/chart.tsx +2 -2
- package/src/components/ui/form.tsx +28 -3
- package/src/components/ui/input-otp.tsx +3 -3
- package/src/components/ui/resizable.tsx +15 -18
- package/src/components/ui/{sonner.module.css → toast.module.css} +1 -1
- package/src/components/ui/{sonner.tsx → toast.tsx} +2 -2
- package/src/index.ts +4 -4
- package/dist/components/ui/sonner.d.ts.map +0 -1
- package/dist/components/ui/sonner.js.map +0 -1
- package/dist/components/ui/sonner.module.js +0 -34
- package/dist/components/ui/sonner.module.js.map +0 -1
- package/dist/components/ui/sonner_module.css.map +0 -1
- package/dist/rslib-runtime.js +0 -39
- package/dist/rslib-runtime.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/ui/input-otp.js","sources":["../../../src/components/ui/input-otp.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport {OTPInput, OTPInputContext} from \"input-otp\";\r\nimport {Minus} from \"lucide-react\";\r\nimport * as React from \"react\";\r\n\r\nimport {cn} from \"@/lib/utilities\";\r\n\r\nimport styles from \"./input-otp.module.css\";\r\n\r\nconst DEFAULT_SLOT_PLACEHOLDER_CHARACTER = \"·\";\r\n\r\nexport {REGEXP_ONLY_CHARS, REGEXP_ONLY_DIGITS, REGEXP_ONLY_DIGITS_AND_CHARS}
|
|
1
|
+
{"version":3,"file":"components/ui/input-otp.js","sources":["../../../src/components/ui/input-otp.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport {OTPInput, OTPInputContext, REGEXP_ONLY_CHARS, REGEXP_ONLY_DIGITS, REGEXP_ONLY_DIGITS_AND_CHARS, type OTPInputProps, type SlotProps} from \"input-otp\";\r\nimport {Minus} from \"lucide-react\";\r\nimport * as React from \"react\";\r\n\r\nimport {cn} from \"@/lib/utilities\";\r\n\r\nimport styles from \"./input-otp.module.css\";\r\n\r\nconst DEFAULT_SLOT_PLACEHOLDER_CHARACTER = \"·\";\r\n\r\nexport {REGEXP_ONLY_CHARS, REGEXP_ONLY_DIGITS, REGEXP_ONLY_DIGITS_AND_CHARS};\r\nexport type {OTPInputProps, SlotProps};\r\n\r\n/**\r\n * Props for the {@link InputOTP} component.\r\n */\r\nexport type InputOTPProps = React.ComponentPropsWithoutRef<typeof OTPInput>;\r\n\r\n/**\r\n * Props for the {@link InputOTPGroup} component.\r\n */\r\nexport type InputOTPGroupProps = React.ComponentPropsWithoutRef<\"div\">;\r\n\r\n/**\r\n * Props for the {@link InputOTPSlot} component.\r\n */\r\nexport interface InputOTPSlotProps extends React.ComponentPropsWithoutRef<\"div\"> {\r\n /** Zero-based slot index resolved from the shared OTP input context. */\r\n index: number;\r\n}\r\n\r\n/**\r\n * Props for the {@link InputOTPSeparator} component.\r\n */\r\nexport type InputOTPSeparatorProps = React.ComponentPropsWithoutRef<\"div\">;\r\n\r\n/**\r\n * Wraps the `input-otp` root component with shared library styling.\r\n *\r\n * @remarks\r\n * - Third-party wrapper component\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n * - Forwards all supported `input-otp` root props to the underlying primitive\r\n *\r\n * @example\r\n * ```tsx\r\n * <InputOTP maxLength={6} />\r\n * ```\r\n *\r\n * @param props.maxLength - Required OTP length used to generate the expected number of slots.\r\n * @param props.pattern - Optional validation pattern forwarded to the underlying input, often paired with\r\n * `REGEXP_ONLY_DIGITS`, `REGEXP_ONLY_CHARS`, or `REGEXP_ONLY_DIGITS_AND_CHARS`.\r\n * @param props.onComplete - Callback invoked after the user fills all slots with a complete value.\r\n * @param props.pushPasswordManagerStrategy - Controls how password manager UI is handled inside the input\r\n * container.\r\n * @param props.render - Custom render function for complete control over OTP input rendering. Receives\r\n * slot data array and allows fully custom layouts.\r\n * @param props.pasteTransformer - Transform pasted text before it is applied. Useful for stripping\r\n * spaces or dashes from pasted codes.\r\n * @example\r\n * ```tsx\r\n * <InputOTP pasteTransformer={(text) => text.replace(/\\D/g, \"\")} />\r\n * ```\r\n * @param props.value - Controlled OTP value. Use with `onChange` for controlled mode.\r\n * @param props.onChange - Callback fired when the OTP value changes in controlled mode.\r\n * @param props.containerClassName - Additional CSS class for the outer container element.\r\n * @param props.noScriptCSSFallback - CSS string to inject for no-JavaScript fallback styling.\r\n * @param props.textAlign - Sets how typed characters are aligned inside the hidden backing input.\r\n * @see {@link InputOTPProps} for available props\r\n * @see {@link https://github.com/guilhermerodz/input-otp | input-otp library docs}\r\n * @see {@link https://github.com/guilhermerodz/input-otp | input-otp API reference}\r\n */\r\nconst InputOTP = React.forwardRef<React.ComponentRef<typeof OTPInput>, InputOTPProps>(\r\n ({className, containerClassName, ...props}: Readonly<InputOTPProps>, ref): React.JSX.Element => (\r\n <OTPInput\r\n ref={ref}\r\n containerClassName={cn(styles.container, containerClassName)}\r\n className={cn(styles.input, className)}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\n/**\r\n * Groups OTP slots into a shared layout row.\r\n *\r\n * @remarks\r\n * - Third-party wrapper component\r\n * - Renders a `<div>` element\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <InputOTPGroup>\r\n * <InputOTPSlot index={0} />\r\n * </InputOTPGroup>\r\n * ```\r\n *\r\n * @see {@link InputOTPGroupProps} for available props\r\n * @see {@link https://github.com/guilhermerodz/input-otp | input-otp library docs}\r\n */\r\nconst InputOTPGroup = React.forwardRef<React.ComponentRef<\"div\">, InputOTPGroupProps>(\r\n ({className, ...props}: Readonly<InputOTPGroupProps>, ref): React.JSX.Element => (\r\n <div\r\n ref={ref}\r\n className={cn(styles.group, className)}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\n/**\r\n * Renders an individual OTP slot based on shared input context state.\r\n *\r\n * @remarks\r\n * - Third-party wrapper component\r\n * - Renders a `<div>` element\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <InputOTPSlot index={0} />\r\n * ```\r\n *\r\n * @see {@link InputOTPSlotProps} for available props\r\n * @see {@link https://github.com/guilhermerodz/input-otp | input-otp library docs}\r\n */\r\nconst InputOTPSlot = React.forwardRef<React.ComponentRef<\"div\">, InputOTPSlotProps>(\r\n ({index, className, ...props}: Readonly<InputOTPSlotProps>, ref): React.JSX.Element => {\r\n const inputOTPContext = React.useContext(OTPInputContext);\r\n const slot = inputOTPContext.slots[index];\r\n\r\n if (!slot) {\r\n throw new Error(`InputOTPSlot could not find slot at index ${index}.`);\r\n }\r\n\r\n const {char, hasFakeCaret, isActive, placeholderChar} = slot;\r\n const shouldRenderPlaceholderCharacter = char === null && hasFakeCaret === false;\r\n const displayCharacter = shouldRenderPlaceholderCharacter ? (placeholderChar ?? DEFAULT_SLOT_PLACEHOLDER_CHARACTER) : char;\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n className={cn(styles.slot, isActive && styles.slotActive, className)}\r\n {...props}>\r\n {displayCharacter}\r\n {Boolean(hasFakeCaret) && (\r\n <div className={styles.fakeCaretContainer}>\r\n <div className={styles.fakeCaret} />\r\n </div>\r\n )}\r\n </div>\r\n );\r\n },\r\n);\r\n\r\n/**\r\n * Displays a visual separator between OTP groups.\r\n *\r\n * @remarks\r\n * - Third-party wrapper component\r\n * - Renders a `<div>` element\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <InputOTPSeparator />\r\n * ```\r\n *\r\n * @see {@link InputOTPSeparatorProps} for available props\r\n * @see {@link https://github.com/guilhermerodz/input-otp | input-otp library docs}\r\n */\r\nconst InputOTPSeparator = React.forwardRef<React.ComponentRef<\"div\">, InputOTPSeparatorProps>(\r\n ({className, ...props}: Readonly<InputOTPSeparatorProps>, ref): React.JSX.Element => (\r\n <div\r\n ref={ref}\r\n role='separator'\r\n className={cn(styles.separator, className)}\r\n {...props}>\r\n <Minus className={styles.separatorIcon} />\r\n </div>\r\n ),\r\n);\r\n\r\nInputOTP.displayName = \"InputOTP\";\r\nInputOTPGroup.displayName = \"InputOTPGroup\";\r\nInputOTPSlot.displayName = \"InputOTPSlot\";\r\nInputOTPSeparator.displayName = \"InputOTPSeparator\";\r\n\r\nexport {InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot};\r\n"],"names":["DEFAULT_SLOT_PLACEHOLDER_CHARACTER","InputOTP","React","className","containerClassName","props","ref","OTPInput","cn","styles","InputOTPGroup","InputOTPSlot","index","inputOTPContext","OTPInputContext","slot","Error","char","hasFakeCaret","isActive","placeholderChar","shouldRenderPlaceholderCharacter","displayCharacter","Boolean","InputOTPSeparator","Minus"],"mappings":";;;;;;;AAUA,MAAMA,qCAAqC;AAgE3C,MAAMC,WAAW,WAAHA,GAAGC,wBAAAA,UAAgB,CAC/B,CAAC,EAACC,SAAS,EAAEC,kBAAkB,EAAE,GAAGC,OAA+B,EAAEC,MAAAA,WAAAA,GACnE,IAACC,UAAQA;QACP,KAAKD;QACL,oBAAoBE,GAAGC,iBAAAA,SAAgB,EAAEL;QACzC,WAAWI,GAAGC,iBAAAA,KAAY,EAAEN;QAC3B,GAAGE,KAAK;;AAuBf,MAAMK,gBAAgB,WAAHA,GAAGR,wBAAAA,UAAgB,CACpC,CAAC,EAACC,SAAS,EAAE,GAAGE,OAAoC,EAAEC,MAAAA,WAAAA,GACpD,IAAC;QACC,KAAKA;QACL,WAAWE,GAAGC,iBAAAA,KAAY,EAAEN;QAC3B,GAAGE,KAAK;;AAqBf,MAAMM,eAAe,WAAHA,GAAGT,wBAAAA,UAAgB,CACnC,CAAC,EAACU,KAAK,EAAET,SAAS,EAAE,GAAGE,OAAmC,EAAEC;IAC1D,MAAMO,kBAAkBX,wBAAAA,UAAgB,CAACY;IACzC,MAAMC,OAAOF,gBAAgB,KAAK,CAACD,MAAM;IAEzC,IAAI,CAACG,MACH,MAAM,IAAIC,MAAM,CAAC,0CAA0C,EAAEJ,MAAM,CAAC,CAAC;IAGvE,MAAM,EAACK,IAAI,EAAEC,YAAY,EAAEC,QAAQ,EAAEC,eAAe,EAAC,GAAGL;IACxD,MAAMM,mCAAmCJ,AAAS,SAATA,QAAiBC,AAAiB,UAAjBA;IAC1D,MAAMI,mBAAmBD,mCAAoCD,mBAAmBpB,qCAAsCiB;IAEtH,OAAO,WAAP,GACE,KAAC;QACC,KAAKX;QACL,WAAWE,GAAGC,iBAAAA,IAAW,EAAEU,YAAYV,iBAAAA,UAAiB,EAAEN;QACzD,GAAGE,KAAK;;YACRiB;YACAC,QAAQL,iBAAiB,WAAjBA,GACP,IAAC;gBAAI,WAAWT,iBAAAA,kBAAyB;0BACvC,kBAAC;oBAAI,WAAWA,iBAAAA,SAAgB;;;;;AAK1C;AAmBF,MAAMe,oBAAoB,WAAHA,GAAGtB,wBAAAA,UAAgB,CACxC,CAAC,EAACC,SAAS,EAAE,GAAGE,OAAwC,EAAEC,MAAAA,WAAAA,GACxD,IAAC;QACC,KAAKA;QACL,MAAK;QACL,WAAWE,GAAGC,iBAAAA,SAAgB,EAAEN;QAC/B,GAAGE,KAAK;kBACT,kBAACoB,OAAKA;YAAC,WAAWhB,iBAAAA,aAAoB;;;AAK5CR,SAAS,WAAW,GAAG;AACvBS,cAAc,WAAW,GAAG;AAC5BC,aAAa,WAAW,GAAG;AAC3Ba,kBAAkB,WAAW,GAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack
|
|
1
|
+
{"version":3,"sources":["webpack://./../../node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[1].oneOf[2].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[1].oneOf[2].use[2]!/home/runner/work/arolariu.ro/arolariu.ro/node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/postcss-loader/index.js??ruleSet[1].rules[1].oneOf[2].use[3]!/home/runner/work/arolariu.ro/arolariu.ro/packages/components/src/components/ui/input-otp.module.css","webpack://./src/components/ui/input-otp.module.css"],"names":[],"mappings":"AAAA;ECCE,mBAAmB;EACnB,sBAAsB;EACtB,aAAa;AACf;;ADJiE;ECO/D,WAAW;AACb;;ADRsG;ECWpG,mBAAmB;AACrB;;ADZyI;ECevI,mBAAmB;EACnB,aAAa;AACf;;ADjBsL;ECoBpL,sCAAsC;EACtC,wCAAwC;EACxC,wCAAwC;EACxC,2BAA2B;EAC3B,4BAA4B;EAC5B,eAAe;EACf,uFAAuF;EACvF,uBAAuB;EACvB,cAAc;EACd,kBAAkB;EAClB,+BAA+B;AACjC;;AD/B2iB;ECkCziB,8CAA8C;EAC9C,uCAAuC;EACvC,2CAA2C;AAC7C;;ADrC6rB;ECwC3rB,+CAA+C;EAC/C,4CAA4C;AAC9C;;AD1CyyB;EC6CvyB,oCAAoC;EACpC,UAAU;AACZ;;AD/Cm2B;ECkDj2B,oBAAoB;EACpB,uBAAuB;EACvB,mBAAmB;EACnB,aAAa;EACb,kBAAkB;EAClB,QAAQ;AACV;;ADxD49B;EC2D19B,sCAAsC;EACtC,UAAU;EACV,YAAY;EACZ,4DAAqD;AACvD;;AD/DwlC;ECkEtlC,iCAAiC;EACjC,uBAAuB;EACvB,mBAAmB;EACnB,aAAa;AACf;;ADtE2rC;ECyEzrC,WAAW;EACX,YAAY;AACd;;AD3EiuC;EC8E/tC;IACE,UAAU;EACZ;;EAEA;IACE,UAAU;EACZ;AACF","sourcesContent":[".container{align-items:center;display:flex;gap:var(--ac-space-2)}.container:has(:disabled){opacity:.5}.input:disabled{cursor:not-allowed}.group,.slot{align-items:center;display:flex}.slot{background-color:var(--ac-background);border-block:1px solid var(--ac-border);border-right:1px solid var(--ac-border);box-shadow:0 1px 2px rgba(0,0,0,.05);color:var(--ac-foreground);font-size:var(--ac-text-sm);height:2.25rem;justify-content:center;position:relative;transition:box-shadow var(--ac-transition-fast),border-color var(--ac-transition-fast);width:2.25rem}.slot:first-child{border-bottom-left-radius:var(--ac-radius-md);border-left:1px solid var(--ac-border);border-top-left-radius:var(--ac-radius-md)}.slot:last-child{border-bottom-right-radius:var(--ac-radius-md);border-top-right-radius:var(--ac-radius-md)}.slotActive{box-shadow:0 0 0 1px var(--ac-ring);z-index:1}.fakeCaretContainer{align-items:center;display:flex;inset:0;justify-content:center;pointer-events:none;position:absolute}.fakeCaret{animation:input-otp-caret-blink 1s ease-out infinite;background-color:var(--ac-foreground);height:1rem;width:1px}.separator{align-items:center;color:var(--ac-muted-foreground);display:flex;justify-content:center}.separatorIcon{height:1rem;width:1rem}@keyframes input-otp-caret-blink{0%,70%,to{opacity:1}20%,50%{opacity:0}}",".container {\n align-items: center;\n gap: var(--ac-space-2);\n display: flex;\n}\n\n.container:has(:disabled) {\n opacity: .5;\n}\n\n.input:disabled {\n cursor: not-allowed;\n}\n\n.group, .slot {\n align-items: center;\n display: flex;\n}\n\n.slot {\n background-color: var(--ac-background);\n border-block: 1px solid var(--ac-border);\n border-right: 1px solid var(--ac-border);\n color: var(--ac-foreground);\n font-size: var(--ac-text-sm);\n height: 2.25rem;\n transition: box-shadow var(--ac-transition-fast),border-color var(--ac-transition-fast);\n justify-content: center;\n width: 2.25rem;\n position: relative;\n box-shadow: 0 1px 2px #0000000d;\n}\n\n.slot:first-child {\n border-bottom-left-radius: var(--ac-radius-md);\n border-left: 1px solid var(--ac-border);\n border-top-left-radius: var(--ac-radius-md);\n}\n\n.slot:last-child {\n border-bottom-right-radius: var(--ac-radius-md);\n border-top-right-radius: var(--ac-radius-md);\n}\n\n.slotActive {\n box-shadow: 0 0 0 1px var(--ac-ring);\n z-index: 1;\n}\n\n.fakeCaretContainer {\n pointer-events: none;\n justify-content: center;\n align-items: center;\n display: flex;\n position: absolute;\n inset: 0;\n}\n\n.fakeCaret {\n background-color: var(--ac-foreground);\n width: 1px;\n height: 1rem;\n animation: 1s ease-out infinite input-otp-caret-blink;\n}\n\n.separator {\n color: var(--ac-muted-foreground);\n justify-content: center;\n align-items: center;\n display: flex;\n}\n\n.separatorIcon {\n width: 1rem;\n height: 1rem;\n}\n\n@keyframes input-otp-caret-blink {\n 0%, 70%, to {\n opacity: 1;\n }\n\n 20%, 50% {\n opacity: 0;\n }\n}\n"],"sourceRoot":""}
|
|
@@ -3,10 +3,10 @@ import { jsx } from "react/jsx-runtime";
|
|
|
3
3
|
import { Input } from "@base-ui/react/input";
|
|
4
4
|
import { mergeProps } from "@base-ui/react/merge-props";
|
|
5
5
|
import { useRender } from "@base-ui/react/use-render";
|
|
6
|
-
import { forwardRef } from "react";
|
|
7
6
|
import { cn } from "../../lib/utilities.js";
|
|
8
7
|
import input_module from "./input.module.js";
|
|
9
|
-
|
|
8
|
+
import * as __rspack_external_react from "react";
|
|
9
|
+
const input_Input = /*#__PURE__*/ __rspack_external_react.forwardRef((props, ref)=>{
|
|
10
10
|
const { className, render, type, ...otherProps } = props;
|
|
11
11
|
return /*#__PURE__*/ jsx(Input, {
|
|
12
12
|
ref: ref,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/ui/input.js","sources":["../../../src/components/ui/input.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport {Input as BaseInput} from \"@base-ui/react/input\";\r\nimport {mergeProps} from \"@base-ui/react/merge-props\";\r\nimport {useRender} from \"@base-ui/react/use-render\";\r\nimport * as React from \"react\";\r\n\r\nimport {cn} from \"@/lib/utilities\";\r\nimport styles from \"./input.module.css\";\r\n\r\n/**\r\n * Props for the shared input wrapper.\r\n */\r\nexport interface InputProps extends Omit<React.ComponentPropsWithRef<typeof BaseInput>, \"className\"> {\r\n /** Additional CSS classes merged with the input styles. @default undefined */\r\n className?: string;\r\n /** The HTML input type forwarded to the underlying control. @default undefined */\r\n type?: React.HTMLInputTypeAttribute;\r\n}\r\n\r\n/**\r\n * Renders a styled text input for free-form single-line entry.\r\n *\r\n * @remarks\r\n * - Renders an `<input>` element by default\r\n * - Built on {@link https://base-ui.com/react/components/input | Base UI Input}\r\n * - Supports the `render` prop for element composition\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example Basic usage\r\n * ```tsx\r\n * <Input type=\"email\" placeholder=\"name@example.com\" />\r\n * ```\r\n *\r\n * @see {@link https://base-ui.com/react/components/input | Base UI Documentation}\r\n */\r\nconst Input = React.forwardRef<React.ComponentRef<typeof BaseInput>, Input.Props>(\r\n (props: Readonly<Input.Props>, ref): React.ReactElement => {\r\n const {className, render, type, ...otherProps} = props;\r\n\r\n return (\r\n <BaseInput\r\n ref={ref}\r\n type={type}\r\n {...otherProps}\r\n render={useRender({\r\n defaultTagName: \"input\",\r\n render: render as never,\r\n props: mergeProps({className: cn(styles.input, className)}, {}),\r\n })}\r\n />\r\n );\r\n },\r\n);\r\nInput.displayName = \"Input\";\r\n\r\n// eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API\r\nnamespace Input {\r\n export type Props = InputProps;\r\n export type State = BaseInput.State;\r\n}\r\n\r\nexport {Input};\r\n"],"names":["Input","React","props","ref","className","render","type","otherProps","BaseInput","useRender","mergeProps","cn","styles"],"mappings":";;;;;;;;AAoCA,MAAMA,cAAQ,WAAHA,GAAGC,
|
|
1
|
+
{"version":3,"file":"components/ui/input.js","sources":["../../../src/components/ui/input.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport {Input as BaseInput} from \"@base-ui/react/input\";\r\nimport {mergeProps} from \"@base-ui/react/merge-props\";\r\nimport {useRender} from \"@base-ui/react/use-render\";\r\nimport * as React from \"react\";\r\n\r\nimport {cn} from \"@/lib/utilities\";\r\nimport styles from \"./input.module.css\";\r\n\r\n/**\r\n * Props for the shared input wrapper.\r\n */\r\nexport interface InputProps extends Omit<React.ComponentPropsWithRef<typeof BaseInput>, \"className\"> {\r\n /** Additional CSS classes merged with the input styles. @default undefined */\r\n className?: string;\r\n /** The HTML input type forwarded to the underlying control. @default undefined */\r\n type?: React.HTMLInputTypeAttribute;\r\n}\r\n\r\n/**\r\n * Renders a styled text input for free-form single-line entry.\r\n *\r\n * @remarks\r\n * - Renders an `<input>` element by default\r\n * - Built on {@link https://base-ui.com/react/components/input | Base UI Input}\r\n * - Supports the `render` prop for element composition\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example Basic usage\r\n * ```tsx\r\n * <Input type=\"email\" placeholder=\"name@example.com\" />\r\n * ```\r\n *\r\n * @see {@link https://base-ui.com/react/components/input | Base UI Documentation}\r\n */\r\nconst Input = React.forwardRef<React.ComponentRef<typeof BaseInput>, Input.Props>(\r\n (props: Readonly<Input.Props>, ref): React.ReactElement => {\r\n const {className, render, type, ...otherProps} = props;\r\n\r\n return (\r\n <BaseInput\r\n ref={ref}\r\n type={type}\r\n {...otherProps}\r\n render={useRender({\r\n defaultTagName: \"input\",\r\n render: render as never,\r\n props: mergeProps({className: cn(styles.input, className)}, {}),\r\n })}\r\n />\r\n );\r\n },\r\n);\r\nInput.displayName = \"Input\";\r\n\r\n// eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API\r\nnamespace Input {\r\n export type Props = InputProps;\r\n export type State = BaseInput.State;\r\n}\r\n\r\nexport {Input};\r\n"],"names":["Input","React","props","ref","className","render","type","otherProps","BaseInput","useRender","mergeProps","cn","styles"],"mappings":";;;;;;;;AAoCA,MAAMA,cAAQ,WAAHA,GAAGC,wBAAAA,UAAgB,CAC5B,CAACC,OAA8BC;IAC7B,MAAM,EAACC,SAAS,EAAEC,MAAM,EAAEC,IAAI,EAAE,GAAGC,YAAW,GAAGL;IAEjD,OAAO,WAAP,GACE,IAACM,OAASA;QACR,KAAKL;QACL,MAAMG;QACL,GAAGC,UAAU;QACd,QAAQE,UAAU;YAChB,gBAAgB;YAChB,QAAQJ;YACR,OAAOK,WAAW;gBAAC,WAAWC,GAAGC,aAAAA,KAAY,EAAER;YAAU,GAAG,CAAC;QAC/D;;AAGN;AAEFJ,YAAM,WAAW,GAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack
|
|
1
|
+
{"version":3,"sources":["webpack://./../../node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[1].oneOf[2].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[1].oneOf[2].use[2]!/home/runner/work/arolariu.ro/arolariu.ro/node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/postcss-loader/index.js??ruleSet[1].rules[1].oneOf[2].use[3]!/home/runner/work/arolariu.ro/arolariu.ro/packages/components/src/components/ui/input.module.css","webpack://./src/components/ui/input.module.css"],"names":[],"mappings":"AAAA;ECCE,iCAAiC;EACjC,kCAAkC;EAClC,sBAAsB;EACtB,2BAA2B;EAC3B,4BAA4B;EAC5B,8BAA8B;EAC9B,4CAA4C;EAC5C,uFAAuF;EACvF,uBAAuB;EACvB,aAAa;EACb,WAAW;EACX,gBAAgB;EAChB,aAAa;;EDb2X;ICgBtY,iCAAiC;EACnC;;EDjBwb;ICoBtb,4BAA4B;IAC5B,oCAAoC;EACtC;;EDtBwgB;ICyBtgB,mBAAmB;IACnB,WAAW;EACb;;ED3BijB;IC8B/iB,4BAA4B;IAC5B,uBAAuB;IACvB,YAAY;IACZ,UAAU;IACV,gBAAgB;EAClB;AACF","sourcesContent":[".input{background-color:transparent;border:1px solid var(--ac-input);border-radius:var(--ac-radius-md);box-sizing:border-box;color:var(--ac-foreground);display:flex;font-size:var(--ac-text-sm);height:var(--ac-size-default);line-height:1.5;outline:none;padding:var(--ac-space-1) var(--ac-space-3);transition:border-color var(--ac-transition-fast),box-shadow var(--ac-transition-fast);width:100%;&::placeholder{color:var(--ac-muted-foreground)}&:focus-visible{border-color:var(--ac-ring);box-shadow:0 0 0 1px var(--ac-ring)}&:disabled{cursor:not-allowed;opacity:.5}&[type=file]{background-color:transparent;border:none;font-size:var(--ac-text-sm);font-weight:500;padding:0}}",".input {\n border: 1px solid var(--ac-input);\n border-radius: var(--ac-radius-md);\n box-sizing: border-box;\n color: var(--ac-foreground);\n font-size: var(--ac-text-sm);\n height: var(--ac-size-default);\n padding: var(--ac-space-1) var(--ac-space-3);\n transition: border-color var(--ac-transition-fast),box-shadow var(--ac-transition-fast);\n background-color: #0000;\n outline: none;\n width: 100%;\n line-height: 1.5;\n display: flex;\n\n &::placeholder {\n color: var(--ac-muted-foreground);\n }\n\n &:focus-visible {\n border-color: var(--ac-ring);\n box-shadow: 0 0 0 1px var(--ac-ring);\n }\n\n &:disabled {\n cursor: not-allowed;\n opacity: .5;\n }\n\n &[type=\"file\"] {\n font-size: var(--ac-text-sm);\n background-color: #0000;\n border: none;\n padding: 0;\n font-weight: 500;\n }\n}\n"],"sourceRoot":""}
|
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
|
-
import { cloneElement, forwardRef, isValidElement } from "react";
|
|
3
2
|
import { Separator } from "./separator.js";
|
|
4
3
|
import { cn } from "../../lib/utilities.js";
|
|
5
4
|
import item_module from "./item.module.js";
|
|
6
|
-
|
|
5
|
+
import * as __rspack_external_react from "react";
|
|
6
|
+
const ItemGroup = /*#__PURE__*/ __rspack_external_react.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("div", {
|
|
7
7
|
ref: ref,
|
|
8
8
|
role: "list",
|
|
9
9
|
"data-slot": "item-group",
|
|
10
10
|
className: cn(item_module.group, className),
|
|
11
11
|
...props
|
|
12
12
|
}));
|
|
13
|
-
const ItemSeparator = /*#__PURE__*/ forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx(Separator, {
|
|
13
|
+
const ItemSeparator = /*#__PURE__*/ __rspack_external_react.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx(Separator, {
|
|
14
14
|
ref: ref,
|
|
15
15
|
"data-slot": "item-separator",
|
|
16
16
|
orientation: "horizontal",
|
|
17
17
|
className: cn(item_module.separator, className),
|
|
18
18
|
...props
|
|
19
19
|
}));
|
|
20
|
-
const Item = /*#__PURE__*/ forwardRef(({ className, variant = "default", size = "default", asChild = false, children, ...props }, ref)=>{
|
|
20
|
+
const Item = /*#__PURE__*/ __rspack_external_react.forwardRef(({ className, variant = "default", size = "default", asChild = false, children, ...props }, ref)=>{
|
|
21
21
|
const mergedClassName = cn(item_module.item, "outline" === variant && item_module.outline, "muted" === variant && item_module.muted, "sm" === size ? item_module.sizeSm : item_module.sizeDefault, className);
|
|
22
|
-
if (asChild && /*#__PURE__*/ isValidElement(children)) {
|
|
22
|
+
if (asChild && /*#__PURE__*/ __rspack_external_react.isValidElement(children)) {
|
|
23
23
|
const child = children;
|
|
24
|
-
return /*#__PURE__*/ cloneElement(child, {
|
|
24
|
+
return /*#__PURE__*/ __rspack_external_react.cloneElement(child, {
|
|
25
25
|
...props,
|
|
26
26
|
ref,
|
|
27
27
|
"data-size": size,
|
|
@@ -40,44 +40,44 @@ const Item = /*#__PURE__*/ forwardRef(({ className, variant = "default", size =
|
|
|
40
40
|
children: children
|
|
41
41
|
});
|
|
42
42
|
});
|
|
43
|
-
const ItemMedia = /*#__PURE__*/ forwardRef(({ className, variant = "default", ...props }, ref)=>/*#__PURE__*/ jsx("div", {
|
|
43
|
+
const ItemMedia = /*#__PURE__*/ __rspack_external_react.forwardRef(({ className, variant = "default", ...props }, ref)=>/*#__PURE__*/ jsx("div", {
|
|
44
44
|
ref: ref,
|
|
45
45
|
"data-slot": "item-media",
|
|
46
46
|
"data-variant": variant,
|
|
47
47
|
className: cn(item_module.media, "icon" === variant && item_module.mediaIcon, "image" === variant && item_module.mediaImage, className),
|
|
48
48
|
...props
|
|
49
49
|
}));
|
|
50
|
-
const ItemContent = /*#__PURE__*/ forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("div", {
|
|
50
|
+
const ItemContent = /*#__PURE__*/ __rspack_external_react.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("div", {
|
|
51
51
|
ref: ref,
|
|
52
52
|
"data-slot": "item-content",
|
|
53
53
|
className: cn(item_module.content, className),
|
|
54
54
|
...props
|
|
55
55
|
}));
|
|
56
|
-
const ItemTitle = /*#__PURE__*/ forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("div", {
|
|
56
|
+
const ItemTitle = /*#__PURE__*/ __rspack_external_react.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("div", {
|
|
57
57
|
ref: ref,
|
|
58
58
|
"data-slot": "item-title",
|
|
59
59
|
className: cn(item_module.title, className),
|
|
60
60
|
...props
|
|
61
61
|
}));
|
|
62
|
-
const ItemDescription = /*#__PURE__*/ forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("p", {
|
|
62
|
+
const ItemDescription = /*#__PURE__*/ __rspack_external_react.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("p", {
|
|
63
63
|
ref: ref,
|
|
64
64
|
"data-slot": "item-description",
|
|
65
65
|
className: cn(item_module.description, className),
|
|
66
66
|
...props
|
|
67
67
|
}));
|
|
68
|
-
const ItemActions = /*#__PURE__*/ forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("div", {
|
|
68
|
+
const ItemActions = /*#__PURE__*/ __rspack_external_react.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("div", {
|
|
69
69
|
ref: ref,
|
|
70
70
|
"data-slot": "item-actions",
|
|
71
71
|
className: cn(item_module.actions, className),
|
|
72
72
|
...props
|
|
73
73
|
}));
|
|
74
|
-
const ItemHeader = /*#__PURE__*/ forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("div", {
|
|
74
|
+
const ItemHeader = /*#__PURE__*/ __rspack_external_react.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("div", {
|
|
75
75
|
ref: ref,
|
|
76
76
|
"data-slot": "item-header",
|
|
77
77
|
className: cn(item_module.header, className),
|
|
78
78
|
...props
|
|
79
79
|
}));
|
|
80
|
-
const ItemFooter = /*#__PURE__*/ forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("div", {
|
|
80
|
+
const ItemFooter = /*#__PURE__*/ __rspack_external_react.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("div", {
|
|
81
81
|
ref: ref,
|
|
82
82
|
"data-slot": "item-footer",
|
|
83
83
|
className: cn(item_module.footer, className),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/ui/item.js","sources":["../../../src/components/ui/item.tsx"],"sourcesContent":["import * as React from \"react\";\r\n\r\nimport {Separator} from \"@/components/ui/separator\";\r\nimport {cn} from \"@/lib/utilities\";\r\nimport styles from \"./item.module.css\";\r\n\r\n/** Supported surface variants for {@link Item}. */\r\nexport type ItemVariant = \"default\" | \"outline\" | \"muted\";\r\n\r\n/** Supported size variants for {@link Item}. */\r\nexport type ItemSize = \"default\" | \"sm\";\r\n\r\n/** Supported media treatments for {@link ItemMedia}. */\r\nexport type ItemMediaVariant = \"default\" | \"icon\" | \"image\";\r\n\r\ntype ItemDataAttributes = Record<`data-${string}`, string | boolean | undefined>;\r\n\r\n/**\r\n * Props for the {@link ItemGroup} component.\r\n */\r\nexport type ItemGroupProps = React.ComponentPropsWithoutRef<\"div\">;\r\n\r\n/**\r\n * Props for the {@link ItemSeparator} component.\r\n */\r\nexport type ItemSeparatorProps = React.ComponentPropsWithoutRef<typeof Separator>;\r\n\r\n/**\r\n * Props for the {@link Item} component.\r\n */\r\nexport interface ItemProps extends React.ComponentPropsWithoutRef<\"div\"> {\r\n /** Enables rendering an existing div-compatible child element. @default false */\r\n asChild?: boolean;\r\n /** Compactness applied to the item container. @default \"default\" */\r\n size?: ItemSize;\r\n /** Visual surface treatment for the item container. @default \"default\" */\r\n variant?: ItemVariant;\r\n}\r\n\r\n/**\r\n * Props for the {@link ItemMedia} component.\r\n */\r\nexport interface ItemMediaProps extends React.ComponentPropsWithoutRef<\"div\"> {\r\n /** Visual treatment used for the media slot. @default \"default\" */\r\n variant?: ItemMediaVariant;\r\n}\r\n\r\n/**\r\n * Props for the {@link ItemContent} component.\r\n */\r\nexport type ItemContentProps = React.ComponentPropsWithoutRef<\"div\">;\r\n\r\n/**\r\n * Props for the {@link ItemTitle} component.\r\n */\r\nexport type ItemTitleProps = React.ComponentPropsWithoutRef<\"div\">;\r\n\r\n/**\r\n * Props for the {@link ItemDescription} component.\r\n */\r\nexport type ItemDescriptionProps = React.ComponentPropsWithoutRef<\"p\">;\r\n\r\n/**\r\n * Props for the {@link ItemActions} component.\r\n */\r\nexport type ItemActionsProps = React.ComponentPropsWithoutRef<\"div\">;\r\n\r\n/**\r\n * Props for the {@link ItemHeader} component.\r\n */\r\nexport type ItemHeaderProps = React.ComponentPropsWithoutRef<\"div\">;\r\n\r\n/**\r\n * Props for the {@link ItemFooter} component.\r\n */\r\nexport type ItemFooterProps = React.ComponentPropsWithoutRef<\"div\">;\r\n\r\n/**\r\n * Groups a collection of list-like items with consistent spacing.\r\n *\r\n * @remarks\r\n * - Pure CSS component (no Base UI primitive)\r\n * - Renders a `<div>` element\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <ItemGroup>\r\n * <Item />\r\n * </ItemGroup>\r\n * ```\r\n *\r\n * @see {@link ItemGroupProps} for available props\r\n */\r\nconst ItemGroup = React.forwardRef<HTMLDivElement, ItemGroupProps>(\r\n ({className, ...props}: Readonly<ItemGroupProps>, ref): React.JSX.Element => (\r\n <div\r\n ref={ref}\r\n role='list'\r\n data-slot='item-group'\r\n className={cn(styles.group, className)}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\n/**\r\n * Inserts a separator between adjacent items.\r\n *\r\n * @remarks\r\n * - Pure CSS component (no Base UI primitive)\r\n * - Renders a wrapped `Separator` component\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <ItemSeparator />\r\n * ```\r\n *\r\n * @see {@link ItemSeparatorProps} for available props\r\n */\r\nconst ItemSeparator = React.forwardRef<HTMLDivElement, ItemSeparatorProps>(\r\n ({className, ...props}: Readonly<ItemSeparatorProps>, ref): React.JSX.Element => (\r\n <Separator\r\n ref={ref}\r\n data-slot='item-separator'\r\n orientation='horizontal'\r\n className={cn(styles.separator, className)}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\n/**\r\n * Creates a flexible data-display row with optional media and actions.\r\n *\r\n * @remarks\r\n * - Pure CSS component (no Base UI primitive)\r\n * - Renders a `<div>` element by default\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <Item variant='outline'>Content</Item>\r\n * ```\r\n *\r\n * @see {@link ItemProps} for available props\r\n */\r\nconst Item = React.forwardRef<HTMLDivElement, ItemProps>(\r\n (\r\n {className, variant = \"default\", size = \"default\", asChild = false, children, ...props}: Readonly<ItemProps>,\r\n ref,\r\n ): React.JSX.Element => {\r\n const mergedClassName = cn(\r\n styles.item,\r\n variant === \"outline\" && styles.outline,\r\n variant === \"muted\" && styles.muted,\r\n size === \"sm\" ? styles.sizeSm : styles.sizeDefault,\r\n className,\r\n );\r\n\r\n if (asChild && React.isValidElement(children)) {\r\n const child = children as React.ReactElement<\r\n React.ComponentPropsWithoutRef<\"div\"> & ItemDataAttributes & {ref?: React.Ref<HTMLDivElement>}\r\n >;\r\n\r\n // eslint-disable-next-line react-x/no-clone-element -- replaces Radix Slot while preserving asChild prop merging\r\n return React.cloneElement(child, {\r\n ...props,\r\n ref,\r\n \"data-size\": size,\r\n \"data-slot\": \"item\",\r\n \"data-variant\": variant,\r\n className: cn(mergedClassName, child.props.className),\r\n });\r\n }\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n data-slot='item'\r\n data-size={size}\r\n data-variant={variant}\r\n className={mergedClassName}\r\n {...props}>\r\n {children}\r\n </div>\r\n );\r\n },\r\n);\r\n\r\n/**\r\n * Renders the leading media slot for an item.\r\n *\r\n * @remarks\r\n * - Pure CSS component (no Base UI primitive)\r\n * - Renders a `<div>` element\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <ItemMedia variant='icon'>⭐</ItemMedia>\r\n * ```\r\n *\r\n * @see {@link ItemMediaProps} for available props\r\n */\r\nconst ItemMedia = React.forwardRef<HTMLDivElement, ItemMediaProps>(\r\n ({className, variant = \"default\", ...props}: Readonly<ItemMediaProps>, ref): React.JSX.Element => (\r\n <div\r\n ref={ref}\r\n data-slot='item-media'\r\n data-variant={variant}\r\n className={cn(styles.media, variant === \"icon\" && styles.mediaIcon, variant === \"image\" && styles.mediaImage, className)}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\n/**\r\n * Wraps the main textual content for an item.\r\n *\r\n * @remarks\r\n * - Pure CSS component (no Base UI primitive)\r\n * - Renders a `<div>` element\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <ItemContent>Details</ItemContent>\r\n * ```\r\n *\r\n * @see {@link ItemContentProps} for available props\r\n */\r\nconst ItemContent = React.forwardRef<HTMLDivElement, ItemContentProps>(\r\n ({className, ...props}: Readonly<ItemContentProps>, ref): React.JSX.Element => (\r\n <div\r\n ref={ref}\r\n data-slot='item-content'\r\n className={cn(styles.content, className)}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\n/**\r\n * Displays the primary title text for an item.\r\n *\r\n * @remarks\r\n * - Pure CSS component (no Base UI primitive)\r\n * - Renders a `<div>` element\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <ItemTitle>Title</ItemTitle>\r\n * ```\r\n *\r\n * @see {@link ItemTitleProps} for available props\r\n */\r\nconst ItemTitle = React.forwardRef<HTMLDivElement, ItemTitleProps>(\r\n ({className, ...props}: Readonly<ItemTitleProps>, ref): React.JSX.Element => (\r\n <div\r\n ref={ref}\r\n data-slot='item-title'\r\n className={cn(styles.title, className)}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\n/**\r\n * Displays secondary descriptive content for an item.\r\n *\r\n * @remarks\r\n * - Pure CSS component (no Base UI primitive)\r\n * - Renders a `<p>` element\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <ItemDescription>Support text</ItemDescription>\r\n * ```\r\n *\r\n * @see {@link ItemDescriptionProps} for available props\r\n */\r\nconst ItemDescription = React.forwardRef<HTMLParagraphElement, ItemDescriptionProps>(\r\n ({className, ...props}: Readonly<ItemDescriptionProps>, ref): React.JSX.Element => (\r\n <p\r\n ref={ref}\r\n data-slot='item-description'\r\n className={cn(styles.description, className)}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\n/**\r\n * Hosts action controls aligned to the trailing edge of an item.\r\n *\r\n * @remarks\r\n * - Pure CSS component (no Base UI primitive)\r\n * - Renders a `<div>` element\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <ItemActions>\r\n * <button type='button'>Edit</button>\r\n * </ItemActions>\r\n * ```\r\n *\r\n * @see {@link ItemActionsProps} for available props\r\n */\r\nconst ItemActions = React.forwardRef<HTMLDivElement, ItemActionsProps>(\r\n ({className, ...props}: Readonly<ItemActionsProps>, ref): React.JSX.Element => (\r\n <div\r\n ref={ref}\r\n data-slot='item-actions'\r\n className={cn(styles.actions, className)}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\n/**\r\n * Wraps leading title and description content for an item.\r\n *\r\n * @remarks\r\n * - Pure CSS component (no Base UI primitive)\r\n * - Renders a `<div>` element\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <ItemHeader>\r\n * <ItemTitle>Profile</ItemTitle>\r\n * </ItemHeader>\r\n * ```\r\n *\r\n * @see {@link ItemHeaderProps} for available props\r\n */\r\nconst ItemHeader = React.forwardRef<HTMLDivElement, ItemHeaderProps>(\r\n ({className, ...props}: Readonly<ItemHeaderProps>, ref): React.JSX.Element => (\r\n <div\r\n ref={ref}\r\n data-slot='item-header'\r\n className={cn(styles.header, className)}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\n/**\r\n * Wraps trailing metadata or supplementary content for an item.\r\n *\r\n * @remarks\r\n * - Pure CSS component (no Base UI primitive)\r\n * - Renders a `<div>` element\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <ItemFooter>Updated 2m ago</ItemFooter>\r\n * ```\r\n *\r\n * @see {@link ItemFooterProps} for available props\r\n */\r\nconst ItemFooter = React.forwardRef<HTMLDivElement, ItemFooterProps>(\r\n ({className, ...props}: Readonly<ItemFooterProps>, ref): React.JSX.Element => (\r\n <div\r\n ref={ref}\r\n data-slot='item-footer'\r\n className={cn(styles.footer, className)}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\nItemGroup.displayName = \"ItemGroup\";\r\nItemSeparator.displayName = \"ItemSeparator\";\r\nItem.displayName = \"Item\";\r\nItemMedia.displayName = \"ItemMedia\";\r\nItemContent.displayName = \"ItemContent\";\r\nItemTitle.displayName = \"ItemTitle\";\r\nItemDescription.displayName = \"ItemDescription\";\r\nItemActions.displayName = \"ItemActions\";\r\nItemHeader.displayName = \"ItemHeader\";\r\nItemFooter.displayName = \"ItemFooter\";\r\n\r\nexport {Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle};\r\n"],"names":["ItemGroup","React","className","props","ref","cn","styles","ItemSeparator","Separator","Item","variant","size","asChild","children","mergedClassName","child","ItemMedia","ItemContent","ItemTitle","ItemDescription","ItemActions","ItemHeader","ItemFooter"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"components/ui/item.js","sources":["../../../src/components/ui/item.tsx"],"sourcesContent":["import * as React from \"react\";\r\n\r\nimport {Separator} from \"@/components/ui/separator\";\r\nimport {cn} from \"@/lib/utilities\";\r\nimport styles from \"./item.module.css\";\r\n\r\n/** Supported surface variants for {@link Item}. */\r\nexport type ItemVariant = \"default\" | \"outline\" | \"muted\";\r\n\r\n/** Supported size variants for {@link Item}. */\r\nexport type ItemSize = \"default\" | \"sm\";\r\n\r\n/** Supported media treatments for {@link ItemMedia}. */\r\nexport type ItemMediaVariant = \"default\" | \"icon\" | \"image\";\r\n\r\ntype ItemDataAttributes = Record<`data-${string}`, string | boolean | undefined>;\r\n\r\n/**\r\n * Props for the {@link ItemGroup} component.\r\n */\r\nexport type ItemGroupProps = React.ComponentPropsWithoutRef<\"div\">;\r\n\r\n/**\r\n * Props for the {@link ItemSeparator} component.\r\n */\r\nexport type ItemSeparatorProps = React.ComponentPropsWithoutRef<typeof Separator>;\r\n\r\n/**\r\n * Props for the {@link Item} component.\r\n */\r\nexport interface ItemProps extends React.ComponentPropsWithoutRef<\"div\"> {\r\n /** Enables rendering an existing div-compatible child element. @default false */\r\n asChild?: boolean;\r\n /** Compactness applied to the item container. @default \"default\" */\r\n size?: ItemSize;\r\n /** Visual surface treatment for the item container. @default \"default\" */\r\n variant?: ItemVariant;\r\n}\r\n\r\n/**\r\n * Props for the {@link ItemMedia} component.\r\n */\r\nexport interface ItemMediaProps extends React.ComponentPropsWithoutRef<\"div\"> {\r\n /** Visual treatment used for the media slot. @default \"default\" */\r\n variant?: ItemMediaVariant;\r\n}\r\n\r\n/**\r\n * Props for the {@link ItemContent} component.\r\n */\r\nexport type ItemContentProps = React.ComponentPropsWithoutRef<\"div\">;\r\n\r\n/**\r\n * Props for the {@link ItemTitle} component.\r\n */\r\nexport type ItemTitleProps = React.ComponentPropsWithoutRef<\"div\">;\r\n\r\n/**\r\n * Props for the {@link ItemDescription} component.\r\n */\r\nexport type ItemDescriptionProps = React.ComponentPropsWithoutRef<\"p\">;\r\n\r\n/**\r\n * Props for the {@link ItemActions} component.\r\n */\r\nexport type ItemActionsProps = React.ComponentPropsWithoutRef<\"div\">;\r\n\r\n/**\r\n * Props for the {@link ItemHeader} component.\r\n */\r\nexport type ItemHeaderProps = React.ComponentPropsWithoutRef<\"div\">;\r\n\r\n/**\r\n * Props for the {@link ItemFooter} component.\r\n */\r\nexport type ItemFooterProps = React.ComponentPropsWithoutRef<\"div\">;\r\n\r\n/**\r\n * Groups a collection of list-like items with consistent spacing.\r\n *\r\n * @remarks\r\n * - Pure CSS component (no Base UI primitive)\r\n * - Renders a `<div>` element\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <ItemGroup>\r\n * <Item />\r\n * </ItemGroup>\r\n * ```\r\n *\r\n * @see {@link ItemGroupProps} for available props\r\n */\r\nconst ItemGroup = React.forwardRef<HTMLDivElement, ItemGroupProps>(\r\n ({className, ...props}: Readonly<ItemGroupProps>, ref): React.JSX.Element => (\r\n <div\r\n ref={ref}\r\n role='list'\r\n data-slot='item-group'\r\n className={cn(styles.group, className)}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\n/**\r\n * Inserts a separator between adjacent items.\r\n *\r\n * @remarks\r\n * - Pure CSS component (no Base UI primitive)\r\n * - Renders a wrapped `Separator` component\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <ItemSeparator />\r\n * ```\r\n *\r\n * @see {@link ItemSeparatorProps} for available props\r\n */\r\nconst ItemSeparator = React.forwardRef<HTMLDivElement, ItemSeparatorProps>(\r\n ({className, ...props}: Readonly<ItemSeparatorProps>, ref): React.JSX.Element => (\r\n <Separator\r\n ref={ref}\r\n data-slot='item-separator'\r\n orientation='horizontal'\r\n className={cn(styles.separator, className)}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\n/**\r\n * Creates a flexible data-display row with optional media and actions.\r\n *\r\n * @remarks\r\n * - Pure CSS component (no Base UI primitive)\r\n * - Renders a `<div>` element by default\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <Item variant='outline'>Content</Item>\r\n * ```\r\n *\r\n * @see {@link ItemProps} for available props\r\n */\r\nconst Item = React.forwardRef<HTMLDivElement, ItemProps>(\r\n (\r\n {className, variant = \"default\", size = \"default\", asChild = false, children, ...props}: Readonly<ItemProps>,\r\n ref,\r\n ): React.JSX.Element => {\r\n const mergedClassName = cn(\r\n styles.item,\r\n variant === \"outline\" && styles.outline,\r\n variant === \"muted\" && styles.muted,\r\n size === \"sm\" ? styles.sizeSm : styles.sizeDefault,\r\n className,\r\n );\r\n\r\n if (asChild && React.isValidElement(children)) {\r\n const child = children as React.ReactElement<\r\n React.ComponentPropsWithoutRef<\"div\"> & ItemDataAttributes & {ref?: React.Ref<HTMLDivElement>}\r\n >;\r\n\r\n // eslint-disable-next-line react-x/no-clone-element -- replaces Radix Slot while preserving asChild prop merging\r\n return React.cloneElement(child, {\r\n ...props,\r\n ref,\r\n \"data-size\": size,\r\n \"data-slot\": \"item\",\r\n \"data-variant\": variant,\r\n className: cn(mergedClassName, child.props.className),\r\n });\r\n }\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n data-slot='item'\r\n data-size={size}\r\n data-variant={variant}\r\n className={mergedClassName}\r\n {...props}>\r\n {children}\r\n </div>\r\n );\r\n },\r\n);\r\n\r\n/**\r\n * Renders the leading media slot for an item.\r\n *\r\n * @remarks\r\n * - Pure CSS component (no Base UI primitive)\r\n * - Renders a `<div>` element\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <ItemMedia variant='icon'>⭐</ItemMedia>\r\n * ```\r\n *\r\n * @see {@link ItemMediaProps} for available props\r\n */\r\nconst ItemMedia = React.forwardRef<HTMLDivElement, ItemMediaProps>(\r\n ({className, variant = \"default\", ...props}: Readonly<ItemMediaProps>, ref): React.JSX.Element => (\r\n <div\r\n ref={ref}\r\n data-slot='item-media'\r\n data-variant={variant}\r\n className={cn(styles.media, variant === \"icon\" && styles.mediaIcon, variant === \"image\" && styles.mediaImage, className)}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\n/**\r\n * Wraps the main textual content for an item.\r\n *\r\n * @remarks\r\n * - Pure CSS component (no Base UI primitive)\r\n * - Renders a `<div>` element\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <ItemContent>Details</ItemContent>\r\n * ```\r\n *\r\n * @see {@link ItemContentProps} for available props\r\n */\r\nconst ItemContent = React.forwardRef<HTMLDivElement, ItemContentProps>(\r\n ({className, ...props}: Readonly<ItemContentProps>, ref): React.JSX.Element => (\r\n <div\r\n ref={ref}\r\n data-slot='item-content'\r\n className={cn(styles.content, className)}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\n/**\r\n * Displays the primary title text for an item.\r\n *\r\n * @remarks\r\n * - Pure CSS component (no Base UI primitive)\r\n * - Renders a `<div>` element\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <ItemTitle>Title</ItemTitle>\r\n * ```\r\n *\r\n * @see {@link ItemTitleProps} for available props\r\n */\r\nconst ItemTitle = React.forwardRef<HTMLDivElement, ItemTitleProps>(\r\n ({className, ...props}: Readonly<ItemTitleProps>, ref): React.JSX.Element => (\r\n <div\r\n ref={ref}\r\n data-slot='item-title'\r\n className={cn(styles.title, className)}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\n/**\r\n * Displays secondary descriptive content for an item.\r\n *\r\n * @remarks\r\n * - Pure CSS component (no Base UI primitive)\r\n * - Renders a `<p>` element\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <ItemDescription>Support text</ItemDescription>\r\n * ```\r\n *\r\n * @see {@link ItemDescriptionProps} for available props\r\n */\r\nconst ItemDescription = React.forwardRef<HTMLParagraphElement, ItemDescriptionProps>(\r\n ({className, ...props}: Readonly<ItemDescriptionProps>, ref): React.JSX.Element => (\r\n <p\r\n ref={ref}\r\n data-slot='item-description'\r\n className={cn(styles.description, className)}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\n/**\r\n * Hosts action controls aligned to the trailing edge of an item.\r\n *\r\n * @remarks\r\n * - Pure CSS component (no Base UI primitive)\r\n * - Renders a `<div>` element\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <ItemActions>\r\n * <button type='button'>Edit</button>\r\n * </ItemActions>\r\n * ```\r\n *\r\n * @see {@link ItemActionsProps} for available props\r\n */\r\nconst ItemActions = React.forwardRef<HTMLDivElement, ItemActionsProps>(\r\n ({className, ...props}: Readonly<ItemActionsProps>, ref): React.JSX.Element => (\r\n <div\r\n ref={ref}\r\n data-slot='item-actions'\r\n className={cn(styles.actions, className)}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\n/**\r\n * Wraps leading title and description content for an item.\r\n *\r\n * @remarks\r\n * - Pure CSS component (no Base UI primitive)\r\n * - Renders a `<div>` element\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <ItemHeader>\r\n * <ItemTitle>Profile</ItemTitle>\r\n * </ItemHeader>\r\n * ```\r\n *\r\n * @see {@link ItemHeaderProps} for available props\r\n */\r\nconst ItemHeader = React.forwardRef<HTMLDivElement, ItemHeaderProps>(\r\n ({className, ...props}: Readonly<ItemHeaderProps>, ref): React.JSX.Element => (\r\n <div\r\n ref={ref}\r\n data-slot='item-header'\r\n className={cn(styles.header, className)}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\n/**\r\n * Wraps trailing metadata or supplementary content for an item.\r\n *\r\n * @remarks\r\n * - Pure CSS component (no Base UI primitive)\r\n * - Renders a `<div>` element\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <ItemFooter>Updated 2m ago</ItemFooter>\r\n * ```\r\n *\r\n * @see {@link ItemFooterProps} for available props\r\n */\r\nconst ItemFooter = React.forwardRef<HTMLDivElement, ItemFooterProps>(\r\n ({className, ...props}: Readonly<ItemFooterProps>, ref): React.JSX.Element => (\r\n <div\r\n ref={ref}\r\n data-slot='item-footer'\r\n className={cn(styles.footer, className)}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\nItemGroup.displayName = \"ItemGroup\";\r\nItemSeparator.displayName = \"ItemSeparator\";\r\nItem.displayName = \"Item\";\r\nItemMedia.displayName = \"ItemMedia\";\r\nItemContent.displayName = \"ItemContent\";\r\nItemTitle.displayName = \"ItemTitle\";\r\nItemDescription.displayName = \"ItemDescription\";\r\nItemActions.displayName = \"ItemActions\";\r\nItemHeader.displayName = \"ItemHeader\";\r\nItemFooter.displayName = \"ItemFooter\";\r\n\r\nexport {Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle};\r\n"],"names":["ItemGroup","React","className","props","ref","cn","styles","ItemSeparator","Separator","Item","variant","size","asChild","children","mergedClassName","child","ItemMedia","ItemContent","ItemTitle","ItemDescription","ItemActions","ItemHeader","ItemFooter"],"mappings":";;;;;AA8FA,MAAMA,YAAY,WAAHA,GAAGC,wBAAAA,UAAgB,CAChC,CAAC,EAACC,SAAS,EAAE,GAAGC,OAAgC,EAAEC,MAAAA,WAAAA,GAChD,IAAC;QACC,KAAKA;QACL,MAAK;QACL,aAAU;QACV,WAAWC,GAAGC,YAAAA,KAAY,EAAEJ;QAC3B,GAAGC,KAAK;;AAoBf,MAAMI,gBAAgB,WAAHA,GAAGN,wBAAAA,UAAgB,CACpC,CAAC,EAACC,SAAS,EAAE,GAAGC,OAAoC,EAAEC,MAAAA,WAAAA,GACpD,IAACI,WAASA;QACR,KAAKJ;QACL,aAAU;QACV,aAAY;QACZ,WAAWC,GAAGC,YAAAA,SAAgB,EAAEJ;QAC/B,GAAGC,KAAK;;AAoBf,MAAMM,OAAO,WAAHA,GAAGR,wBAAAA,UAAgB,CAC3B,CACE,EAACC,SAAS,EAAEQ,UAAU,SAAS,EAAEC,OAAO,SAAS,EAAEC,UAAU,KAAK,EAAEC,QAAQ,EAAE,GAAGV,OAA2B,EAC5GC;IAEA,MAAMU,kBAAkBT,GACtBC,YAAAA,IAAW,EACXI,AAAY,cAAZA,WAAyBJ,YAAAA,OAAc,EACvCI,AAAY,YAAZA,WAAuBJ,YAAAA,KAAY,EACnCK,AAAS,SAATA,OAAgBL,YAAAA,MAAa,GAAGA,YAAAA,WAAkB,EAClDJ;IAGF,IAAIU,WAAW,WAAXA,GAAWX,wBAAAA,cAAoB,CAACY,WAAW;QAC7C,MAAME,QAAQF;QAKd,OAAO,WAAP,GAAOZ,wBAAAA,YAAkB,CAACc,OAAO;YAC/B,GAAGZ,KAAK;YACRC;YACA,aAAaO;YACb,aAAa;YACb,gBAAgBD;YAChB,WAAWL,GAAGS,iBAAiBC,MAAM,KAAK,CAAC,SAAS;QACtD;IACF;IAEA,OAAO,WAAP,GACE,IAAC;QACC,KAAKX;QACL,aAAU;QACV,aAAWO;QACX,gBAAcD;QACd,WAAWI;QACV,GAAGX,KAAK;kBACRU;;AAGP;AAkBF,MAAMG,YAAY,WAAHA,GAAGf,wBAAAA,UAAgB,CAChC,CAAC,EAACC,SAAS,EAAEQ,UAAU,SAAS,EAAE,GAAGP,OAAgC,EAAEC,MAAAA,WAAAA,GACrE,IAAC;QACC,KAAKA;QACL,aAAU;QACV,gBAAcM;QACd,WAAWL,GAAGC,YAAAA,KAAY,EAAEI,AAAY,WAAZA,WAAsBJ,YAAAA,SAAgB,EAAEI,AAAY,YAAZA,WAAuBJ,YAAAA,UAAiB,EAAEJ;QAC7G,GAAGC,KAAK;;AAoBf,MAAMc,cAAc,WAAHA,GAAGhB,wBAAAA,UAAgB,CAClC,CAAC,EAACC,SAAS,EAAE,GAAGC,OAAkC,EAAEC,MAAAA,WAAAA,GAClD,IAAC;QACC,KAAKA;QACL,aAAU;QACV,WAAWC,GAAGC,YAAAA,OAAc,EAAEJ;QAC7B,GAAGC,KAAK;;AAoBf,MAAMe,YAAY,WAAHA,GAAGjB,wBAAAA,UAAgB,CAChC,CAAC,EAACC,SAAS,EAAE,GAAGC,OAAgC,EAAEC,MAAAA,WAAAA,GAChD,IAAC;QACC,KAAKA;QACL,aAAU;QACV,WAAWC,GAAGC,YAAAA,KAAY,EAAEJ;QAC3B,GAAGC,KAAK;;AAoBf,MAAMgB,kBAAkB,WAAHA,GAAGlB,wBAAAA,UAAgB,CACtC,CAAC,EAACC,SAAS,EAAE,GAAGC,OAAsC,EAAEC,MAAAA,WAAAA,GACtD,IAAC;QACC,KAAKA;QACL,aAAU;QACV,WAAWC,GAAGC,YAAAA,WAAkB,EAAEJ;QACjC,GAAGC,KAAK;;AAsBf,MAAMiB,cAAc,WAAHA,GAAGnB,wBAAAA,UAAgB,CAClC,CAAC,EAACC,SAAS,EAAE,GAAGC,OAAkC,EAAEC,MAAAA,WAAAA,GAClD,IAAC;QACC,KAAKA;QACL,aAAU;QACV,WAAWC,GAAGC,YAAAA,OAAc,EAAEJ;QAC7B,GAAGC,KAAK;;AAsBf,MAAMkB,aAAa,WAAHA,GAAGpB,wBAAAA,UAAgB,CACjC,CAAC,EAACC,SAAS,EAAE,GAAGC,OAAiC,EAAEC,MAAAA,WAAAA,GACjD,IAAC;QACC,KAAKA;QACL,aAAU;QACV,WAAWC,GAAGC,YAAAA,MAAa,EAAEJ;QAC5B,GAAGC,KAAK;;AAoBf,MAAMmB,aAAa,WAAHA,GAAGrB,wBAAAA,UAAgB,CACjC,CAAC,EAACC,SAAS,EAAE,GAAGC,OAAiC,EAAEC,MAAAA,WAAAA,GACjD,IAAC;QACC,KAAKA;QACL,aAAU;QACV,WAAWC,GAAGC,YAAAA,MAAa,EAAEJ;QAC5B,GAAGC,KAAK;;AAKfH,UAAU,WAAW,GAAG;AACxBO,cAAc,WAAW,GAAG;AAC5BE,KAAK,WAAW,GAAG;AACnBO,UAAU,WAAW,GAAG;AACxBC,YAAY,WAAW,GAAG;AAC1BC,UAAU,WAAW,GAAG;AACxBC,gBAAgB,WAAW,GAAG;AAC9BC,YAAY,WAAW,GAAG;AAC1BC,WAAW,WAAW,GAAG;AACzBC,WAAW,WAAW,GAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack
|
|
1
|
+
{"version":3,"sources":["webpack://./../../node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[1].oneOf[2].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[1].oneOf[2].use[2]!/home/runner/work/arolariu.ro/arolariu.ro/node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/postcss-loader/index.js??ruleSet[1].rules[1].oneOf[2].use[3]!/home/runner/work/arolariu.ro/arolariu.ro/packages/components/src/components/ui/item.module.css","webpack://./src/components/ui/item.module.css"],"names":[],"mappings":"AAAA;ECCE,sBAAsB;EACtB,aAAa;AACf;;ADH0C;ECMxC,oBAAoB;AACtB;;ADPwE;ECUtE,kCAAkC;EAClC,2BAA2B;EAC3B,4BAA4B;EAC5B,mBAAmB;EACnB,sBAAsB;EACtB,kIAAkI;EAClI,uBAAuB;EACvB,uBAAuB;EACvB,aAAa;EACb,eAAe;EACf,aAAa;AACf;;ADrBqb;ECwBnb,cAAc;EACd,qBAAqB;AACvB;;AD1Bge;EC6B9d,4BAA4B;EAC5B,oCAAoC;AACtC;;AD/BojB;ECkCljB,8BAA8B;AAChC;;ADnC2lB;ECsCzlB,qEAAqE;AACvE;;ADvCuqB;EC0CrqB,sBAAsB;EACtB,0BAA0B;AAC5B;;AD5CouB;EC+CluB,sCAAsC;EACtC,4DAA4D;AAC9D;;ADjD80B;ECoD50B,mBAAmB;EACnB,sBAAsB;EACtB,uBAAuB;EACvB,aAAa;AACf;;ADxDk6B;EC2Dh6B,cAAc;AAChB;;AD5Dk8B;EC+Dh8B,iCAAiC;EACjC,kCAAkC;EAClC,kCAAkC;EAClC,WAAW;EACX,YAAY;AACd;;ADpEykC;ECuEvkC,WAAW;EACX,YAAY;AACd;;ADzE+mC;EC4E7mC,kCAAkC;EAClC,aAAa;EACb,cAAc;EACd,gBAAgB;AAClB;;ADhFwsC;ECmFtsC,iBAAiB;EACjB,WAAW;EACX,YAAY;AACd;;ADtFgwC;ECyF9vC,sBAAsB;EACtB,sBAAsB;EACtB,OAAO;EACP,YAAY;EACZ,aAAa;AACf;;AD9F01C;ECiGx1C,UAAU;AACZ;;ADlGs3C;ECqGp3C,mBAAmB;EACnB,sBAAsB;EACtB,kBAAkB;EAClB,gBAAgB;EAChB,gBAAgB;EAChB,aAAa;AACf;;AD3Gq+C;EC8Gn+C,4BAA4B;AAC9B;;AD/GqhD;ECkHnhD,iCAAiC;EACjC,gBAAgB;AAClB;;ADpHmlD;ECuHjlD,cAAc;EACd,0BAA0B;EAC1B,0BAA0B;AAC5B;;AD1HoqD;EAAqB;IC8HrrD,2BAA2B;EAC7B;AACF;;ADhI0uD;ECmIxuD,mBAAmB;EACnB,sBAAsB;EACtB,aAAa;AACf;;ADtIyzD;ECyIvzD,gBAAgB;EAChB,8BAA8B;AAChC","sourcesContent":[".group{display:flex;flex-direction:column}.separator{margin:0!important}.item{align-items:center;background-color:transparent;border:1px solid transparent;border-radius:var(--ac-radius-md);color:var(--ac-foreground);display:flex;flex-wrap:wrap;font-size:var(--ac-text-sm);gap:var(--ac-space-4);outline:none;transition:border-color var(--ac-transition-fast),background-color var(--ac-transition-fast),box-shadow var(--ac-transition-fast)}.item a{color:inherit;text-decoration:none}.item:focus-visible{border-color:var(--ac-ring);box-shadow:0 0 0 1px var(--ac-ring)}.outline{border-color:var(--ac-border)}.muted{background-color:color-mix(in oklch,var(--ac-muted),transparent 25%)}.sizeDefault{gap:var(--ac-space-4);padding:var(--ac-space-4)}.sizeSm{gap:calc(var(--ac-space-2) + .125rem);padding:calc(var(--ac-space-2) + .125rem) var(--ac-space-4)}.media{align-items:center;display:flex;gap:var(--ac-space-2);justify-content:center}.media,.media svg{flex-shrink:0}.mediaIcon{background-color:var(--ac-muted);border:1px solid var(--ac-border);border-radius:var(--ac-radius-sm);height:2rem;width:2rem}.mediaIcon svg{height:1rem;width:1rem}.mediaImage{border-radius:var(--ac-radius-sm);height:2.5rem;overflow:hidden;width:2.5rem}.mediaImage img{height:100%;object-fit:cover;width:100%}.content{display:flex;flex:1 1 0%;flex-direction:column;gap:var(--ac-space-1);min-width:0}.content+.content{flex:none}.title{align-items:center;display:flex;font-weight:500;gap:var(--ac-space-2);line-height:1.4;width:fit-content}.description,.title{font-size:var(--ac-text-sm)}.description{color:var(--ac-muted-foreground);line-height:1.5}.description a{color:inherit;text-decoration:underline;text-underline-offset:4px}@media (hover:hover){.description a:hover{color:var(--ac-foreground)}}.actions,.footer,.header{align-items:center;display:flex;gap:var(--ac-space-2)}.footer,.header{flex-basis:100%;justify-content:space-between}",".group {\n flex-direction: column;\n display: flex;\n}\n\n.separator {\n margin: 0 !important;\n}\n\n.item {\n border-radius: var(--ac-radius-md);\n color: var(--ac-foreground);\n font-size: var(--ac-text-sm);\n align-items: center;\n gap: var(--ac-space-4);\n transition: border-color var(--ac-transition-fast),background-color var(--ac-transition-fast),box-shadow var(--ac-transition-fast);\n background-color: #0000;\n border: 1px solid #0000;\n outline: none;\n flex-wrap: wrap;\n display: flex;\n}\n\n.item a {\n color: inherit;\n text-decoration: none;\n}\n\n.item:focus-visible {\n border-color: var(--ac-ring);\n box-shadow: 0 0 0 1px var(--ac-ring);\n}\n\n.outline {\n border-color: var(--ac-border);\n}\n\n.muted {\n background-color: color-mix(in oklch,var(--ac-muted),transparent 25%);\n}\n\n.sizeDefault {\n gap: var(--ac-space-4);\n padding: var(--ac-space-4);\n}\n\n.sizeSm {\n gap: calc(var(--ac-space-2) + .125rem);\n padding: calc(var(--ac-space-2) + .125rem) var(--ac-space-4);\n}\n\n.media {\n align-items: center;\n gap: var(--ac-space-2);\n justify-content: center;\n display: flex;\n}\n\n.media, .media svg {\n flex-shrink: 0;\n}\n\n.mediaIcon {\n background-color: var(--ac-muted);\n border: 1px solid var(--ac-border);\n border-radius: var(--ac-radius-sm);\n width: 2rem;\n height: 2rem;\n}\n\n.mediaIcon svg {\n width: 1rem;\n height: 1rem;\n}\n\n.mediaImage {\n border-radius: var(--ac-radius-sm);\n width: 2.5rem;\n height: 2.5rem;\n overflow: hidden;\n}\n\n.mediaImage img {\n object-fit: cover;\n width: 100%;\n height: 100%;\n}\n\n.content {\n gap: var(--ac-space-1);\n flex-direction: column;\n flex: 1;\n min-width: 0;\n display: flex;\n}\n\n.content + .content {\n flex: none;\n}\n\n.title {\n align-items: center;\n gap: var(--ac-space-2);\n width: fit-content;\n font-weight: 500;\n line-height: 1.4;\n display: flex;\n}\n\n.description, .title {\n font-size: var(--ac-text-sm);\n}\n\n.description {\n color: var(--ac-muted-foreground);\n line-height: 1.5;\n}\n\n.description a {\n color: inherit;\n text-underline-offset: 4px;\n text-decoration: underline;\n}\n\n@media (hover: hover) {\n .description a:hover {\n color: var(--ac-foreground);\n }\n}\n\n.actions, .footer, .header {\n align-items: center;\n gap: var(--ac-space-2);\n display: flex;\n}\n\n.footer, .header {\n flex-basis: 100%;\n justify-content: space-between;\n}\n"],"sourceRoot":""}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
|
-
import { forwardRef } from "react";
|
|
3
2
|
import { cn } from "../../lib/utilities.js";
|
|
4
3
|
import kbd_module from "./kbd.module.js";
|
|
5
|
-
|
|
4
|
+
import * as __rspack_external_react from "react";
|
|
5
|
+
const Kbd = /*#__PURE__*/ __rspack_external_react.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("kbd", {
|
|
6
6
|
ref: ref,
|
|
7
7
|
"data-slot": "kbd",
|
|
8
8
|
className: cn(kbd_module.kbd, className),
|
|
9
9
|
...props
|
|
10
10
|
}));
|
|
11
|
-
const KbdGroup = /*#__PURE__*/ forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("kbd", {
|
|
11
|
+
const KbdGroup = /*#__PURE__*/ __rspack_external_react.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("kbd", {
|
|
12
12
|
ref: ref,
|
|
13
13
|
"data-slot": "kbd-group",
|
|
14
14
|
className: cn(kbd_module.group, className),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/ui/kbd.js","sources":["../../../src/components/ui/kbd.tsx"],"sourcesContent":["import * as React from \"react\";\r\n\r\nimport {cn} from \"@/lib/utilities\";\r\nimport styles from \"./kbd.module.css\";\r\n\r\n/**\r\n * Props for the {@link Kbd} component.\r\n */\r\nexport type KbdProps = React.ComponentPropsWithoutRef<\"kbd\">;\r\n\r\n/**\r\n * Props for the {@link KbdGroup} component.\r\n */\r\nexport type KbdGroupProps = React.ComponentPropsWithoutRef<\"kbd\">;\r\n\r\n/**\r\n * Renders an inline keyboard keycap label.\r\n *\r\n * @remarks\r\n * - Pure CSS component (no Base UI primitive)\r\n * - Renders a `<kbd>` element\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <Kbd>⌘K</Kbd>\r\n * ```\r\n *\r\n * @see {@link KbdProps} for available props\r\n */\r\nconst Kbd = React.forwardRef<HTMLElement, KbdProps>(\r\n ({className, ...props}: Readonly<KbdProps>, ref): React.JSX.Element => (\r\n <kbd\r\n ref={ref}\r\n data-slot='kbd'\r\n className={cn(styles.kbd, className)}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\n/**\r\n * Groups multiple keyboard keycap labels into a shared visual cluster.\r\n *\r\n * @remarks\r\n * - Pure CSS component (no Base UI primitive)\r\n * - Renders a `<kbd>` element\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <KbdGroup>\r\n * <Kbd>⌘</Kbd>\r\n * <Kbd>K</Kbd>\r\n * </KbdGroup>\r\n * ```\r\n *\r\n * @see {@link KbdGroupProps} for available props\r\n */\r\nconst KbdGroup = React.forwardRef<HTMLElement, KbdGroupProps>(\r\n ({className, ...props}: Readonly<KbdGroupProps>, ref): React.JSX.Element => (\r\n <kbd\r\n ref={ref}\r\n data-slot='kbd-group'\r\n className={cn(styles.group, className)}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\nKbd.displayName = \"Kbd\";\r\nKbdGroup.displayName = \"KbdGroup\";\r\n\r\nexport {Kbd, KbdGroup};\r\n"],"names":["Kbd","React","className","props","ref","cn","styles","KbdGroup"],"mappings":";;;;AA8BA,MAAMA,MAAM,WAAHA,GAAGC,
|
|
1
|
+
{"version":3,"file":"components/ui/kbd.js","sources":["../../../src/components/ui/kbd.tsx"],"sourcesContent":["import * as React from \"react\";\r\n\r\nimport {cn} from \"@/lib/utilities\";\r\nimport styles from \"./kbd.module.css\";\r\n\r\n/**\r\n * Props for the {@link Kbd} component.\r\n */\r\nexport type KbdProps = React.ComponentPropsWithoutRef<\"kbd\">;\r\n\r\n/**\r\n * Props for the {@link KbdGroup} component.\r\n */\r\nexport type KbdGroupProps = React.ComponentPropsWithoutRef<\"kbd\">;\r\n\r\n/**\r\n * Renders an inline keyboard keycap label.\r\n *\r\n * @remarks\r\n * - Pure CSS component (no Base UI primitive)\r\n * - Renders a `<kbd>` element\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <Kbd>⌘K</Kbd>\r\n * ```\r\n *\r\n * @see {@link KbdProps} for available props\r\n */\r\nconst Kbd = React.forwardRef<HTMLElement, KbdProps>(\r\n ({className, ...props}: Readonly<KbdProps>, ref): React.JSX.Element => (\r\n <kbd\r\n ref={ref}\r\n data-slot='kbd'\r\n className={cn(styles.kbd, className)}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\n/**\r\n * Groups multiple keyboard keycap labels into a shared visual cluster.\r\n *\r\n * @remarks\r\n * - Pure CSS component (no Base UI primitive)\r\n * - Renders a `<kbd>` element\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <KbdGroup>\r\n * <Kbd>⌘</Kbd>\r\n * <Kbd>K</Kbd>\r\n * </KbdGroup>\r\n * ```\r\n *\r\n * @see {@link KbdGroupProps} for available props\r\n */\r\nconst KbdGroup = React.forwardRef<HTMLElement, KbdGroupProps>(\r\n ({className, ...props}: Readonly<KbdGroupProps>, ref): React.JSX.Element => (\r\n <kbd\r\n ref={ref}\r\n data-slot='kbd-group'\r\n className={cn(styles.group, className)}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\nKbd.displayName = \"Kbd\";\r\nKbdGroup.displayName = \"KbdGroup\";\r\n\r\nexport {Kbd, KbdGroup};\r\n"],"names":["Kbd","React","className","props","ref","cn","styles","KbdGroup"],"mappings":";;;;AA8BA,MAAMA,MAAM,WAAHA,GAAGC,wBAAAA,UAAgB,CAC1B,CAAC,EAACC,SAAS,EAAE,GAAGC,OAA0B,EAAEC,MAAAA,WAAAA,GAC1C,IAAC;QACC,KAAKA;QACL,aAAU;QACV,WAAWC,GAAGC,WAAAA,GAAU,EAAEJ;QACzB,GAAGC,KAAK;;AAuBf,MAAMI,WAAW,WAAHA,GAAGN,wBAAAA,UAAgB,CAC/B,CAAC,EAACC,SAAS,EAAE,GAAGC,OAA+B,EAAEC,MAAAA,WAAAA,GAC/C,IAAC;QACC,KAAKA;QACL,aAAU;QACV,WAAWC,GAAGC,WAAAA,KAAY,EAAEJ;QAC3B,GAAGC,KAAK;;AAKfH,IAAI,WAAW,GAAG;AAClBO,SAAS,WAAW,GAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack
|
|
1
|
+
{"version":3,"sources":["webpack://./../../node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[1].oneOf[2].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[1].oneOf[2].use[2]!/home/runner/work/arolariu.ro/arolariu.ro/node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/postcss-loader/index.js??ruleSet[1].rules[1].oneOf[2].use[3]!/home/runner/work/arolariu.ro/arolariu.ro/packages/components/src/components/ui/kbd.module.css","webpack://./src/components/ui/kbd.module.css"],"names":[],"mappings":"AAAA;ECCE,iCAAiC;EACjC,8BAA8B;EAC9B,kCAAkC;EAClC,iCAAiC;EACjC,2GAA2G;EAC3G,4BAA4B;EAC5B,mBAAmB;EACnB,sBAAsB;EACtB,yBAAyB;EACzB,4BAA4B;EAC5B,4BAA4B;EAC5B,oBAAoB;EACpB,yBAAyB;EACzB,iBAAiB;EACjB,yBAAyB;EACzB,uBAAuB;EACvB,kBAAkB;EAClB,gBAAgB;EAChB,oBAAoB;AACtB;;ADpB4gB;ECuB1gB,aAAa;EACb,cAAc;AAChB;;ADzBgjB;EC4B9iB,mBAAmB;EACnB,sBAAsB;EACtB,oBAAoB;AACtB","sourcesContent":[".kbd{align-items:center;background-color:var(--ac-muted);border:solid var(--ac-border);border-radius:var(--ac-radius-sm);border-width:1px 1px 2px;color:var(--ac-muted-foreground);display:inline-flex;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:var(--ac-text-xs);font-weight:600;gap:var(--ac-space-1);height:var(--ac-size-xs);justify-content:center;min-width:var(--ac-size-xs);padding:0 var(--ac-space-1);pointer-events:none;user-select:none;width:fit-content}.kbd svg{height:.75rem;width:.75rem}.group{align-items:center;display:inline-flex;gap:var(--ac-space-1)}",".kbd {\n background-color: var(--ac-muted);\n border: solid var(--ac-border);\n border-radius: var(--ac-radius-sm);\n color: var(--ac-muted-foreground);\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace;\n font-size: var(--ac-text-xs);\n align-items: center;\n gap: var(--ac-space-1);\n height: var(--ac-size-xs);\n min-width: var(--ac-size-xs);\n padding: 0 var(--ac-space-1);\n pointer-events: none;\n -webkit-user-select: none;\n user-select: none;\n border-width: 1px 1px 2px;\n justify-content: center;\n width: fit-content;\n font-weight: 600;\n display: inline-flex;\n}\n\n.kbd svg {\n width: .75rem;\n height: .75rem;\n}\n\n.group {\n align-items: center;\n gap: var(--ac-space-1);\n display: inline-flex;\n}\n"],"sourceRoot":""}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
|
-
import { forwardRef } from "react";
|
|
3
2
|
import { cn } from "../../lib/utilities.js";
|
|
4
3
|
import label_module from "./label.module.js";
|
|
5
|
-
|
|
4
|
+
import * as __rspack_external_react from "react";
|
|
5
|
+
const Label = /*#__PURE__*/ __rspack_external_react.forwardRef(({ children, className, htmlFor, ...props }, ref)=>/*#__PURE__*/ jsx("label", {
|
|
6
6
|
ref: ref,
|
|
7
7
|
className: cn(label_module.label, className),
|
|
8
8
|
htmlFor: htmlFor,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/ui/label.js","sources":["../../../src/components/ui/label.tsx"],"sourcesContent":["import * as React from \"react\";\r\n\r\nimport {cn} from \"@/lib/utilities\";\r\nimport styles from \"./label.module.css\";\r\n\r\n/**\r\n * Represents the configurable props for the Label component.\r\n *\r\n * @remarks\r\n * Extends native `<label>` attributes so the component can participate in accessible\r\n * form relationships while exposing a documented class override.\r\n */\r\nexport interface LabelProps extends React.LabelHTMLAttributes<HTMLLabelElement> {\r\n /**\r\n * Additional CSS classes merged with the default label typography.\r\n */\r\n className?: string;\r\n}\r\n\r\n/**\r\n * An accessible text label for form controls and field groups.\r\n *\r\n * @remarks\r\n * **Rendering Context**: Client Component.\r\n *\r\n * Renders a styled `<label>` element that pairs naturally with form inputs through\r\n * `htmlFor`. Use it to provide clear, clickable context for interactive controls.\r\n *\r\n * @example\r\n * ```tsx\r\n * <Label htmlFor=\"email\">Email address</Label>\r\n * ```\r\n *\r\n * @see {@link https://base-ui.com/react/components/label Base UI Label docs}\r\n */\r\nconst Label = React.forwardRef<HTMLLabelElement, LabelProps>(({children, className, htmlFor, ...props}, ref) => (\r\n <label\r\n ref={ref}\r\n className={cn(styles.label, className)}\r\n htmlFor={htmlFor}\r\n {...props}>\r\n {children}\r\n </label>\r\n));\r\nLabel.displayName = \"Label\";\r\n\r\nexport {Label};\r\n"],"names":["Label","React","children","className","htmlFor","props","ref","cn","styles"],"mappings":";;;;AAmCA,MAAMA,QAAQ,WAAHA,GAAGC,
|
|
1
|
+
{"version":3,"file":"components/ui/label.js","sources":["../../../src/components/ui/label.tsx"],"sourcesContent":["import * as React from \"react\";\r\n\r\nimport {cn} from \"@/lib/utilities\";\r\nimport styles from \"./label.module.css\";\r\n\r\n/**\r\n * Represents the configurable props for the Label component.\r\n *\r\n * @remarks\r\n * Extends native `<label>` attributes so the component can participate in accessible\r\n * form relationships while exposing a documented class override.\r\n */\r\nexport interface LabelProps extends React.LabelHTMLAttributes<HTMLLabelElement> {\r\n /**\r\n * Additional CSS classes merged with the default label typography.\r\n */\r\n className?: string;\r\n}\r\n\r\n/**\r\n * An accessible text label for form controls and field groups.\r\n *\r\n * @remarks\r\n * **Rendering Context**: Client Component.\r\n *\r\n * Renders a styled `<label>` element that pairs naturally with form inputs through\r\n * `htmlFor`. Use it to provide clear, clickable context for interactive controls.\r\n *\r\n * @example\r\n * ```tsx\r\n * <Label htmlFor=\"email\">Email address</Label>\r\n * ```\r\n *\r\n * @see {@link https://base-ui.com/react/components/label Base UI Label docs}\r\n */\r\nconst Label = React.forwardRef<HTMLLabelElement, LabelProps>(({children, className, htmlFor, ...props}, ref) => (\r\n <label\r\n ref={ref}\r\n className={cn(styles.label, className)}\r\n htmlFor={htmlFor}\r\n {...props}>\r\n {children}\r\n </label>\r\n));\r\nLabel.displayName = \"Label\";\r\n\r\nexport {Label};\r\n"],"names":["Label","React","children","className","htmlFor","props","ref","cn","styles"],"mappings":";;;;AAmCA,MAAMA,QAAQ,WAAHA,GAAGC,wBAAAA,UAAgB,CAA+B,CAAC,EAACC,QAAQ,EAAEC,SAAS,EAAEC,OAAO,EAAE,GAAGC,OAAM,EAAEC,MAAAA,WAAAA,GACtG,IAAC;QACC,KAAKA;QACL,WAAWC,GAAGC,aAAAA,KAAY,EAAEL;QAC5B,SAASC;QACR,GAAGC,KAAK;kBACRH;;AAGLF,MAAM,WAAW,GAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack
|
|
1
|
+
{"version":3,"sources":["webpack://./../../node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[1].oneOf[2].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[1].oneOf[2].use[2]!/home/runner/work/arolariu.ro/arolariu.ro/node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/postcss-loader/index.js??ruleSet[1].rules[1].oneOf[2].use[3]!/home/runner/work/arolariu.ro/arolariu.ro/packages/components/src/components/ui/label.module.css","webpack://./src/components/ui/label.module.css"],"names":[],"mappings":"AAAA;ECCE,2BAA2B;EAC3B,eAAe;EACf,4BAA4B;EAC5B,yBAAyB;EACzB,iBAAiB;EACjB,gBAAgB;EAChB,cAAc;AAChB;;ADR4H;ECW1H,mBAAmB;EACnB,WAAW;AACb","sourcesContent":[".label{color:var(--ac-foreground);cursor:default;font-size:var(--ac-text-sm);font-weight:500;line-height:1;user-select:none}.label[data-disabled]{cursor:not-allowed;opacity:.7}",".label {\n color: var(--ac-foreground);\n cursor: default;\n font-size: var(--ac-text-sm);\n -webkit-user-select: none;\n user-select: none;\n font-weight: 500;\n line-height: 1;\n}\n\n.label[data-disabled] {\n cursor: not-allowed;\n opacity: .7;\n}\n"],"sourceRoot":""}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { forwardRef } from "react";
|
|
3
2
|
import { cn } from "../../lib/utilities.js";
|
|
4
3
|
import list_skeleton_module from "./list-skeleton.module.js";
|
|
5
4
|
import { Skeleton } from "./skeleton.js";
|
|
6
|
-
|
|
5
|
+
import * as __rspack_external_react from "react";
|
|
6
|
+
const ListSkeleton = /*#__PURE__*/ __rspack_external_react.forwardRef(({ items = 5, showAvatar = true, className, ...props }, ref)=>/*#__PURE__*/ jsx("div", {
|
|
7
7
|
ref: ref,
|
|
8
8
|
className: cn(list_skeleton_module.list, className),
|
|
9
9
|
...props,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/ui/list-skeleton.js","sources":["../../../src/components/ui/list-skeleton.tsx"],"sourcesContent":["import * as React from \"react\";\r\n\r\nimport {cn} from \"@/lib/utilities\";\r\n\r\nimport styles from \"./list-skeleton.module.css\";\r\nimport {Skeleton} from \"./skeleton\";\r\n\r\n/**\r\n * Represents the configurable props for the {@link ListSkeleton} component.\r\n *\r\n * @remarks\r\n * Extends native `<div>` attributes so list-shaped placeholders can be embedded in\r\n * semantic containers and customized with layout or accessibility attributes.\r\n */\r\ninterface ListSkeletonProps extends React.HTMLAttributes<HTMLDivElement> {\r\n /**\r\n * Number of list item placeholders to render.\r\n *\r\n * @default 5\r\n */\r\n items?: number;\r\n /**\r\n * Whether each item should render a leading circular avatar placeholder.\r\n *\r\n * @default true\r\n */\r\n showAvatar?: boolean;\r\n}\r\n\r\n/**\r\n * Renders a skeleton placeholder shaped like a stacked list of items.\r\n *\r\n * @remarks\r\n * **Rendering Context**: Server- and client-compatible presentational component.\r\n *\r\n * Each item includes optional avatar media plus two text lines, making it suitable for\r\n * activity feeds, contact lists, or navigation menus that load incrementally.\r\n *\r\n * @example\r\n * ```tsx\r\n * <ListSkeleton items={8} showAvatar={false} aria-label=\"Loading notifications\" />\r\n * ```\r\n *\r\n * @see {@link ListSkeletonProps} for available props\r\n */\r\nconst ListSkeleton = React.forwardRef<HTMLDivElement, ListSkeletonProps>(\r\n ({items = 5, showAvatar = true, className, ...props}: Readonly<ListSkeletonProps>, ref): React.JSX.Element => (\r\n <div\r\n ref={ref}\r\n className={cn(styles.list, className)}\r\n {...props}>\r\n {Array.from({length: items}, (_, index) => (\r\n <div\r\n key={index}\r\n className={styles.item}>\r\n {showAvatar ? <Skeleton className={styles.avatar} /> : null}\r\n <div className={styles.text}>\r\n <Skeleton className={styles.primary} />\r\n <Skeleton className={styles.secondary} />\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n ),\r\n);\r\n\r\nListSkeleton.displayName = \"ListSkeleton\";\r\n\r\nexport {ListSkeleton};\r\nexport type {ListSkeletonProps};\r\n"],"names":["ListSkeleton","React","items","showAvatar","className","props","ref","cn","styles","Array","_","index","Skeleton"],"mappings":";;;;;AA6CA,MAAMA,eAAe,WAAHA,GAAGC,
|
|
1
|
+
{"version":3,"file":"components/ui/list-skeleton.js","sources":["../../../src/components/ui/list-skeleton.tsx"],"sourcesContent":["import * as React from \"react\";\r\n\r\nimport {cn} from \"@/lib/utilities\";\r\n\r\nimport styles from \"./list-skeleton.module.css\";\r\nimport {Skeleton} from \"./skeleton\";\r\n\r\n/**\r\n * Represents the configurable props for the {@link ListSkeleton} component.\r\n *\r\n * @remarks\r\n * Extends native `<div>` attributes so list-shaped placeholders can be embedded in\r\n * semantic containers and customized with layout or accessibility attributes.\r\n */\r\ninterface ListSkeletonProps extends React.HTMLAttributes<HTMLDivElement> {\r\n /**\r\n * Number of list item placeholders to render.\r\n *\r\n * @default 5\r\n */\r\n items?: number;\r\n /**\r\n * Whether each item should render a leading circular avatar placeholder.\r\n *\r\n * @default true\r\n */\r\n showAvatar?: boolean;\r\n}\r\n\r\n/**\r\n * Renders a skeleton placeholder shaped like a stacked list of items.\r\n *\r\n * @remarks\r\n * **Rendering Context**: Server- and client-compatible presentational component.\r\n *\r\n * Each item includes optional avatar media plus two text lines, making it suitable for\r\n * activity feeds, contact lists, or navigation menus that load incrementally.\r\n *\r\n * @example\r\n * ```tsx\r\n * <ListSkeleton items={8} showAvatar={false} aria-label=\"Loading notifications\" />\r\n * ```\r\n *\r\n * @see {@link ListSkeletonProps} for available props\r\n */\r\nconst ListSkeleton = React.forwardRef<HTMLDivElement, ListSkeletonProps>(\r\n ({items = 5, showAvatar = true, className, ...props}: Readonly<ListSkeletonProps>, ref): React.JSX.Element => (\r\n <div\r\n ref={ref}\r\n className={cn(styles.list, className)}\r\n {...props}>\r\n {Array.from({length: items}, (_, index) => (\r\n <div\r\n key={index}\r\n className={styles.item}>\r\n {showAvatar ? <Skeleton className={styles.avatar} /> : null}\r\n <div className={styles.text}>\r\n <Skeleton className={styles.primary} />\r\n <Skeleton className={styles.secondary} />\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n ),\r\n);\r\n\r\nListSkeleton.displayName = \"ListSkeleton\";\r\n\r\nexport {ListSkeleton};\r\nexport type {ListSkeletonProps};\r\n"],"names":["ListSkeleton","React","items","showAvatar","className","props","ref","cn","styles","Array","_","index","Skeleton"],"mappings":";;;;;AA6CA,MAAMA,eAAe,WAAHA,GAAGC,wBAAAA,UAAgB,CACnC,CAAC,EAACC,QAAQ,CAAC,EAAEC,aAAa,IAAI,EAAEC,SAAS,EAAE,GAAGC,OAAmC,EAAEC,MAAAA,WAAAA,GACjF,IAAC;QACC,KAAKA;QACL,WAAWC,GAAGC,qBAAAA,IAAW,EAAEJ;QAC1B,GAAGC,KAAK;kBACRI,MAAM,IAAI,CAAC;YAAC,QAAQP;QAAK,GAAG,CAACQ,GAAGC,QAAAA,WAAAA,GAC/B,KAAC;gBAEC,WAAWH,qBAAAA,IAAW;;oBACrBL,aAAa,WAAbA,GAAa,IAACS,UAAQA;wBAAC,WAAWJ,qBAAAA,MAAa;yBAAO;kCACvD,KAAC;wBAAI,WAAWA,qBAAAA,IAAW;;0CACzB,IAACI,UAAQA;gCAAC,WAAWJ,qBAAAA,OAAc;;0CACnC,IAACI,UAAQA;gCAAC,WAAWJ,qBAAAA,SAAgB;;;;;eALlCG;;AAafX,aAAa,WAAW,GAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack
|
|
1
|
+
{"version":3,"sources":["webpack://./../../node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[1].oneOf[2].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[1].oneOf[2].use[2]!/home/runner/work/arolariu.ro/arolariu.ro/node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/postcss-loader/index.js??ruleSet[1].rules[1].oneOf[2].use[3]!/home/runner/work/arolariu.ro/arolariu.ro/packages/components/src/components/ui/list-skeleton.module.css","webpack://./src/components/ui/list-skeleton.module.css"],"names":[],"mappings":"AAAA;ECCE,sBAAsB;AACxB;;ADF4B;ECK1B,sBAAsB;EACtB,aAAa;AACf;;ADP2E;ECUzE,mBAAmB;AACrB;;ADXoG;ECclG,kBAAkB;EAClB,cAAc;EACd,aAAa;EACb,cAAc;AAChB;;ADlBuK;ECqBrK,sBAAsB;EACtB,sBAAsB;EACtB,OAAO;EACP,aAAa;AACf;;ADzB6O;EC4B3O,UAAU;EACV,eAAe;AACjB;;AD9B+Q;ECiC7Q,UAAU;EACV,cAAc;AAChB","sourcesContent":[".list{flex-direction:column}.item,.list{display:flex;gap:var(--ac-space-3)}.item{align-items:center}.avatar{border-radius:50%;flex-shrink:0;height:2.5rem;width:2.5rem}.text{display:flex;flex:1;flex-direction:column;gap:var(--ac-space-1)}.primary{height:.875rem;width:60%}.secondary{height:.75rem;width:40%}",".list {\n flex-direction: column;\n}\n\n.item, .list {\n gap: var(--ac-space-3);\n display: flex;\n}\n\n.item {\n align-items: center;\n}\n\n.avatar {\n border-radius: 50%;\n flex-shrink: 0;\n width: 2.5rem;\n height: 2.5rem;\n}\n\n.text {\n gap: var(--ac-space-1);\n flex-direction: column;\n flex: 1;\n display: flex;\n}\n\n.primary {\n width: 60%;\n height: .875rem;\n}\n\n.secondary {\n width: 40%;\n height: .75rem;\n}\n"],"sourceRoot":""}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
|
-
import { forwardRef } from "react";
|
|
4
3
|
import { cn } from "../../lib/utilities.js";
|
|
5
4
|
import loading_overlay_module from "./loading-overlay.module.js";
|
|
6
5
|
import { Spinner } from "./spinner.js";
|
|
7
|
-
|
|
6
|
+
import * as __rspack_external_react from "react";
|
|
7
|
+
const LoadingOverlay = /*#__PURE__*/ __rspack_external_react.forwardRef(({ visible = true, blur = false, className, children, ...props }, ref)=>{
|
|
8
8
|
if (!visible) return null;
|
|
9
9
|
return /*#__PURE__*/ jsx("div", {
|
|
10
10
|
ref: ref,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/ui/loading-overlay.js","sources":["../../../src/components/ui/loading-overlay.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport * as React from \"react\";\r\n\r\nimport {cn} from \"@/lib/utilities\";\r\n\r\nimport styles from \"./loading-overlay.module.css\";\r\nimport {Spinner} from \"./spinner\";\r\n\r\n/**\r\n * Represents the configurable props for the {@link LoadingOverlay} component.\r\n *\r\n * @remarks\r\n * Extends native `<div>` attributes so overlays can be positioned inside relatively\r\n * positioned containers, annotated for accessibility, and visually customized.\r\n */\r\ninterface LoadingOverlayProps extends React.HTMLAttributes<HTMLDivElement> {\r\n /**\r\n * Whether the overlay should be rendered.\r\n *\r\n * @default true\r\n */\r\n visible?: boolean;\r\n /**\r\n * Whether a backdrop blur effect should be applied behind the overlay.\r\n *\r\n * @default false\r\n */\r\n blur?: boolean;\r\n}\r\n\r\n/**\r\n * Renders a centered loading overlay for pending asynchronous operations.\r\n *\r\n * @remarks\r\n * **Rendering Context**: Client component.\r\n *\r\n * Place this component inside a relatively positioned container to block interactions\r\n * while preserving the layout underneath. By default, it renders the shared spinner, but\r\n * custom children can replace that indicator when richer progress UI is needed.\r\n *\r\n * @example\r\n * ```tsx\r\n * <div className=\"relative\">\r\n * <LoadingOverlay visible blur />\r\n * <Content />\r\n * </div>\r\n * ```\r\n *\r\n * @see {@link LoadingOverlayProps} for available props\r\n */\r\nconst LoadingOverlay = React.forwardRef<HTMLDivElement, LoadingOverlayProps>(\r\n ({visible = true, blur = false, className, children, ...props}: Readonly<LoadingOverlayProps>, ref): React.JSX.Element | null => {\r\n if (!visible) {\r\n return null;\r\n }\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n className={cn(styles.overlay, blur && styles.blur, className)}\r\n {...props}>\r\n {children ?? <Spinner className={styles.spinner} />}\r\n </div>\r\n );\r\n },\r\n);\r\n\r\nLoadingOverlay.displayName = \"LoadingOverlay\";\r\n\r\nexport {LoadingOverlay};\r\nexport type {LoadingOverlayProps};\r\n"],"names":["LoadingOverlay","React","visible","blur","className","children","props","ref","cn","styles","Spinner"],"mappings":";;;;;;AAmDA,MAAMA,iBAAiB,WAAHA,GAAGC,
|
|
1
|
+
{"version":3,"file":"components/ui/loading-overlay.js","sources":["../../../src/components/ui/loading-overlay.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport * as React from \"react\";\r\n\r\nimport {cn} from \"@/lib/utilities\";\r\n\r\nimport styles from \"./loading-overlay.module.css\";\r\nimport {Spinner} from \"./spinner\";\r\n\r\n/**\r\n * Represents the configurable props for the {@link LoadingOverlay} component.\r\n *\r\n * @remarks\r\n * Extends native `<div>` attributes so overlays can be positioned inside relatively\r\n * positioned containers, annotated for accessibility, and visually customized.\r\n */\r\ninterface LoadingOverlayProps extends React.HTMLAttributes<HTMLDivElement> {\r\n /**\r\n * Whether the overlay should be rendered.\r\n *\r\n * @default true\r\n */\r\n visible?: boolean;\r\n /**\r\n * Whether a backdrop blur effect should be applied behind the overlay.\r\n *\r\n * @default false\r\n */\r\n blur?: boolean;\r\n}\r\n\r\n/**\r\n * Renders a centered loading overlay for pending asynchronous operations.\r\n *\r\n * @remarks\r\n * **Rendering Context**: Client component.\r\n *\r\n * Place this component inside a relatively positioned container to block interactions\r\n * while preserving the layout underneath. By default, it renders the shared spinner, but\r\n * custom children can replace that indicator when richer progress UI is needed.\r\n *\r\n * @example\r\n * ```tsx\r\n * <div className=\"relative\">\r\n * <LoadingOverlay visible blur />\r\n * <Content />\r\n * </div>\r\n * ```\r\n *\r\n * @see {@link LoadingOverlayProps} for available props\r\n */\r\nconst LoadingOverlay = React.forwardRef<HTMLDivElement, LoadingOverlayProps>(\r\n ({visible = true, blur = false, className, children, ...props}: Readonly<LoadingOverlayProps>, ref): React.JSX.Element | null => {\r\n if (!visible) {\r\n return null;\r\n }\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n className={cn(styles.overlay, blur && styles.blur, className)}\r\n {...props}>\r\n {children ?? <Spinner className={styles.spinner} />}\r\n </div>\r\n );\r\n },\r\n);\r\n\r\nLoadingOverlay.displayName = \"LoadingOverlay\";\r\n\r\nexport {LoadingOverlay};\r\nexport type {LoadingOverlayProps};\r\n"],"names":["LoadingOverlay","React","visible","blur","className","children","props","ref","cn","styles","Spinner"],"mappings":";;;;;;AAmDA,MAAMA,iBAAiB,WAAHA,GAAGC,wBAAAA,UAAgB,CACrC,CAAC,EAACC,UAAU,IAAI,EAAEC,OAAO,KAAK,EAAEC,SAAS,EAAEC,QAAQ,EAAE,GAAGC,OAAqC,EAAEC;IAC7F,IAAI,CAACL,SACH,OAAO;IAGT,OAAO,WAAP,GACE,IAAC;QACC,KAAKK;QACL,WAAWC,GAAGC,uBAAAA,OAAc,EAAEN,QAAQM,uBAAAA,IAAW,EAAEL;QAClD,GAAGE,KAAK;kBACRD,YAAY,WAAZA,GAAY,IAACK,SAAOA;YAAC,WAAWD,uBAAAA,OAAc;;;AAGrD;AAGFT,eAAe,WAAW,GAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack
|
|
1
|
+
{"version":3,"sources":["webpack://./../../node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[1].oneOf[2].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[1].oneOf[2].use[2]!/home/runner/work/arolariu.ro/arolariu.ro/node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/postcss-loader/index.js??ruleSet[1].rules[1].oneOf[2].use[3]!/home/runner/work/arolariu.ro/arolariu.ro/packages/components/src/components/ui/loading-overlay.module.css","webpack://./src/components/ui/loading-overlay.module.css"],"names":[],"mappings":"AAAA;ECCE,yDAAyD;EACzD,sBAAsB;EACtB,WAAW;EACX,uBAAuB;EACvB,mBAAmB;EACnB,aAAa;EACb,kBAAkB;EAClB,QAAQ;AACV;;ADToL;ECYlL,0BAA0B;AAC5B;;ADboN;ECgBlN,WAAW;EACX,YAAY;AACd","sourcesContent":[".overlay{align-items:center;background-color:rgb(from var(--ac-background) r g b/.7);border-radius:inherit;display:flex;inset:0;justify-content:center;position:absolute;z-index:10}.blur{backdrop-filter:blur(4px)}.spinner{height:2rem;width:2rem}",".overlay {\n background-color: rgb(from var(--ac-background) r g b/.7);\n border-radius: inherit;\n z-index: 10;\n justify-content: center;\n align-items: center;\n display: flex;\n position: absolute;\n inset: 0;\n}\n\n.blur {\n backdrop-filter: blur(4px);\n}\n\n.spinner {\n width: 2rem;\n height: 2rem;\n}\n"],"sourceRoot":""}
|
|
@@ -5,9 +5,9 @@ import { Menubar } from "@base-ui/react/menubar";
|
|
|
5
5
|
import { mergeProps } from "@base-ui/react/merge-props";
|
|
6
6
|
import { useRender } from "@base-ui/react/use-render";
|
|
7
7
|
import { Check, ChevronRight, Circle } from "lucide-react";
|
|
8
|
-
import { forwardRef, isValidElement } from "react";
|
|
9
8
|
import { cn } from "../../lib/utilities.js";
|
|
10
9
|
import menubar_module from "./menubar.module.js";
|
|
10
|
+
import * as __rspack_external_react from "react";
|
|
11
11
|
const MenubarMenu = Menu.Root;
|
|
12
12
|
const MenubarGroup = Menu.Group;
|
|
13
13
|
const MenubarPortal = Menu.Portal;
|
|
@@ -27,7 +27,7 @@ function menubar_Menubar(props) {
|
|
|
27
27
|
children: children
|
|
28
28
|
});
|
|
29
29
|
}
|
|
30
|
-
const MenubarTrigger = /*#__PURE__*/ forwardRef((props, ref)=>{
|
|
30
|
+
const MenubarTrigger = /*#__PURE__*/ __rspack_external_react.forwardRef((props, ref)=>{
|
|
31
31
|
const { className, children, render, ...otherProps } = props;
|
|
32
32
|
return /*#__PURE__*/ jsx(Menu.Trigger, {
|
|
33
33
|
ref: ref,
|
|
@@ -83,7 +83,7 @@ function MenubarSubContent(props) {
|
|
|
83
83
|
})
|
|
84
84
|
});
|
|
85
85
|
}
|
|
86
|
-
const MenubarContent = /*#__PURE__*/ forwardRef((props, ref)=>{
|
|
86
|
+
const MenubarContent = /*#__PURE__*/ __rspack_external_react.forwardRef((props, ref)=>{
|
|
87
87
|
const { alignOffset = -4, className, children, render, sideOffset = 8, ...otherProps } = props;
|
|
88
88
|
return /*#__PURE__*/ jsx(MenubarPortal, {
|
|
89
89
|
children: /*#__PURE__*/ jsx(Menu.Positioner, {
|
|
@@ -201,7 +201,7 @@ function MenubarSeparator(props) {
|
|
|
201
201
|
}
|
|
202
202
|
function MenubarShortcut(props) {
|
|
203
203
|
const { asChild = false, children, className, render, ...otherProps } = props;
|
|
204
|
-
const renderProp = asChild && /*#__PURE__*/ isValidElement(children) ? children : render;
|
|
204
|
+
const renderProp = asChild && /*#__PURE__*/ __rspack_external_react.isValidElement(children) ? children : render;
|
|
205
205
|
return useRender({
|
|
206
206
|
defaultTagName: "span",
|
|
207
207
|
render: renderProp,
|