@jbpark/ui-kit 10.2.0 → 10.3.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/dist/Alert.d.mts +2 -2
- package/dist/Alert.d.mts.map +1 -1
- package/dist/Alert.mjs +1 -1
- package/dist/Anchor.d.mts +29 -0
- package/dist/Anchor.d.mts.map +1 -0
- package/dist/Anchor.mjs +120 -0
- package/dist/Anchor.mjs.map +1 -0
- package/dist/AutoComplete.d.mts +34 -0
- package/dist/AutoComplete.d.mts.map +1 -0
- package/dist/AutoComplete.mjs +82 -0
- package/dist/AutoComplete.mjs.map +1 -0
- package/dist/Avatar.d.mts +2 -2
- package/dist/Avatar.d.mts.map +1 -1
- package/dist/Avatar.mjs +2 -2
- package/dist/Badge.d.mts +2 -2
- package/dist/Badge.d.mts.map +1 -1
- package/dist/Breadcrumb.d.mts +3 -3
- package/dist/Breadcrumb.d.mts.map +1 -1
- package/dist/Breadcrumb.mjs +1 -1
- package/dist/Breadcrumb.mjs.map +1 -1
- package/dist/Button.d.mts +3 -3
- package/dist/Button.d.mts.map +1 -1
- package/dist/Button.mjs +1 -1
- package/dist/Calendar.d.mts +28 -0
- package/dist/Calendar.d.mts.map +1 -0
- package/dist/Calendar.mjs +64 -0
- package/dist/Calendar.mjs.map +1 -0
- package/dist/Card.d.mts +2 -2
- package/dist/Card.d.mts.map +1 -1
- package/dist/Cascader.d.mts +34 -0
- package/dist/Cascader.d.mts.map +1 -0
- package/dist/Cascader.mjs +144 -0
- package/dist/Cascader.mjs.map +1 -0
- package/dist/CodeEditor.d.mts +2 -2
- package/dist/CodeEditor.d.mts.map +1 -1
- package/dist/ContextMenu.d.mts +33 -0
- package/dist/ContextMenu.d.mts.map +1 -0
- package/dist/ContextMenu.mjs +92 -0
- package/dist/ContextMenu.mjs.map +1 -0
- package/dist/Descriptions.d.mts +31 -0
- package/dist/Descriptions.d.mts.map +1 -0
- package/dist/Descriptions.mjs +67 -0
- package/dist/Descriptions.mjs.map +1 -0
- package/dist/Divider.d.mts +18 -0
- package/dist/Divider.d.mts.map +1 -0
- package/dist/Divider.mjs +44 -0
- package/dist/Divider.mjs.map +1 -0
- package/dist/Form.d.mts +12 -0
- package/dist/Form.d.mts.map +1 -0
- package/dist/Form.mjs +11 -0
- package/dist/Form.mjs.map +1 -0
- package/dist/Layout.d.mts.map +1 -1
- package/dist/Mentions.d.mts +34 -0
- package/dist/Mentions.d.mts.map +1 -0
- package/dist/Mentions.mjs +207 -0
- package/dist/Mentions.mjs.map +1 -0
- package/dist/Menu.mjs +1 -2
- package/dist/Pagination.d.mts +2 -2
- package/dist/Pagination.d.mts.map +1 -1
- package/dist/Pagination.mjs +1 -1
- package/dist/Popconfirm.d.mts +33 -0
- package/dist/Popconfirm.d.mts.map +1 -0
- package/dist/Popconfirm.mjs +119 -0
- package/dist/Popconfirm.mjs.map +1 -0
- package/dist/Rate.d.mts +27 -0
- package/dist/Rate.d.mts.map +1 -0
- package/dist/Rate.mjs +81 -0
- package/dist/Rate.mjs.map +1 -0
- package/dist/Reveals.d.mts.map +1 -1
- package/dist/ScrollArea.d.mts +8 -0
- package/dist/ScrollArea.d.mts.map +1 -0
- package/dist/ScrollArea.mjs +11 -0
- package/dist/ScrollArea.mjs.map +1 -0
- package/dist/Segmented.d.mts +3 -3
- package/dist/Segmented.d.mts.map +1 -1
- package/dist/Space.d.mts +2 -2
- package/dist/Space.d.mts.map +1 -1
- package/dist/Statistic.d.mts +22 -0
- package/dist/Statistic.d.mts.map +1 -0
- package/dist/Statistic.mjs +53 -0
- package/dist/Statistic.mjs.map +1 -0
- package/dist/Steps.d.mts +3 -3
- package/dist/Steps.d.mts.map +1 -1
- package/dist/Steps.mjs +1 -1
- package/dist/Table.d.mts +4 -4
- package/dist/Table.d.mts.map +1 -1
- package/dist/Tag.d.mts +3 -3
- package/dist/Tag.d.mts.map +1 -1
- package/dist/TimePicker.d.mts +26 -0
- package/dist/TimePicker.d.mts.map +1 -0
- package/dist/TimePicker.mjs +77 -0
- package/dist/TimePicker.mjs.map +1 -0
- package/dist/Timeline.d.mts +35 -0
- package/dist/Timeline.d.mts.map +1 -0
- package/dist/Timeline.mjs +59 -0
- package/dist/Timeline.mjs.map +1 -0
- package/dist/Tour.d.mts +37 -0
- package/dist/Tour.d.mts.map +1 -0
- package/dist/Tour.mjs +192 -0
- package/dist/Tour.mjs.map +1 -0
- package/dist/Transfer.d.mts +36 -0
- package/dist/Transfer.d.mts.map +1 -0
- package/dist/Transfer.mjs +147 -0
- package/dist/Transfer.mjs.map +1 -0
- package/dist/Tree.d.mts +62 -0
- package/dist/Tree.d.mts.map +1 -0
- package/dist/Tree.mjs +462 -0
- package/dist/Tree.mjs.map +1 -0
- package/dist/TreeSelect.d.mts +34 -0
- package/dist/TreeSelect.d.mts.map +1 -0
- package/dist/TreeSelect.mjs +135 -0
- package/dist/TreeSelect.mjs.map +1 -0
- package/dist/Typography.d.mts.map +1 -1
- package/dist/components/atoms/checkbox/checkbox.d.mts +5 -3
- package/dist/components/atoms/checkbox/checkbox.d.mts.map +1 -1
- package/dist/components/atoms/checkbox/checkbox.mjs +8 -4
- package/dist/components/atoms/checkbox/checkbox.mjs.map +1 -1
- package/dist/components/atoms/checkbox/group.d.mts +2 -2
- package/dist/components/atoms/checkbox/group.d.mts.map +1 -1
- package/dist/components/atoms/checkbox/index.d.mts.map +1 -1
- package/dist/components/atoms/color-picker.d.mts +2 -2
- package/dist/components/atoms/color-picker.d.mts.map +1 -1
- package/dist/components/atoms/date-picker.d.mts +5 -1
- package/dist/components/atoms/date-picker.d.mts.map +1 -1
- package/dist/components/atoms/date-picker.mjs +54 -10
- package/dist/components/atoms/date-picker.mjs.map +1 -1
- package/dist/components/atoms/float-button/back-top.d.mts +2 -2
- package/dist/components/atoms/float-button/back-top.d.mts.map +1 -1
- package/dist/components/atoms/float-button/back-top.mjs +1 -1
- package/dist/components/atoms/float-button/float-button.d.mts +2 -2
- package/dist/components/atoms/float-button/float-button.d.mts.map +1 -1
- package/dist/components/atoms/float-button/index.d.mts.map +1 -1
- package/dist/components/atoms/index.d.mts +13 -6
- package/dist/components/atoms/input/index.d.mts +3 -1
- package/dist/components/atoms/input/index.d.mts.map +1 -1
- package/dist/components/atoms/input/index.mjs +3 -1
- package/dist/components/atoms/input/index.mjs.map +1 -1
- package/dist/components/atoms/input/number.d.mts +2 -2
- package/dist/components/atoms/input/number.d.mts.map +1 -1
- package/dist/components/atoms/input/number.mjs +1 -1
- package/dist/components/atoms/input/otp.d.mts +26 -0
- package/dist/components/atoms/input/otp.d.mts.map +1 -0
- package/dist/components/atoms/input/otp.mjs +52 -0
- package/dist/components/atoms/input/otp.mjs.map +1 -0
- package/dist/components/atoms/input/search.d.mts +2 -2
- package/dist/components/atoms/input/search.d.mts.map +1 -1
- package/dist/components/atoms/input/search.mjs +2 -2
- package/dist/components/atoms/mentions-token.mjs +31 -0
- package/dist/components/atoms/mentions-token.mjs.map +1 -0
- package/dist/components/atoms/option-group.d.mts +4 -5
- package/dist/components/atoms/option-group.d.mts.map +1 -1
- package/dist/components/atoms/popover.d.mts +2 -2
- package/dist/components/atoms/popover.d.mts.map +1 -1
- package/dist/components/atoms/progress.d.mts +2 -2
- package/dist/components/atoms/progress.d.mts.map +1 -1
- package/dist/components/atoms/radio/group.d.mts +2 -2
- package/dist/components/atoms/radio/group.d.mts.map +1 -1
- package/dist/components/atoms/radio/group.mjs +1 -1
- package/dist/components/atoms/radio/index.d.mts.map +1 -1
- package/dist/components/atoms/radio/radio.d.mts +2 -2
- package/dist/components/atoms/radio/radio.d.mts.map +1 -1
- package/dist/components/atoms/radio/radio.mjs +1 -1
- package/dist/components/atoms/rich-text-editor/rich-text-editor.d.mts +2 -2
- package/dist/components/atoms/rich-text-editor/rich-text-editor.d.mts.map +1 -1
- package/dist/components/atoms/rich-text-editor/toolbar-presets.mjs +2 -2
- package/dist/components/atoms/rich-text-editor/types.d.mts +2 -3
- package/dist/components/atoms/rich-text-editor/types.d.mts.map +1 -1
- package/dist/components/atoms/select-multiple.d.mts +2 -3
- package/dist/components/atoms/select-multiple.d.mts.map +1 -1
- package/dist/components/atoms/select-multiple.mjs +4 -3
- package/dist/components/atoms/select-multiple.mjs.map +1 -1
- package/dist/components/atoms/select-searchable-options.d.mts +3 -4
- package/dist/components/atoms/select-searchable-options.d.mts.map +1 -1
- package/dist/components/atoms/select-searchable.d.mts +2 -3
- package/dist/components/atoms/select-searchable.d.mts.map +1 -1
- package/dist/components/atoms/select-searchable.mjs +4 -3
- package/dist/components/atoms/select-searchable.mjs.map +1 -1
- package/dist/components/atoms/select.d.mts +3 -3
- package/dist/components/atoms/select.d.mts.map +1 -1
- package/dist/components/atoms/skeleton/button.d.mts.map +1 -1
- package/dist/components/atoms/skeleton/index.d.mts.map +1 -1
- package/dist/components/atoms/skeleton/node.d.mts.map +1 -1
- package/dist/components/atoms/skeleton/skeleton.d.mts +2 -2
- package/dist/components/atoms/skeleton/skeleton.d.mts.map +1 -1
- package/dist/components/atoms/slider/slider.d.mts +3 -3
- package/dist/components/atoms/slider/slider.d.mts.map +1 -1
- package/dist/components/atoms/spin.d.mts +2 -2
- package/dist/components/atoms/spin.d.mts.map +1 -1
- package/dist/components/atoms/spin.mjs +1 -1
- package/dist/components/atoms/switch.d.mts +2 -2
- package/dist/components/atoms/switch.d.mts.map +1 -1
- package/dist/components/atoms/tooltip.d.mts +2 -2
- package/dist/components/atoms/tooltip.d.mts.map +1 -1
- package/dist/components/atoms/typography/link.d.mts +2 -2
- package/dist/components/atoms/typography/link.d.mts.map +1 -1
- package/dist/components/atoms/typography/paragraph.d.mts +2 -2
- package/dist/components/atoms/typography/paragraph.d.mts.map +1 -1
- package/dist/components/atoms/typography/text.d.mts +2 -2
- package/dist/components/atoms/typography/text.d.mts.map +1 -1
- package/dist/components/atoms/typography/title.d.mts +2 -2
- package/dist/components/atoms/typography/title.d.mts.map +1 -1
- package/dist/components/atoms/typography/typography.d.mts +2 -2
- package/dist/components/atoms/typography/typography.d.mts.map +1 -1
- package/dist/components/molecules/collapse.d.mts +2 -2
- package/dist/components/molecules/collapse.d.mts.map +1 -1
- package/dist/components/molecules/dropdown.d.mts +2 -2
- package/dist/components/molecules/dropdown.d.mts.map +1 -1
- package/dist/components/molecules/index.d.mts +22 -14
- package/dist/components/molecules/marquees/index.d.mts.map +1 -1
- package/dist/components/molecules/marquees/item.d.mts +4 -4
- package/dist/components/molecules/marquees/item.d.mts.map +1 -1
- package/dist/components/molecules/marquees/item.mjs +5 -5
- package/dist/components/molecules/marquees/item.mjs.map +1 -1
- package/dist/components/molecules/marquees/marquees.d.mts +2 -2
- package/dist/components/molecules/marquees/marquees.d.mts.map +1 -1
- package/dist/components/molecules/marquees/marquees.mjs +4 -5
- package/dist/components/molecules/marquees/marquees.mjs.map +1 -1
- package/dist/components/molecules/menu/item/item.mjs +1 -1
- package/dist/components/molecules/menu/menu.d.mts +9 -9
- package/dist/components/molecules/menu/menu.d.mts.map +1 -1
- package/dist/components/molecules/reveals/item.d.mts +2 -2
- package/dist/components/molecules/reveals/item.d.mts.map +1 -1
- package/dist/components/molecules/reveals/reveals.d.mts +5 -5
- package/dist/components/molecules/reveals/reveals.d.mts.map +1 -1
- package/dist/components/molecules/splitter/index.d.mts.map +1 -1
- package/dist/components/molecules/splitter/panel.d.mts +3 -3
- package/dist/components/molecules/splitter/panel.d.mts.map +1 -1
- package/dist/components/molecules/splitter/splitter.d.mts +3 -3
- package/dist/components/molecules/splitter/splitter.d.mts.map +1 -1
- package/dist/components/molecules/tabs.d.mts +4 -4
- package/dist/components/molecules/tabs.d.mts.map +1 -1
- package/dist/components/molecules/upload.d.mts +3 -3
- package/dist/components/molecules/upload.d.mts.map +1 -1
- package/dist/components/molecules/upload.mjs +1 -1
- package/dist/components/organisms/drawer.d.mts +2 -2
- package/dist/components/organisms/drawer.d.mts.map +1 -1
- package/dist/components/organisms/drawer.mjs +2 -2
- package/dist/components/organisms/form/context.d.mts +4 -0
- package/dist/components/organisms/form/context.d.mts.map +1 -0
- package/dist/components/organisms/form/context.mjs +9 -0
- package/dist/components/organisms/form/context.mjs.map +1 -0
- package/dist/components/organisms/form/control.d.mts +11 -0
- package/dist/components/organisms/form/control.d.mts.map +1 -0
- package/dist/components/organisms/form/control.mjs +19 -0
- package/dist/components/organisms/form/control.mjs.map +1 -0
- package/dist/components/organisms/form/field.d.mts +25 -0
- package/dist/components/organisms/form/field.d.mts.map +1 -0
- package/dist/components/organisms/form/field.mjs +54 -0
- package/dist/components/organisms/form/field.mjs.map +1 -0
- package/dist/components/organisms/form/form.d.mts +14 -0
- package/dist/components/organisms/form/form.d.mts.map +1 -0
- package/dist/components/organisms/form/form.mjs +23 -0
- package/dist/components/organisms/form/form.mjs.map +1 -0
- package/dist/components/organisms/index.d.mts +14 -6
- package/dist/components/organisms/list/index.d.mts.map +1 -1
- package/dist/components/organisms/list/list.d.mts +2 -2
- package/dist/components/organisms/list/list.d.mts.map +1 -1
- package/dist/components/organisms/modal.d.mts +6 -3
- package/dist/components/organisms/modal.d.mts.map +1 -1
- package/dist/components/organisms/modal.mjs +25 -18
- package/dist/components/organisms/modal.mjs.map +1 -1
- package/dist/components/organisms/swiper/index.d.mts.map +1 -1
- package/dist/components/organisms/swiper/swiper.d.mts +2 -2
- package/dist/components/organisms/swiper/swiper.d.mts.map +1 -1
- package/dist/components/organisms/toast.d.mts +2 -2
- package/dist/components/organisms/toast.d.mts.map +1 -1
- package/dist/components/organisms/toast.mjs +1 -1
- package/dist/components/templates/container.d.mts +2 -2
- package/dist/components/templates/container.d.mts.map +1 -1
- package/dist/components/templates/empty.d.mts +2 -2
- package/dist/components/templates/empty.d.mts.map +1 -1
- package/dist/components/templates/empty.mjs +1 -1
- package/dist/components/templates/grid/col.d.mts +2 -2
- package/dist/components/templates/grid/col.d.mts.map +1 -1
- package/dist/components/templates/grid/row.d.mts +2 -2
- package/dist/components/templates/grid/row.d.mts.map +1 -1
- package/dist/components/templates/layout/content.d.mts +2 -2
- package/dist/components/templates/layout/content.d.mts.map +1 -1
- package/dist/components/templates/layout/footer.d.mts +2 -2
- package/dist/components/templates/layout/footer.d.mts.map +1 -1
- package/dist/components/templates/layout/header.d.mts +2 -2
- package/dist/components/templates/layout/header.d.mts.map +1 -1
- package/dist/components/templates/layout/layout.d.mts +2 -2
- package/dist/components/templates/layout/layout.d.mts.map +1 -1
- package/dist/components/templates/layout/sider.d.mts +2 -2
- package/dist/components/templates/layout/sider.d.mts.map +1 -1
- package/dist/components/templates/layout/sider.mjs +1 -1
- package/dist/components/templates/page-header.d.mts +2 -2
- package/dist/components/templates/page-header.d.mts.map +1 -1
- package/dist/components/templates/page-header.mjs +1 -1
- package/dist/components/templates/result.d.mts +2 -2
- package/dist/components/templates/result.d.mts.map +1 -1
- package/dist/components/templates/result.mjs +1 -1
- package/dist/core/accordion.mjs +1 -1
- package/dist/core/autocomplete.d.mts +2 -0
- package/dist/core/autocomplete.mjs +48 -0
- package/dist/core/autocomplete.mjs.map +1 -0
- package/dist/core/badge.d.mts +5 -3
- package/dist/core/badge.d.mts.map +1 -1
- package/dist/core/button.d.mts +6 -4
- package/dist/core/button.d.mts.map +1 -1
- package/dist/core/calendar.d.mts +13 -3
- package/dist/core/calendar.d.mts.map +1 -0
- package/dist/core/calendar.mjs +1 -1
- package/dist/core/checkbox.mjs +11 -8
- package/dist/core/checkbox.mjs.map +1 -1
- package/dist/core/combobox.d.mts +26 -4
- package/dist/core/combobox.d.mts.map +1 -1
- package/dist/core/combobox.mjs +2 -2
- package/dist/core/combobox.mjs.map +1 -1
- package/dist/core/dialog.mjs +2 -2
- package/dist/core/dialog.mjs.map +1 -1
- package/dist/core/form.d.mts +8 -0
- package/dist/core/form.d.mts.map +1 -0
- package/dist/core/form.mjs +3 -0
- package/dist/core/index.d.mts +13 -9
- package/dist/core/popover.mjs +10 -2
- package/dist/core/popover.mjs.map +1 -1
- package/dist/core/radio-group.mjs +1 -1
- package/dist/core/resizable.d.mts +7 -2
- package/dist/core/resizable.d.mts.map +1 -1
- package/dist/core/resizable.mjs +1 -1
- package/dist/core/scroll-area.d.mts +20 -0
- package/dist/core/scroll-area.d.mts.map +1 -0
- package/dist/core/scroll-area.mjs +57 -0
- package/dist/core/scroll-area.mjs.map +1 -0
- package/dist/core/select.d.mts +24 -2
- package/dist/core/select.d.mts.map +1 -1
- package/dist/core/select.mjs +1 -1
- package/dist/core/separator.d.mts +13 -2
- package/dist/core/separator.d.mts.map +1 -0
- package/dist/core/tabs.d.mts +16 -2
- package/dist/core/tabs.d.mts.map +1 -1
- package/dist/index.d.mts +59 -36
- package/dist/index.mjs +25 -6
- package/dist/lib/colors.d.mts +2 -3
- package/dist/lib/colors.d.mts.map +1 -1
- package/dist/providers/config/context.d.mts +2 -3
- package/dist/providers/config/context.d.mts.map +1 -1
- package/dist/providers/config/context.mjs +3 -1
- package/dist/providers/config/context.mjs.map +1 -1
- package/dist/providers/config/registry.d.mts +2 -3
- package/dist/providers/config/registry.d.mts.map +1 -1
- package/dist/providers/config/types.d.mts +8 -7
- package/dist/providers/config/types.d.mts.map +1 -1
- package/dist/style.css +689 -332
- package/dist/utils.d.mts +2 -3
- package/dist/utils.d.mts.map +1 -1
- package/package.json +122 -26
- package/dist/components/molecules/marquees/use-pause-on-hover.mjs +0 -26
- package/dist/components/molecules/marquees/use-pause-on-hover.mjs.map +0 -1
|
@@ -1,22 +1,23 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { cn } from "../../utils.mjs";
|
|
3
3
|
import { DEFAULT_LOCALE, useConfig } from "../../providers/config/context.mjs";
|
|
4
|
-
import { dialog_exports } from "../../core/dialog.mjs";
|
|
5
4
|
import Button from "../../Button.mjs";
|
|
5
|
+
import { dialog_exports } from "../../core/dialog.mjs";
|
|
6
6
|
import { createImperativeStack, isBrowser } from "./imperative-stack.mjs";
|
|
7
|
-
import {
|
|
8
|
-
import { useState } from "react";
|
|
7
|
+
import { useRef, useState } from "react";
|
|
9
8
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
+
import { Check, CircleQuestionMark, Info, OctagonAlert, OctagonX } from "lucide-react";
|
|
10
10
|
import { createPortal } from "react-dom";
|
|
11
11
|
//#region src/components/organisms/modal.tsx
|
|
12
12
|
const { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle } = dialog_exports;
|
|
13
|
-
const Modal = ({ open = false, maskClosable, closable = false, closeIcon, className, classNames, style, title, content, footer, container, children, okText, cancelText, onOk, onCancel, ...props }) => {
|
|
13
|
+
const Modal = ({ open = false, maskClosable, closable = false, closeIcon, className, classNames, style, title, content, footer, container, children, okText, cancelText, onOk, onCancel, onOpenChangeComplete, ...props }) => {
|
|
14
14
|
const { locale, defaultProps } = useConfig();
|
|
15
15
|
const modalDefaults = defaultProps?.modal;
|
|
16
16
|
const resolvedMaskClosable = maskClosable ?? modalDefaults?.maskClosable ?? false;
|
|
17
17
|
if (typeof window === "undefined") return null;
|
|
18
18
|
return /* @__PURE__ */ jsx(Dialog, {
|
|
19
19
|
open,
|
|
20
|
+
onOpenChangeComplete,
|
|
20
21
|
onOpenChange: (open) => {
|
|
21
22
|
if (!open) onCancel?.();
|
|
22
23
|
},
|
|
@@ -44,13 +45,13 @@ const Modal = ({ open = false, maskClosable, closable = false, closeIcon, classN
|
|
|
44
45
|
footer !== null && /* @__PURE__ */ jsx(DialogFooter, {
|
|
45
46
|
className: cn("flex-row justify-end gap-x-2", classNames?.footer),
|
|
46
47
|
children: footer || /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Button, {
|
|
47
|
-
type: "primary",
|
|
48
|
-
onClick: onOk,
|
|
49
|
-
children: okText ?? locale.ok ?? DEFAULT_LOCALE.ok
|
|
50
|
-
}), /* @__PURE__ */ jsx(Button, {
|
|
51
48
|
variant: "outlined",
|
|
52
49
|
onClick: onCancel,
|
|
53
50
|
children: cancelText ?? locale.cancel ?? DEFAULT_LOCALE.cancel
|
|
51
|
+
}), /* @__PURE__ */ jsx(Button, {
|
|
52
|
+
type: "primary",
|
|
53
|
+
onClick: onOk,
|
|
54
|
+
children: okText ?? locale.ok ?? DEFAULT_LOCALE.ok
|
|
54
55
|
})] })
|
|
55
56
|
})
|
|
56
57
|
]
|
|
@@ -64,31 +65,31 @@ const STATIC_ICONS = {
|
|
|
64
65
|
warning: /* @__PURE__ */ jsx(OctagonAlert, { className: "text-yellow-400" }),
|
|
65
66
|
confirm: /* @__PURE__ */ jsx(CircleQuestionMark, {})
|
|
66
67
|
};
|
|
67
|
-
const StaticModal = ({ id, status, mode, title, content, okText, cancelText, container, icon, onOk, onCancel, ...props }) => {
|
|
68
|
+
const StaticModal = ({ id, status, mode, title, content, okText, cancelText, container, icon, onOk, onCancel, onOpenChangeComplete, ...props }) => {
|
|
68
69
|
const { locale } = useConfig();
|
|
69
70
|
const [open, setOpen] = useState(true);
|
|
71
|
+
const closing = useRef(false);
|
|
70
72
|
const resolvedOkText = okText ?? locale.ok ?? DEFAULT_LOCALE.ok;
|
|
71
73
|
const resolvedCancelText = cancelText ?? locale.cancel ?? DEFAULT_LOCALE.cancel;
|
|
72
74
|
const isConfirm = mode === "confirm";
|
|
73
75
|
const closeModal = (callback) => {
|
|
74
|
-
|
|
76
|
+
if (closing.current) return;
|
|
77
|
+
closing.current = true;
|
|
75
78
|
setOpen(false);
|
|
76
|
-
|
|
77
|
-
modalStack.destroy(id);
|
|
78
|
-
}, 200);
|
|
79
|
+
callback?.();
|
|
79
80
|
};
|
|
80
81
|
const footer = isConfirm ? /* @__PURE__ */ jsxs("div", {
|
|
81
82
|
className: "grid w-full grid-cols-5 gap-x-2",
|
|
82
83
|
children: [/* @__PURE__ */ jsx(Button, {
|
|
83
|
-
type: "primary",
|
|
84
|
-
className: "col-span-3",
|
|
85
|
-
onClick: () => closeModal(onOk),
|
|
86
|
-
children: resolvedOkText
|
|
87
|
-
}), /* @__PURE__ */ jsx(Button, {
|
|
88
84
|
variant: "outlined",
|
|
89
85
|
className: "col-span-2",
|
|
90
86
|
onClick: () => closeModal(onCancel),
|
|
91
87
|
children: resolvedCancelText
|
|
88
|
+
}), /* @__PURE__ */ jsx(Button, {
|
|
89
|
+
type: "primary",
|
|
90
|
+
className: "col-span-3",
|
|
91
|
+
onClick: () => closeModal(onOk),
|
|
92
|
+
children: resolvedOkText
|
|
92
93
|
})]
|
|
93
94
|
}) : /* @__PURE__ */ jsx(Button, {
|
|
94
95
|
type: "primary",
|
|
@@ -113,6 +114,10 @@ const StaticModal = ({ id, status, mode, title, content, okText, cancelText, con
|
|
|
113
114
|
container,
|
|
114
115
|
onCancel: () => closeModal(onCancel),
|
|
115
116
|
...props,
|
|
117
|
+
onOpenChangeComplete: (open) => {
|
|
118
|
+
if (!open) modalStack.destroy(id);
|
|
119
|
+
onOpenChangeComplete?.(open);
|
|
120
|
+
},
|
|
116
121
|
children: content
|
|
117
122
|
}), modalStack.getRootElement(container));
|
|
118
123
|
};
|
|
@@ -125,7 +130,9 @@ const modalStack = createImperativeStack({
|
|
|
125
130
|
},
|
|
126
131
|
StackItem: StaticModal
|
|
127
132
|
});
|
|
133
|
+
/** Immediately removes a modal without waiting for its closing animation. */
|
|
128
134
|
Modal.destroy = modalStack.destroy;
|
|
135
|
+
/** Immediately removes all modals, including those currently closing. */
|
|
129
136
|
Modal.destroyAll = () => {
|
|
130
137
|
modalStack.destroy();
|
|
131
138
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modal.mjs","names":["dialog"],"sources":["../../../src/components/organisms/modal.tsx"],"sourcesContent":["'use client';\n\nimport React, { useState } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport {\n Check,\n CircleQuestionMark,\n Info,\n OctagonAlert,\n OctagonX,\n} from 'lucide-react';\n\nimport { DEFAULT_LOCALE, useConfig } from '@repo/ui/providers';\nimport { cn } from '@repo/ui/utils';\n\nimport { dialog } from '../../core';\nimport Button from '../atoms/button';\nimport {\n type ImperativeStack,\n createImperativeStack,\n isBrowser,\n} from './imperative-stack';\n\nconst {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} = dialog;\n\nexport interface Props {\n open?: boolean;\n maskClosable?: boolean;\n closable?:\n | boolean\n | {\n closeIcon?: React.ReactNode;\n disabled?: boolean;\n };\n closeIcon?: React.ReactNode;\n title?: React.ReactNode;\n content?: React.ReactNode;\n footer?: React.ReactNode;\n className?: string;\n classNames?: {\n mask?: string;\n header?: string;\n body?: string;\n footer?: string;\n };\n style?: React.CSSProperties;\n okText?: string;\n cancelText?: string;\n container?: HTMLElement;\n children?: React.ReactNode;\n onOk?: () => void;\n onCancel?: () => void;\n}\n\ntype ModalStatus = 'info' | 'success' | 'error' | 'warning';\n\ninterface StaticProps extends Props {\n status?: ModalStatus;\n /**\n * Interaction mode set by `Modal.confirm()` to request the two-button\n * footer. `confirm` is a mode, not a status, so it rides its own axis rather\n * than `status` — call `Modal.confirm()` rather than setting this directly.\n */\n mode?: 'confirm';\n id?: string;\n icon?: React.ReactNode;\n container?: HTMLElement;\n}\n\nconst Modal = ({\n open = false,\n maskClosable,\n closable = false,\n closeIcon,\n className,\n classNames,\n style,\n title,\n content,\n footer,\n container,\n children,\n okText,\n cancelText,\n onOk,\n onCancel,\n ...props\n}: Props) => {\n const { locale, defaultProps } = useConfig();\n const modalDefaults = defaultProps?.modal as\n Partial<Pick<Props, 'maskClosable'>> | undefined;\n // Explicit prop > `Config` default > built-in, matching Button/Tag.\n const resolvedMaskClosable =\n maskClosable ?? modalDefaults?.maskClosable ?? false;\n\n if (typeof window === 'undefined') {\n return null;\n }\n\n return (\n <Dialog\n open={open}\n onOpenChange={(open: boolean) => {\n if (!open) {\n onCancel?.();\n }\n }}\n // antd's `maskClosable` is a root-level dismissal concern in Base UI:\n // blocking the outside (mask) press keeps the dialog open on backdrop\n // click while Escape still closes it, matching the previous behaviour.\n disablePointerDismissal={!resolvedMaskClosable}\n {...props}\n >\n <DialogContent\n className={cn(\n 'rounded-lg p-4 max-sm:max-w-[80%]',\n 'border-none outline-none',\n className,\n )}\n classNames={{\n ...classNames,\n mask: cn('bg-black/60', classNames?.mask),\n }}\n style={style}\n closable={closable}\n closeIcon={closeIcon}\n container={container}\n >\n {/**\n * @todo [Dialog & AlertDialog] fix: can't get id correctly in shadow dom\n *\n * Filed while `core/dialog` was still Radix-based; the linked fix is\n * Radix's, and the repo no longer depends on it. Revalidate against\n * Base UI's Dialog before acting on this — the bug may already be gone.\n * @see https://github.com/radix-ui/primitives/pull/3384\n **/}\n <DialogHeader\n className={cn(\n classNames?.header,\n !title && 'hidden',\n //\n )}\n >\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription className=\"hidden\" />\n </DialogHeader>\n <div className={cn('break-all', classNames?.body)}>\n {children ?? content}\n </div>\n {footer !== null && (\n <DialogFooter\n className={cn('flex-row justify-end gap-x-2', classNames?.footer)}\n >\n {footer || (\n <>\n {/*\n * The confirming action is solid primary and the dismissing one\n * stays outlined, so the two read as different weights. Both\n * used to resolve to `outlined` — Button defaults to that\n * variant, so the unstyled OK button rendered identically to\n * the explicitly outlined Cancel beside it.\n */}\n <Button type=\"primary\" onClick={onOk}>\n {okText ?? locale.ok ?? DEFAULT_LOCALE.ok}\n </Button>\n <Button variant=\"outlined\" onClick={onCancel}>\n {cancelText ?? locale.cancel ?? DEFAULT_LOCALE.cancel}\n </Button>\n </>\n )}\n </DialogFooter>\n )}\n </DialogContent>\n </Dialog>\n );\n};\n\nconst STATIC_ICONS = {\n info: <Info className=\"text-blue-400\" />,\n success: <Check className=\"text-green-400\" />,\n error: <OctagonX className=\"text-red-400\" />,\n warning: <OctagonAlert className=\"text-yellow-400\" />,\n confirm: <CircleQuestionMark />,\n};\n\nconst StaticModal = ({\n id,\n status,\n mode,\n title,\n content,\n okText,\n cancelText,\n container,\n icon,\n onOk,\n onCancel,\n ...props\n}: StaticProps & { id: string }): React.ReactPortal | null => {\n const { locale } = useConfig();\n const [open, setOpen] = useState(true);\n const resolvedOkText = okText ?? locale.ok ?? DEFAULT_LOCALE.ok;\n const resolvedCancelText =\n cancelText ?? locale.cancel ?? DEFAULT_LOCALE.cancel;\n // `confirm` is an interaction mode (two-button footer), not a status; the\n // semantic state comes from `status`.\n const isConfirm = mode === 'confirm';\n\n const closeModal = (callback?: () => void) => {\n callback?.();\n setOpen(false);\n setTimeout(() => {\n modalStack.destroy(id);\n }, 200);\n };\n\n // Confirming action first, dismissing action second — the same order as the\n // controlled footer above, which used to run the other way round here and\n // put the two footers of one component in opposite orders.\n const footer = isConfirm ? (\n <div className=\"grid w-full grid-cols-5 gap-x-2\">\n <Button\n type=\"primary\"\n className=\"col-span-3\"\n onClick={() => closeModal(onOk)}\n >\n {resolvedOkText}\n </Button>\n <Button\n variant=\"outlined\"\n className=\"col-span-2\"\n onClick={() => closeModal(onCancel)}\n >\n {resolvedCancelText}\n </Button>\n </div>\n ) : (\n <Button\n type=\"primary\"\n className={cn(\n 'grow',\n //\n )}\n onClick={() => closeModal(onOk)}\n >\n {resolvedOkText}\n </Button>\n );\n\n if (!isBrowser) {\n return null;\n }\n\n return createPortal(\n <Modal\n open={open}\n footer={footer}\n className={cn(\n 'z-10000',\n 'box-content w-100',\n 'rounded-3xl p-4',\n 'gap-y-0',\n )}\n classNames={{\n mask: 'z-10000 bg-black/[.6]',\n body: cn(\n 'text-black-70 whitespace-pre-wrap text-center',\n content && 'mt-3',\n ),\n footer: 'mt-9',\n }}\n title={\n <p\n className={cn(\n 'text-center text-lg leading-normal whitespace-pre-wrap',\n 'flex items-center justify-center gap-x-2',\n //\n )}\n >\n {icon ||\n (isConfirm ? STATIC_ICONS.confirm : status && STATIC_ICONS[status])}\n {title}\n </p>\n }\n container={container}\n onCancel={() => closeModal(onCancel)}\n {...props}\n >\n {content}\n </Modal>,\n modalStack.getRootElement(container)!,\n );\n};\n\n// No `role`/`aria-modal` here — this element is only a mount point for the\n// imperative stack, not the dialog itself. Base UI already renders its own\n// `role=\"dialog\"`/`aria-modal=\"true\"` on the actual `DialogContent` via\n// portal once a modal is open. Setting it here as well would (a) leave\n// `aria-modal=\"true\"` on the page permanently, even with zero modals open,\n// hiding the rest of the document from screen readers, and (b) duplicate\n// Base UI's own dialog role once one is open.\nconst modalStack: ImperativeStack<StaticProps> =\n createImperativeStack<StaticProps>({\n createRootElement: () => {\n const el = document.createElement('div');\n el.style.zIndex = '10000';\n el.style.position = 'absolute';\n return el;\n },\n StackItem: StaticModal,\n });\n\nModal.destroy = modalStack.destroy;\n\nModal.destroyAll = () => {\n modalStack.destroy();\n};\n\nModal.info = (props: StaticProps) =>\n modalStack.render({ status: 'info', ...props });\nModal.success = (props: StaticProps) =>\n modalStack.render({ status: 'success', ...props });\nModal.error = (props: StaticProps) =>\n modalStack.render({ status: 'error', ...props });\nModal.warning = (props: StaticProps) =>\n modalStack.render({ status: 'warning', ...props });\n// `confirm` is a mode, not a status, so it rides its own `mode` axis rather\n// than `status`.\nModal.confirm = (props: StaticProps) =>\n modalStack.render({ mode: 'confirm', ...props });\n\nexport default Modal;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"modal.mjs","names":["dialog"],"sources":["../../../src/components/organisms/modal.tsx"],"sourcesContent":["'use client';\n\nimport React, { useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport {\n Check,\n CircleQuestionMark,\n Info,\n OctagonAlert,\n OctagonX,\n} from 'lucide-react';\n\nimport { DEFAULT_LOCALE, useConfig } from '@repo/ui/providers';\nimport { cn } from '@repo/ui/utils';\n\nimport { dialog } from '../../core';\nimport Button from '../atoms/button';\nimport {\n type ImperativeStack,\n createImperativeStack,\n isBrowser,\n} from './imperative-stack';\n\nconst {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} = dialog;\n\nexport interface Props {\n open?: boolean;\n maskClosable?: boolean;\n closable?:\n | boolean\n | {\n closeIcon?: React.ReactNode;\n disabled?: boolean;\n };\n closeIcon?: React.ReactNode;\n title?: React.ReactNode;\n content?: React.ReactNode;\n footer?: React.ReactNode;\n className?: string;\n classNames?: {\n mask?: string;\n header?: string;\n body?: string;\n footer?: string;\n };\n style?: React.CSSProperties;\n okText?: string;\n cancelText?: string;\n container?: HTMLElement;\n children?: React.ReactNode;\n onOk?: () => void;\n onCancel?: () => void;\n /** Called after the opening or closing animations finish. */\n onOpenChangeComplete?: (open: boolean) => void;\n}\n\ntype ModalStatus = 'info' | 'success' | 'error' | 'warning';\n\ninterface StaticProps extends Props {\n status?: ModalStatus;\n /**\n * Interaction mode set by `Modal.confirm()` to request the two-button\n * footer. `confirm` is a mode, not a status, so it rides its own axis rather\n * than `status` — call `Modal.confirm()` rather than setting this directly.\n */\n mode?: 'confirm';\n id?: string;\n icon?: React.ReactNode;\n container?: HTMLElement;\n}\n\nconst Modal = ({\n open = false,\n maskClosable,\n closable = false,\n closeIcon,\n className,\n classNames,\n style,\n title,\n content,\n footer,\n container,\n children,\n okText,\n cancelText,\n onOk,\n onCancel,\n onOpenChangeComplete,\n ...props\n}: Props) => {\n const { locale, defaultProps } = useConfig();\n const modalDefaults = defaultProps?.modal as\n Partial<Pick<Props, 'maskClosable'>> | undefined;\n // Explicit prop > `Config` default > built-in, matching Button/Tag.\n const resolvedMaskClosable =\n maskClosable ?? modalDefaults?.maskClosable ?? false;\n\n if (typeof window === 'undefined') {\n return null;\n }\n\n return (\n <Dialog\n open={open}\n onOpenChangeComplete={onOpenChangeComplete}\n onOpenChange={(open: boolean) => {\n if (!open) {\n onCancel?.();\n }\n }}\n // antd's `maskClosable` is a root-level dismissal concern in Base UI:\n // blocking the outside (mask) press keeps the dialog open on backdrop\n // click while Escape still closes it, matching the previous behaviour.\n disablePointerDismissal={!resolvedMaskClosable}\n {...props}\n >\n <DialogContent\n className={cn(\n 'rounded-lg p-4 max-sm:max-w-[80%]',\n 'border-none outline-none',\n className,\n )}\n classNames={{\n ...classNames,\n mask: cn('bg-black/60', classNames?.mask),\n }}\n style={style}\n closable={closable}\n closeIcon={closeIcon}\n container={container}\n >\n {/**\n * @todo [Dialog & AlertDialog] fix: can't get id correctly in shadow dom\n *\n * Filed while `core/dialog` was still Radix-based; the linked fix is\n * Radix's, and the repo no longer depends on it. Revalidate against\n * Base UI's Dialog before acting on this — the bug may already be gone.\n * @see https://github.com/radix-ui/primitives/pull/3384\n **/}\n <DialogHeader\n className={cn(\n classNames?.header,\n !title && 'hidden',\n //\n )}\n >\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription className=\"hidden\" />\n </DialogHeader>\n <div className={cn('break-all', classNames?.body)}>\n {children ?? content}\n </div>\n {footer !== null && (\n <DialogFooter\n className={cn('flex-row justify-end gap-x-2', classNames?.footer)}\n >\n {footer || (\n <>\n <Button variant=\"outlined\" onClick={onCancel}>\n {cancelText ?? locale.cancel ?? DEFAULT_LOCALE.cancel}\n </Button>\n <Button type=\"primary\" onClick={onOk}>\n {okText ?? locale.ok ?? DEFAULT_LOCALE.ok}\n </Button>\n </>\n )}\n </DialogFooter>\n )}\n </DialogContent>\n </Dialog>\n );\n};\n\nconst STATIC_ICONS = {\n info: <Info className=\"text-blue-400\" />,\n success: <Check className=\"text-green-400\" />,\n error: <OctagonX className=\"text-red-400\" />,\n warning: <OctagonAlert className=\"text-yellow-400\" />,\n confirm: <CircleQuestionMark />,\n};\n\nconst StaticModal = ({\n id,\n status,\n mode,\n title,\n content,\n okText,\n cancelText,\n container,\n icon,\n onOk,\n onCancel,\n onOpenChangeComplete,\n ...props\n}: StaticProps & { id: string }): React.ReactPortal | null => {\n const { locale } = useConfig();\n const [open, setOpen] = useState(true);\n const closing = useRef(false);\n const resolvedOkText = okText ?? locale.ok ?? DEFAULT_LOCALE.ok;\n const resolvedCancelText =\n cancelText ?? locale.cancel ?? DEFAULT_LOCALE.cancel;\n // `confirm` is an interaction mode (two-button footer), not a status; the\n // semantic state comes from `status`.\n const isConfirm = mode === 'confirm';\n\n const closeModal = (callback?: () => void) => {\n if (closing.current) {\n return;\n }\n\n closing.current = true;\n setOpen(false);\n callback?.();\n };\n\n const footer = isConfirm ? (\n <div className=\"grid w-full grid-cols-5 gap-x-2\">\n <Button\n variant=\"outlined\"\n className=\"col-span-2\"\n onClick={() => closeModal(onCancel)}\n >\n {resolvedCancelText}\n </Button>\n <Button\n type=\"primary\"\n className=\"col-span-3\"\n onClick={() => closeModal(onOk)}\n >\n {resolvedOkText}\n </Button>\n </div>\n ) : (\n <Button\n type=\"primary\"\n className={cn(\n 'grow',\n //\n )}\n onClick={() => closeModal(onOk)}\n >\n {resolvedOkText}\n </Button>\n );\n\n if (!isBrowser) {\n return null;\n }\n\n return createPortal(\n <Modal\n open={open}\n footer={footer}\n className={cn(\n 'z-10000',\n 'box-content w-100',\n 'rounded-3xl p-4',\n 'gap-y-0',\n )}\n classNames={{\n mask: 'z-10000 bg-black/[.6]',\n body: cn(\n 'text-black-70 whitespace-pre-wrap text-center',\n content && 'mt-3',\n ),\n footer: 'mt-9',\n }}\n title={\n <p\n className={cn(\n 'text-center text-lg leading-normal whitespace-pre-wrap',\n 'flex items-center justify-center gap-x-2',\n //\n )}\n >\n {icon ||\n (isConfirm ? STATIC_ICONS.confirm : status && STATIC_ICONS[status])}\n {title}\n </p>\n }\n container={container}\n onCancel={() => closeModal(onCancel)}\n {...props}\n onOpenChangeComplete={open => {\n if (!open) {\n modalStack.destroy(id);\n }\n\n onOpenChangeComplete?.(open);\n }}\n >\n {content}\n </Modal>,\n modalStack.getRootElement(container)!,\n );\n};\n\n// No `role`/`aria-modal` here — this element is only a mount point for the\n// imperative stack, not the dialog itself. Base UI already renders its own\n// `role=\"dialog\"`/`aria-modal=\"true\"` on the actual `DialogContent` via\n// portal once a modal is open. Setting it here as well would (a) leave\n// `aria-modal=\"true\"` on the page permanently, even with zero modals open,\n// hiding the rest of the document from screen readers, and (b) duplicate\n// Base UI's own dialog role once one is open.\nconst modalStack: ImperativeStack<StaticProps> =\n createImperativeStack<StaticProps>({\n createRootElement: () => {\n const el = document.createElement('div');\n el.style.zIndex = '10000';\n el.style.position = 'absolute';\n return el;\n },\n StackItem: StaticModal,\n });\n\n/** Immediately removes a modal without waiting for its closing animation. */\nModal.destroy = modalStack.destroy;\n\n/** Immediately removes all modals, including those currently closing. */\nModal.destroyAll = () => {\n modalStack.destroy();\n};\n\nModal.info = (props: StaticProps) =>\n modalStack.render({ status: 'info', ...props });\nModal.success = (props: StaticProps) =>\n modalStack.render({ status: 'success', ...props });\nModal.error = (props: StaticProps) =>\n modalStack.render({ status: 'error', ...props });\nModal.warning = (props: StaticProps) =>\n modalStack.render({ status: 'warning', ...props });\n// `confirm` is a mode, not a status, so it rides its own `mode` axis rather\n// than `status`.\nModal.confirm = (props: StaticProps) =>\n modalStack.render({ mode: 'confirm', ...props });\n\nexport default Modal;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../../../../src/components/organisms/swiper/index.ts"],"mappings":";;;KAGK,
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":["SwiperImpl"],"sources":["../../../../src/components/organisms/swiper/index.ts"],"mappings":";;;KAGK,yBAAyBA;EAAe,cAAc;;cAErD,QAAuB"}
|
|
@@ -2,7 +2,7 @@ import { SwiperProps } from "swiper/react";
|
|
|
2
2
|
import "swiper/css";
|
|
3
3
|
import { SwiperModule, SwiperOptions } from "swiper/types";
|
|
4
4
|
//#region src/components/organisms/swiper/swiper.d.ts
|
|
5
|
-
interface Props<T> extends SwiperProps {
|
|
5
|
+
export interface Props<T> extends SwiperProps {
|
|
6
6
|
loading?: boolean;
|
|
7
7
|
loader?: React.ReactNode;
|
|
8
8
|
loadingClassName?: string;
|
|
@@ -27,5 +27,5 @@ interface Props<T> extends SwiperProps {
|
|
|
27
27
|
}
|
|
28
28
|
declare const Swiper$1: <T>({ loading, loader, options, modules, data, style, className, renderItem, loadingClassName, ...props }: Props<T>) => import("react").JSX.Element;
|
|
29
29
|
//#endregion
|
|
30
|
-
export {
|
|
30
|
+
export { Swiper$1 as default };
|
|
31
31
|
//# sourceMappingURL=swiper.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swiper.d.mts","names":[],"sources":["../../../../src/components/organisms/swiper/swiper.tsx"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"swiper.d.mts","names":["Swiper"],"sources":["../../../../src/components/organisms/swiper/swiper.tsx"],"mappings":";;;;iBA+BiB,MAAM,WAAW;EAChC;EACA,SAAS,MAAM;EACf;EACA,UAAU;;;;;;;;;;;;;;;EAeV,UAAU;EACV,MAAM;EACN,WAAW,MAAM,GAAG,cAAc,MAAM;;cAGpCA,WAAU,KAAI,SAAA,QAAA,SAAA,SAAA,MAAA,OAAA,WAAA,YAAA,qBAAA,SAWjB,MAAM,uBAAE,IAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
//#region src/components/organisms/toast.d.ts
|
|
2
2
|
type ToastStatus = 'info' | 'success' | 'error' | 'warning';
|
|
3
|
-
interface Props {
|
|
3
|
+
export interface Props {
|
|
4
4
|
status?: ToastStatus;
|
|
5
5
|
title: React.ReactNode;
|
|
6
6
|
description?: React.ReactNode;
|
|
@@ -26,5 +26,5 @@ declare const Toast: {
|
|
|
26
26
|
};
|
|
27
27
|
type TriggerOptions = Omit<StaticProps, 'status' | 'title'>;
|
|
28
28
|
//#endregion
|
|
29
|
-
export {
|
|
29
|
+
export { type StaticProps as ToastOptions, Toast as default };
|
|
30
30
|
//# sourceMappingURL=toast.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toast.d.mts","names":[],"sources":["../../../src/components/organisms/toast.tsx"],"mappings":";KAkBK;
|
|
1
|
+
{"version":3,"file":"toast.d.mts","names":[],"sources":["../../../src/components/organisms/toast.tsx"],"mappings":";KAkBK;iBAEY;EACf,SAAS;EACT,OAAO,MAAM;EACb,cAAc,MAAM;EACpB,OAAO,MAAM;EACb;EACA,SAAS,MAAM;EACf;EACA;;UAGQ,oBAAoB;EAC5B;EACA;EACA,YAAY;;cAUR;KASH,QAAA,OAAA,aAAA,MAAA,UAAA,QAAA,WAAA,WAAA,wBAAK,IAAA;;;EAqHa,KAAA,OAAA,MAAM,WAAS,QAAU;EAEtB,QAAA,OAAA,MAAM,WAAS,QAAU;EAE3B,MAAA,OAAA,MAAM,WAAS,QAAU;EAEvB,QAAA,OAAA,MAAM,WAAS,QAAU;;KAR5C,iBAAiB,KAAK"}
|
|
@@ -3,10 +3,10 @@ import { cn } from "../../utils.mjs";
|
|
|
3
3
|
import { DEFAULT_LOCALE, useConfig } from "../../providers/config/context.mjs";
|
|
4
4
|
import Button from "../../Button.mjs";
|
|
5
5
|
import { createImperativeStack, isBrowser } from "./imperative-stack.mjs";
|
|
6
|
-
import { Check, Info, OctagonAlert, OctagonX, X } from "lucide-react";
|
|
7
6
|
import { useState } from "react";
|
|
8
7
|
import { useTimeout } from "@jbpark/use-hooks";
|
|
9
8
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
+
import { Check, Info, OctagonAlert, OctagonX, X } from "lucide-react";
|
|
10
10
|
import { createPortal } from "react-dom";
|
|
11
11
|
//#region src/components/organisms/toast.tsx
|
|
12
12
|
const STATUS_ICONS = {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { useRender } from "@base-ui/react/use-render";
|
|
2
2
|
//#region src/components/templates/container.d.ts
|
|
3
3
|
type MaxWidth = '3xs' | '2xs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' | '5xl' | '6xl' | '7xl' | 'full' | 'none';
|
|
4
|
-
interface Props extends Omit<useRender.ComponentProps<'div'>, 'className'> {
|
|
4
|
+
export interface Props extends Omit<useRender.ComponentProps<'div'>, 'className'> {
|
|
5
5
|
maxWidth?: MaxWidth;
|
|
6
6
|
padded?: boolean;
|
|
7
7
|
className?: string;
|
|
8
8
|
}
|
|
9
9
|
declare const Container: ({ className, maxWidth, padded, render, ...props }: Props) => import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
10
10
|
//#endregion
|
|
11
|
-
export {
|
|
11
|
+
export { Container as default };
|
|
12
12
|
//# sourceMappingURL=container.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container.d.mts","names":[],"sources":["../../../src/components/templates/container.tsx"],"mappings":";;KAMK;
|
|
1
|
+
{"version":3,"file":"container.d.mts","names":[],"sources":["../../../src/components/templates/container.tsx"],"mappings":";;KAMK;iBAmCY,cAAc,KAC7B,UAAU;EAGV,WAAW;EACX;EACA;;cAMI,cAAa,WAAA,UAAA,QAAA,WAAA,SAMhB,0BAAK,+CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
//#region src/components/templates/empty.d.ts
|
|
2
|
-
interface Props extends Omit<React.ComponentProps<'div'>, 'title'> {
|
|
2
|
+
export interface Props extends Omit<React.ComponentProps<'div'>, 'title'> {
|
|
3
3
|
icon?: React.ReactNode;
|
|
4
4
|
title?: React.ReactNode;
|
|
5
5
|
description?: React.ReactNode;
|
|
@@ -7,5 +7,5 @@ interface Props extends Omit<React.ComponentProps<'div'>, 'title'> {
|
|
|
7
7
|
}
|
|
8
8
|
declare const Empty: ({ icon, title, description, action, className, ...props }: Props) => import("react").JSX.Element;
|
|
9
9
|
//#endregion
|
|
10
|
-
export {
|
|
10
|
+
export { Empty as default };
|
|
11
11
|
//# sourceMappingURL=empty.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"empty.d.mts","names":[],"sources":["../../../src/components/templates/empty.tsx"],"mappings":";
|
|
1
|
+
{"version":3,"file":"empty.d.mts","names":[],"sources":["../../../src/components/templates/empty.tsx"],"mappings":";iBAIiB,cAAc,KAAK,MAAM;EACxC,OAAO,MAAM;EACb,QAAQ,MAAM;EACd,cAAc,MAAM;EACpB,SAAS,MAAM;;cAQX,UAAS,MAAA,OAAA,aAAA,QAAA,cAAA,SAOZ,0BAAK,IAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { cn } from "../../utils.mjs";
|
|
2
|
-
import { Inbox } from "lucide-react";
|
|
3
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Inbox } from "lucide-react";
|
|
4
4
|
//#region src/components/templates/empty.tsx
|
|
5
5
|
const Empty = ({ icon, title, description = "No data", action, className, ...props }) => {
|
|
6
6
|
return /* @__PURE__ */ jsxs("div", {
|
|
@@ -4,7 +4,7 @@ interface ResponsiveColSpan {
|
|
|
4
4
|
offset?: number;
|
|
5
5
|
}
|
|
6
6
|
type ColSpanProp = number | ResponsiveColSpan;
|
|
7
|
-
interface Props extends React.ComponentProps<'div'> {
|
|
7
|
+
export interface Props extends React.ComponentProps<'div'> {
|
|
8
8
|
span?: number;
|
|
9
9
|
offset?: number;
|
|
10
10
|
xs?: ColSpanProp;
|
|
@@ -16,5 +16,5 @@ interface Props extends React.ComponentProps<'div'> {
|
|
|
16
16
|
}
|
|
17
17
|
declare const Col: ({ span, offset, xs, sm, md, lg, xl, "2xl": xxl, className, style, children, ...props }: Props) => import("react").JSX.Element;
|
|
18
18
|
//#endregion
|
|
19
|
-
export {
|
|
19
|
+
export { Col as default };
|
|
20
20
|
//# sourceMappingURL=col.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"col.d.mts","names":[],"sources":["../../../../src/components/templates/grid/col.tsx"],"mappings":";UAUU;EACR;EACA;;KAGG,uBAAuB;
|
|
1
|
+
{"version":3,"file":"col.d.mts","names":[],"sources":["../../../../src/components/templates/grid/col.tsx"],"mappings":";UAUU;EACR;EACA;;KAGG,uBAAuB;iBAEX,cAAc,MAAM;EACnC;EACA;EACA,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,QAAQ;;cAsDJ,QAAO,MAAA,QAAA,IAAA,IAAA,IAAA,IAAA,WAAA,KAAA,WAAA,OAAA,aAAA,SAaV,0BAAK,IAAA"}
|
|
@@ -13,7 +13,7 @@ declare const JUSTIFY_CLASSES: {
|
|
|
13
13
|
'space-between': string;
|
|
14
14
|
'space-evenly': string;
|
|
15
15
|
};
|
|
16
|
-
interface Props extends React.ComponentProps<'div'> {
|
|
16
|
+
export interface Props extends React.ComponentProps<'div'> {
|
|
17
17
|
gutter?: number | [number, number];
|
|
18
18
|
align?: keyof typeof ALIGN_CLASSES;
|
|
19
19
|
justify?: keyof typeof JUSTIFY_CLASSES;
|
|
@@ -21,5 +21,5 @@ interface Props extends React.ComponentProps<'div'> {
|
|
|
21
21
|
}
|
|
22
22
|
declare const Row: ({ gutter, align, justify, wrap, className, style, children, ...props }: Props) => import("react").JSX.Element;
|
|
23
23
|
//#endregion
|
|
24
|
-
export {
|
|
24
|
+
export { Row as default };
|
|
25
25
|
//# sourceMappingURL=row.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"row.d.mts","names":[],"sources":["../../../../src/components/templates/grid/row.tsx"],"mappings":";cAQM;;;;;;cAOA;;;;;;;;
|
|
1
|
+
{"version":3,"file":"row.d.mts","names":[],"sources":["../../../../src/components/templates/grid/row.tsx"],"mappings":";cAQM;;;;;;cAOA;;;;;;;;iBASW,cAAc,MAAM;EACnC;EACA,qBAAqB;EACrB,uBAAuB;EACvB;;cAGI,QAAO,QAAA,OAAA,SAAA,MAAA,WAAA,OAAA,aAAA,SASV,0BAAK,IAAA"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { useRender } from "@base-ui/react/use-render";
|
|
2
2
|
//#region src/components/templates/layout/content.d.ts
|
|
3
|
-
interface Props extends Omit<useRender.ComponentProps<'main'>, 'className'> {
|
|
3
|
+
export interface Props extends Omit<useRender.ComponentProps<'main'>, 'className'> {
|
|
4
4
|
className?: string;
|
|
5
5
|
}
|
|
6
6
|
declare const Content: ({ children, className, render, ...props }: Props) => import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
7
7
|
//#endregion
|
|
8
|
-
export {
|
|
8
|
+
export { Content as default };
|
|
9
9
|
//# sourceMappingURL=content.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.d.mts","names":[],"sources":["../../../../src/components/templates/layout/content.tsx"],"mappings":";;
|
|
1
|
+
{"version":3,"file":"content.d.mts","names":[],"sources":["../../../../src/components/templates/layout/content.tsx"],"mappings":";;iBAQiB,cAAc,KAC7B,UAAU;EAGV;;cAGI,YAAW,UAAA,WAAA,WAAA,SAA2C,0BAAK,+CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
//#region src/components/templates/layout/footer.d.ts
|
|
2
|
-
interface Props extends React.ComponentProps<'footer'> {}
|
|
2
|
+
export interface Props extends React.ComponentProps<'footer'> {}
|
|
3
3
|
declare const Footer: ({ children, className, ...props }: Props) => import("react").JSX.Element;
|
|
4
4
|
//#endregion
|
|
5
|
-
export {
|
|
5
|
+
export { Footer as default };
|
|
6
6
|
//# sourceMappingURL=footer.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"footer.d.mts","names":[],"sources":["../../../../src/components/templates/layout/footer.tsx"],"mappings":";
|
|
1
|
+
{"version":3,"file":"footer.d.mts","names":[],"sources":["../../../../src/components/templates/layout/footer.tsx"],"mappings":";iBAEiB,cAAc,MAAM;cAE/B,WAAU,UAAA,cAAA,SAAmC,0BAAK,IAAA"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
//#region src/components/templates/layout/header.d.ts
|
|
2
|
-
interface Props extends React.ComponentProps<'header'> {
|
|
2
|
+
export interface Props extends React.ComponentProps<'header'> {
|
|
3
3
|
position?: 'sticky' | 'static' | 'fixed';
|
|
4
4
|
}
|
|
5
5
|
declare const Header: ({ children, className, position, ...props }: Props) => import("react").JSX.Element;
|
|
6
6
|
//#endregion
|
|
7
|
-
export {
|
|
7
|
+
export { Header as default };
|
|
8
8
|
//# sourceMappingURL=header.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header.d.mts","names":[],"sources":["../../../../src/components/templates/layout/header.tsx"],"mappings":";
|
|
1
|
+
{"version":3,"file":"header.d.mts","names":[],"sources":["../../../../src/components/templates/layout/header.tsx"],"mappings":";iBAIiB,cAAc,MAAM;EACnC;;cAGI,WAAU,UAAA,WAAA,aAAA,SAKb,0BAAK,IAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
//#region src/components/templates/layout/layout.d.ts
|
|
2
|
-
interface Props extends React.ComponentProps<'div'> {}
|
|
2
|
+
export interface Props extends React.ComponentProps<'div'> {}
|
|
3
3
|
declare const Layout: ({ children, className, ...props }: Props) => import("react").JSX.Element;
|
|
4
4
|
//#endregion
|
|
5
|
-
export {
|
|
5
|
+
export { Layout as default };
|
|
6
6
|
//# sourceMappingURL=layout.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.d.mts","names":[],"sources":["../../../../src/components/templates/layout/layout.tsx"],"mappings":";
|
|
1
|
+
{"version":3,"file":"layout.d.mts","names":[],"sources":["../../../../src/components/templates/layout/layout.tsx"],"mappings":";iBAciB,cAAc,MAAM;cAgB/B,WAAU,UAAA,cAAA,SAAmC,0BAAK,IAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
//#region src/components/templates/layout/sider.d.ts
|
|
2
2
|
type Breakpoint = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
|
|
3
|
-
interface Props extends Omit<React.ComponentProps<'aside'>, 'onCollapse'> {
|
|
3
|
+
export interface Props extends Omit<React.ComponentProps<'aside'>, 'onCollapse'> {
|
|
4
4
|
width?: number | string;
|
|
5
5
|
collapsedWidth?: number | string;
|
|
6
6
|
collapsible?: boolean;
|
|
@@ -18,5 +18,5 @@ interface Props extends Omit<React.ComponentProps<'aside'>, 'onCollapse'> {
|
|
|
18
18
|
}
|
|
19
19
|
declare const Sider: ({ children, className, classNames, style, width, collapsedWidth, collapsible, defaultCollapsed, collapsed: _collapsed, placement, reverseArrow, trigger, breakpoint, onCollapse, onBreakpoint, ...props }: Props) => import("react").JSX.Element;
|
|
20
20
|
//#endregion
|
|
21
|
-
export {
|
|
21
|
+
export { Sider as default };
|
|
22
22
|
//# sourceMappingURL=sider.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sider.d.mts","names":[],"sources":["../../../../src/components/templates/layout/sider.tsx"],"mappings":";KAYK;
|
|
1
|
+
{"version":3,"file":"sider.d.mts","names":[],"sources":["../../../../src/components/templates/layout/sider.tsx"],"mappings":";KAYK;iBAQY,cAAc,KAC7B,MAAM;EAGN;EACA;EACA;EACA;EACA;EACA;EACA;EACA,UAAU,MAAM;EAChB;IACE;;EAEF,aAAa;EACb,cAAc;EACd,gBAAgB;;cAMZ,UAAS,UAAA,WAAA,YAAA,OAAA,OAAA,gBAAA,aAAA,kBAAA,WAAA,YAAA,WAAA,cAAA,SAAA,YAAA,YAAA,iBAAA,SAiBZ,0BAAK,IAAA"}
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
import { cn } from "../../../utils.mjs";
|
|
3
3
|
import { DEFAULT_LOCALE, useConfig } from "../../../providers/config/context.mjs";
|
|
4
4
|
import { useRegisterSider } from "./sider-context.mjs";
|
|
5
|
-
import { PanelLeftClose, PanelLeftOpen } from "lucide-react";
|
|
6
5
|
import { useEffect, useId, useRef } from "react";
|
|
7
6
|
import { useControllableState, useResponsiveSize } from "@jbpark/use-hooks";
|
|
8
7
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
import { PanelLeftClose, PanelLeftOpen } from "lucide-react";
|
|
9
9
|
//#region src/components/templates/layout/sider.tsx
|
|
10
10
|
const BREAKPOINT_ORDER = [
|
|
11
11
|
"xs",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
//#region src/components/templates/page-header.d.ts
|
|
2
|
-
interface Props extends Omit<React.ComponentProps<'div'>, 'title'> {
|
|
2
|
+
export interface Props extends Omit<React.ComponentProps<'div'>, 'title'> {
|
|
3
3
|
title?: React.ReactNode;
|
|
4
4
|
subTitle?: React.ReactNode;
|
|
5
5
|
extra?: React.ReactNode;
|
|
@@ -14,5 +14,5 @@ interface Props extends Omit<React.ComponentProps<'div'>, 'title'> {
|
|
|
14
14
|
}
|
|
15
15
|
declare const PageHeader: ({ title, subTitle, extra, backIcon, onBack, className, classNames, children, ...props }: Props) => import("react").JSX.Element;
|
|
16
16
|
//#endregion
|
|
17
|
-
export {
|
|
17
|
+
export { PageHeader as default };
|
|
18
18
|
//# sourceMappingURL=page-header.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-header.d.mts","names":[],"sources":["../../../src/components/templates/page-header.tsx"],"mappings":";
|
|
1
|
+
{"version":3,"file":"page-header.d.mts","names":[],"sources":["../../../src/components/templates/page-header.tsx"],"mappings":";iBASiB,cAAc,KAAK,MAAM;EACxC,QAAQ,MAAM;EACd,WAAW,MAAM;EACjB,QAAQ,MAAM;EACd,WAAW,MAAM;EACjB;EACA;IACE;IACA;IACA;IACA;;;cAOE,eAAc,OAAA,UAAA,OAAA,UAAA,QAAA,WAAA,YAAA,aAAA,SAUjB,0BAAK,IAAA"}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
import { cn } from "../../utils.mjs";
|
|
3
3
|
import { DEFAULT_LOCALE, useConfig } from "../../providers/config/context.mjs";
|
|
4
4
|
import Button from "../../Button.mjs";
|
|
5
|
-
import { ArrowLeft } from "lucide-react";
|
|
6
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
import { ArrowLeft } from "lucide-react";
|
|
7
7
|
//#region src/components/templates/page-header.tsx
|
|
8
8
|
const PageHeader = ({ title, subTitle, extra, backIcon, onBack, className, classNames, children, ...props }) => {
|
|
9
9
|
const { locale } = useConfig();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
//#region src/components/templates/result.d.ts
|
|
2
2
|
type Status = 'success' | 'error' | 'info' | 'warning' | '404' | '403' | '500';
|
|
3
|
-
interface Props extends Omit<React.ComponentProps<'div'>, 'title'> {
|
|
3
|
+
export interface Props extends Omit<React.ComponentProps<'div'>, 'title'> {
|
|
4
4
|
status?: Status;
|
|
5
5
|
icon?: React.ReactNode;
|
|
6
6
|
title?: React.ReactNode;
|
|
@@ -9,5 +9,5 @@ interface Props extends Omit<React.ComponentProps<'div'>, 'title'> {
|
|
|
9
9
|
}
|
|
10
10
|
declare const Result: ({ status, icon, title, subTitle, extra, className, children, ...props }: Props) => import("react").JSX.Element;
|
|
11
11
|
//#endregion
|
|
12
|
-
export {
|
|
12
|
+
export { Result as default };
|
|
13
13
|
//# sourceMappingURL=result.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result.d.mts","names":[],"sources":["../../../src/components/templates/result.tsx"],"mappings":";KAYK;
|
|
1
|
+
{"version":3,"file":"result.d.mts","names":[],"sources":["../../../src/components/templates/result.tsx"],"mappings":";KAYK;iBAeY,cAAc,KAAK,MAAM;EACxC,SAAS;EACT,OAAO,MAAM;EACb,QAAQ,MAAM;EACd,WAAW,MAAM;EACjB,QAAQ,MAAM;;cAMV,WAAU,QAAA,MAAA,OAAA,UAAA,OAAA,WAAA,aAAA,SASb,0BAAK,IAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { cn } from "../../utils.mjs";
|
|
2
|
-
import { Check, FileQuestion, Info, OctagonAlert, OctagonX, ServerCrash, ShieldAlert } from "lucide-react";
|
|
3
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Check, FileQuestion, Info, OctagonAlert, OctagonX, ServerCrash, ShieldAlert } from "lucide-react";
|
|
4
4
|
//#region src/components/templates/result.tsx
|
|
5
5
|
const STATUS_ICONS = {
|
|
6
6
|
success: /* @__PURE__ */ jsx(Check, { className: "text-green-400" }),
|
package/dist/core/accordion.mjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { __exportAll } from "../_virtual/_rolldown/runtime.mjs";
|
|
3
3
|
import { cn } from "../utils.mjs";
|
|
4
|
-
import { ChevronDownIcon } from "lucide-react";
|
|
5
4
|
import "react";
|
|
6
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
6
|
import { Accordion } from "@base-ui/react/accordion";
|
|
7
|
+
import { ChevronDownIcon } from "lucide-react";
|
|
8
8
|
//#region src/core/accordion.tsx
|
|
9
9
|
var accordion_exports = /* @__PURE__ */ __exportAll({
|
|
10
10
|
Accordion: () => Accordion$1,
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { __exportAll } from "../_virtual/_rolldown/runtime.mjs";
|
|
3
|
+
import { cn } from "../utils.mjs";
|
|
4
|
+
import { useConfig } from "../providers/config/context.mjs";
|
|
5
|
+
import { OVERLAY_LAYER } from "../lib/z-layers.mjs";
|
|
6
|
+
import { jsx } from "react/jsx-runtime";
|
|
7
|
+
import { Autocomplete } from "@base-ui/react/autocomplete";
|
|
8
|
+
//#region src/core/autocomplete.tsx
|
|
9
|
+
var autocomplete_exports = /* @__PURE__ */ __exportAll({
|
|
10
|
+
Autocomplete: () => Autocomplete$1,
|
|
11
|
+
AutocompleteClear: () => AutocompleteClear,
|
|
12
|
+
AutocompleteContent: () => AutocompleteContent,
|
|
13
|
+
AutocompleteEmpty: () => AutocompleteEmpty,
|
|
14
|
+
AutocompleteInput: () => AutocompleteInput,
|
|
15
|
+
AutocompleteItem: () => AutocompleteItem,
|
|
16
|
+
AutocompleteList: () => AutocompleteList
|
|
17
|
+
});
|
|
18
|
+
const Autocomplete$1 = Autocomplete.Root;
|
|
19
|
+
const AutocompleteInput = Autocomplete.Input;
|
|
20
|
+
const AutocompleteClear = Autocomplete.Clear;
|
|
21
|
+
const AutocompleteList = Autocomplete.List;
|
|
22
|
+
const AutocompleteItem = Autocomplete.Item;
|
|
23
|
+
const AutocompleteEmpty = Autocomplete.Empty;
|
|
24
|
+
function AutocompleteContent({ container, className, ...props }) {
|
|
25
|
+
const { getContainer } = useConfig();
|
|
26
|
+
return /* @__PURE__ */ jsx(Autocomplete.Portal, {
|
|
27
|
+
container: container ?? getContainer(),
|
|
28
|
+
children: /* @__PURE__ */ jsx(Autocomplete.Positioner, {
|
|
29
|
+
side: "bottom",
|
|
30
|
+
align: "start",
|
|
31
|
+
sideOffset: 4,
|
|
32
|
+
className: cn(OVERLAY_LAYER, "w-(--anchor-width) max-w-(--available-width)"),
|
|
33
|
+
children: /* @__PURE__ */ jsx(Autocomplete.Popup, {
|
|
34
|
+
"data-slot": "autocomplete-content",
|
|
35
|
+
className: cn(`bg-popover text-popover-foreground max-h-(--available-height)
|
|
36
|
+
origin-(--transform-origin) overflow-hidden rounded-md border
|
|
37
|
+
shadow-md transition-[opacity,transform] duration-150
|
|
38
|
+
data-ending-style:scale-95 data-ending-style:opacity-0
|
|
39
|
+
data-starting-style:scale-95 data-starting-style:opacity-0`, className),
|
|
40
|
+
...props
|
|
41
|
+
})
|
|
42
|
+
})
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
//#endregion
|
|
46
|
+
export { Autocomplete$1 as Autocomplete, AutocompleteClear, AutocompleteContent, AutocompleteEmpty, AutocompleteInput, AutocompleteItem, AutocompleteList, autocomplete_exports };
|
|
47
|
+
|
|
48
|
+
//# sourceMappingURL=autocomplete.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autocomplete.mjs","names":["Autocomplete","Primitive"],"sources":["../../src/core/autocomplete.tsx"],"sourcesContent":["'use client';\n\nimport type { ComponentProps } from 'react';\n\nimport { Autocomplete as Primitive } from '@base-ui/react/autocomplete';\n\nimport { useConfig } from '@repo/ui/providers';\nimport { cn } from '@repo/ui/utils';\n\nimport { OVERLAY_LAYER } from '../lib/z-layers';\n\nexport const Autocomplete = Primitive.Root;\nexport const AutocompleteInput = Primitive.Input;\nexport const AutocompleteClear = Primitive.Clear;\nexport const AutocompleteList = Primitive.List;\nexport const AutocompleteItem = Primitive.Item;\nexport const AutocompleteEmpty = Primitive.Empty;\n\nexport function AutocompleteContent({\n container,\n className,\n ...props\n}: ComponentProps<typeof Primitive.Popup> & { container?: HTMLElement }) {\n const { getContainer } = useConfig();\n\n return (\n <Primitive.Portal container={container ?? getContainer()}>\n <Primitive.Positioner\n side=\"bottom\"\n align=\"start\"\n sideOffset={4}\n className={cn(\n OVERLAY_LAYER,\n 'w-(--anchor-width) max-w-(--available-width)', //\n )}\n >\n <Primitive.Popup\n data-slot=\"autocomplete-content\"\n className={cn(\n `bg-popover text-popover-foreground max-h-(--available-height)\n origin-(--transform-origin) overflow-hidden rounded-md border\n shadow-md transition-[opacity,transform] duration-150\n data-ending-style:scale-95 data-ending-style:opacity-0\n data-starting-style:scale-95 data-starting-style:opacity-0`,\n className, //\n )}\n {...props}\n />\n </Primitive.Positioner>\n </Primitive.Portal>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAWA,MAAaA,iBAAeC,aAAU;AACtC,MAAa,oBAAoBA,aAAU;AAC3C,MAAa,oBAAoBA,aAAU;AAC3C,MAAa,mBAAmBA,aAAU;AAC1C,MAAa,mBAAmBA,aAAU;AAC1C,MAAa,oBAAoBA,aAAU;AAE3C,SAAgB,oBAAoB,EAClC,WACA,WACA,GAAG,SACoE;CACvE,MAAM,EAAE,iBAAiB,UAAU;CAEnC,OACE,oBAACA,aAAU,QAAX;EAAkB,WAAW,aAAa,aAAa;EACrD,UAAA,oBAACA,aAAU,YAAX;GACE,MAAK;GACL,OAAM;GACN,YAAY;GACZ,WAAW,GACT,eACA,8CACF;GAEA,UAAA,oBAACA,aAAU,OAAX;IACE,aAAU;IACV,WAAW,GACT;;;;yEAKA,SACF;IACA,GAAI;GACL,CAAA;EACmB,CAAA;CACN,CAAA;AAEtB"}
|
package/dist/core/badge.d.mts
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { useRender } from "@base-ui/react/use-render";
|
|
2
2
|
import { VariantProps } from "class-variance-authority";
|
|
3
|
-
|
|
3
|
+
declare namespace badge_d_exports {
|
|
4
|
+
export { Badge, Props, badgeVariants };
|
|
5
|
+
}
|
|
4
6
|
declare const badgeVariants: (props?: ({
|
|
5
|
-
variant?: "link" | "
|
|
7
|
+
variant?: "link" | "default" | "secondary" | "destructive" | "outline" | "ghost" | null | undefined;
|
|
6
8
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
7
9
|
type Props = Omit<useRender.ComponentProps<'span'>, 'className'> & VariantProps<typeof badgeVariants> & {
|
|
8
10
|
className?: string;
|
|
9
11
|
};
|
|
10
12
|
declare function Badge({ className, variant, render, ...props }: Props): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
11
13
|
//#endregion
|
|
12
|
-
export { Badge, type Props, badgeVariants };
|
|
14
|
+
export { Badge, type Props, badgeVariants, badge_d_exports };
|
|
13
15
|
//# sourceMappingURL=badge.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"badge.d.mts","names":[],"sources":["../../src/core/badge.tsx"],"mappings":"
|
|
1
|
+
{"version":3,"file":"badge.d.mts","names":[],"sources":["../../src/core/badge.tsx"],"mappings":";;;;;cAUM,gBAAa;;6CA0BlB;KAEI,QAAQ,KAAK,UAAU,uCAC1B,oBAAoB;EAClB;;iBAGK,QAAQ,WAAW,SAAqB,WAAW,SAAS,wBAAK,+CAAA"}
|