@balikjs/mobile 0.0.1 → 0.1.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.
Files changed (104) hide show
  1. package/dist/index.js +3537 -0
  2. package/dist/styles.css +1 -1
  3. package/package.json +209 -10
  4. package/dist/mobile.js +0 -3062
  5. package/src/Alert/Alert.jsx +0 -67
  6. package/src/Alert/Alert.module.css +0 -87
  7. package/src/Alert/index.js +0 -1
  8. package/src/Avatar/Avatar.jsx +0 -77
  9. package/src/Avatar/Avatar.module.css +0 -74
  10. package/src/Avatar/index.js +0 -1
  11. package/src/Badge/Badge.jsx +0 -83
  12. package/src/Badge/Badge.module.css +0 -141
  13. package/src/Badge/index.js +0 -1
  14. package/src/BottomNavigation/BottomNavigation.jsx +0 -61
  15. package/src/BottomNavigation/BottomNavigation.module.css +0 -53
  16. package/src/BottomNavigation/index.js +0 -1
  17. package/src/BottomSheet/BottomSheet.jsx +0 -51
  18. package/src/BottomSheet/BottomSheet.module.css +0 -56
  19. package/src/BottomSheet/index.js +0 -1
  20. package/src/Button/Button.jsx +0 -77
  21. package/src/Button/Button.module.css +0 -124
  22. package/src/Button/index.js +0 -1
  23. package/src/Card/Card.jsx +0 -31
  24. package/src/Card/Card.module.css +0 -4
  25. package/src/Card/index.js +0 -1
  26. package/src/Checkbox/Checkbox.jsx +0 -64
  27. package/src/Checkbox/Checkbox.module.css +0 -146
  28. package/src/Checkbox/index.js +0 -1
  29. package/src/Clipboard/Clipboard.jsx +0 -82
  30. package/src/Clipboard/Clipboard.module.css +0 -126
  31. package/src/Clipboard/index.js +0 -1
  32. package/src/CloseButton/CloseButton.jsx +0 -51
  33. package/src/CloseButton/CloseButton.module.css +0 -94
  34. package/src/Confirm/Confirm.jsx +0 -52
  35. package/src/Confirm/Confirm.module.css +0 -5
  36. package/src/Confirm/index.js +0 -1
  37. package/src/Dialog/Dialog.jsx +0 -63
  38. package/src/Dialog/Dialog.module.css +0 -111
  39. package/src/Dialog/index.js +0 -1
  40. package/src/Divider/Divider.jsx +0 -38
  41. package/src/Divider/Divider.module.css +0 -16
  42. package/src/Divider/index.js +0 -1
  43. package/src/Drawer/Drawer.jsx +0 -55
  44. package/src/Drawer/Drawer.module.css +0 -68
  45. package/src/Drawer/index.js +0 -1
  46. package/src/Empty/Empty.jsx +0 -35
  47. package/src/Empty/Empty.module.css +0 -17
  48. package/src/Empty/index.js +0 -1
  49. package/src/Fab/Fab.jsx +0 -91
  50. package/src/Fab/Fab.module.css +0 -94
  51. package/src/Fab/index.js +0 -1
  52. package/src/Input/Input.jsx +0 -53
  53. package/src/Input/Input.module.css +0 -97
  54. package/src/Input/index.js +0 -1
  55. package/src/Link/Link.jsx +0 -31
  56. package/src/Link/Link.module.css +0 -18
  57. package/src/Link/index.js +0 -1
  58. package/src/Popover/Popover.jsx +0 -162
  59. package/src/Popover/Popover.module.css +0 -63
  60. package/src/Popover/index.js +0 -1
  61. package/src/RadioGroup/Radio.jsx +0 -52
  62. package/src/RadioGroup/Radio.module.css +0 -133
  63. package/src/RadioGroup/RadioGroup.jsx +0 -36
  64. package/src/RadioGroup/RadioGroup.module.css +0 -23
  65. package/src/RadioGroup/index.js +0 -2
  66. package/src/SearchInput/SearchInput.jsx +0 -89
  67. package/src/SearchInput/SearchInput.module.css +0 -169
  68. package/src/SearchInput/index.js +0 -1
  69. package/src/Select/Select.jsx +0 -101
  70. package/src/Select/Select.module.css +0 -174
  71. package/src/Select/index.js +0 -1
  72. package/src/SelectPc/Select.jsx +0 -88
  73. package/src/SelectPc/SelectPc.module.css +0 -132
  74. package/src/SelectPc/index.js +0 -1
  75. package/src/Skeleton/Skeleton.jsx +0 -55
  76. package/src/Skeleton/Skeleton.module.css +0 -33
  77. package/src/Skeleton/index.js +0 -1
  78. package/src/Slider/Slider.jsx +0 -50
  79. package/src/Slider/Slider.module.css +0 -77
  80. package/src/Slider/index.js +0 -1
  81. package/src/Spinner/Spinner.jsx +0 -45
  82. package/src/Spinner/Spinner.module.css +0 -35
  83. package/src/Spinner/index.js +0 -1
  84. package/src/Switch/Switch.jsx +0 -51
  85. package/src/Switch/Switch.module.css +0 -156
  86. package/src/Switch/index.js +0 -1
  87. package/src/Tabs/Tabs.jsx +0 -75
  88. package/src/Tabs/Tabs.module.css +0 -45
  89. package/src/Tabs/index.js +0 -1
  90. package/src/Tag/Tag.jsx +0 -74
  91. package/src/Tag/Tag.module.css +0 -128
  92. package/src/Tag/index.js +0 -1
  93. package/src/Textarea/Textarea.jsx +0 -52
  94. package/src/Textarea/Textarea.module.css +0 -89
  95. package/src/Textarea/index.js +0 -1
  96. package/src/Toast/Toast.jsx +0 -169
  97. package/src/Toast/Toast.module.css +0 -152
  98. package/src/Toast/index.js +0 -1
  99. package/src/Tooltip/Tooltip.jsx +0 -42
  100. package/src/Tooltip/Tooltip.module.css +0 -41
  101. package/src/Tooltip/index.js +0 -1
  102. package/src/index.js +0 -34
  103. package/src/styles/index.css +0 -90
  104. package/src/styles/tokens.css +0 -227
@@ -1,126 +0,0 @@
1
- .base {
2
- display: inline-flex;
3
- align-items: center;
4
- justify-content: center;
5
- gap: 6px;
6
- border: none;
7
- border-radius: var(--_border-radius);
8
- font-family: inherit;
9
- cursor: pointer;
10
- outline: none;
11
- color: var(--color-disabled-fg);
12
- background-color: transparent;
13
- user-select: none;
14
- touch-action: manipulation;
15
- -webkit-tap-highlight-color: transparent;
16
- transition: background-color var(--b-transition-fast),
17
- color var(--b-transition-fast);
18
- }
19
-
20
- @media (hover: hover) {
21
- .base:hover {
22
- color: var(--base-fg);
23
- background-color: color-mix(in oklch, var(--base-fg) 6%, var(--base-bg));
24
- }
25
- }
26
-
27
- .base:focus {
28
- outline: none;
29
- background-color: transparent;
30
- }
31
-
32
- .base:focus-visible {
33
- color: var(--base-fg);
34
- outline: 2px solid var(--color-focus-border);
35
- outline-offset: 2px;
36
- background-color: transparent;
37
- }
38
-
39
- .base:active {
40
- background-color: transparent;
41
- }
42
-
43
- .icon {
44
- flex-shrink: 0;
45
- }
46
-
47
- .copied {
48
- color: var(--color-success);
49
- }
50
-
51
- @media (hover: hover) {
52
- .copied:hover {
53
- color: var(--color-success);
54
- background-color: color-mix(in oklch, var(--color-success) 10%, var(--base-bg));
55
- }
56
- }
57
-
58
- .sizeXs {
59
- height: 28px;
60
- width: 28px;
61
- min-width: 28px;
62
- padding: 0;
63
- --_border-radius: var(--b-radius-l1-xs);
64
- --_icon-size: 14px;
65
- }
66
-
67
- .sizeXs .icon {
68
- width: 14px;
69
- height: 14px;
70
- }
71
-
72
- .sizeSm {
73
- height: 32px;
74
- width: 32px;
75
- min-width: 32px;
76
- padding: 0;
77
- --_border-radius: var(--b-radius-l1-sm);
78
- --_icon-size: 16px;
79
- }
80
-
81
- .sizeSm .icon {
82
- width: 16px;
83
- height: 16px;
84
- }
85
-
86
- .sizeMd {
87
- height: 36px;
88
- width: 36px;
89
- min-width: 36px;
90
- padding: 0;
91
- --_border-radius: var(--b-radius-l1-md);
92
- --_icon-size: 18px;
93
- }
94
-
95
- .sizeMd .icon {
96
- width: 18px;
97
- height: 18px;
98
- }
99
-
100
- .sizeLg {
101
- height: 40px;
102
- width: 40px;
103
- min-width: 40px;
104
- padding: 0;
105
- --_border-radius: var(--b-radius-l1-lg);
106
- --_icon-size: 20px;
107
- }
108
-
109
- .sizeLg .icon {
110
- width: 20px;
111
- height: 20px;
112
- }
113
-
114
- .sizeXl {
115
- height: 44px;
116
- width: 44px;
117
- min-width: 44px;
118
- padding: 0;
119
- --_border-radius: var(--b-radius-l1-xl);
120
- --_icon-size: 22px;
121
- }
122
-
123
- .sizeXl .icon {
124
- width: 22px;
125
- height: 22px;
126
- }
@@ -1 +0,0 @@
1
- export { Clipboard } from './Clipboard.jsx'
@@ -1,51 +0,0 @@
1
- import { splitProps, mergeProps } from 'solid-js'
2
- import { X } from 'lucide-solid'
3
- import styles from './CloseButton.module.css'
4
-
5
- const sizeMap = {
6
- xs: styles.sizeXs,
7
- sm: styles.sizeSm,
8
- md: styles.sizeMd,
9
- lg: styles.sizeLg,
10
- xl: styles.sizeXl,
11
- '2xl': styles.size2xl,
12
- }
13
-
14
- const DEFAULT_PROPS = {
15
- size: 'md',
16
- rounded: false,
17
- }
18
-
19
- /**
20
- * @param {import('solid-js').JSX.ButtonHTMLAttributes<HTMLButtonElement> & {
21
- * size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'
22
- * rounded?: boolean
23
- * class?: string
24
- * }} props
25
- */
26
- export function CloseButton(props) {
27
- const [local, rest] = splitProps(
28
- mergeProps(DEFAULT_PROPS, props),
29
- ['size', 'rounded', 'class'],
30
- )
31
-
32
- return (
33
- <button
34
- {...rest}
35
- type="button"
36
- aria-label="Close"
37
- class={[
38
- 'balik-close-button',
39
- `balik-close-button--${local.size}`,
40
- styles.base,
41
- sizeMap[local.size],
42
- local.rounded && styles.rounded,
43
- local.class,
44
- ]
45
- .filter(Boolean)
46
- .join(' ')}
47
- >
48
- <X aria-hidden="true" />
49
- </button>
50
- )
51
- }
@@ -1,94 +0,0 @@
1
- .base {
2
- display: inline-flex;
3
- align-items: center;
4
- justify-content: center;
5
- padding: 0;
6
- border: none;
7
- border-radius: var(--b-radius-l1-md);
8
- background: transparent;
9
- color: color-mix(in oklch, var(--base-fg) 40%, transparent);
10
- cursor: pointer;
11
- transition:
12
- color var(--b-transition-fast),
13
- background-color var(--b-transition-fast);
14
- }
15
-
16
- .base:hover {
17
- color: var(--base-fg);
18
- background-color: color-mix(in oklch, var(--base-fg) 8%, transparent);
19
- }
20
-
21
- .base:focus-visible {
22
- outline: 2px solid var(--base-edge);
23
- outline-offset: 2px;
24
- }
25
-
26
- .base svg {
27
- display: block;
28
- pointer-events: none;
29
- }
30
-
31
- .sizeXs {
32
- width: var(--b-comp-height-xs);
33
- height: var(--b-comp-height-xs);
34
- border-radius: var(--b-radius-l1-xs);
35
- }
36
-
37
- .sizeXs svg {
38
- width: 16px;
39
- height: 16px;
40
- }
41
-
42
- .sizeSm {
43
- width: var(--b-comp-height-sm);
44
- height: var(--b-comp-height-sm);
45
- }
46
-
47
- .sizeSm svg {
48
- width: 18px;
49
- height: 18px;
50
- }
51
-
52
- .sizeMd {
53
- width: var(--b-comp-height-md);
54
- height: var(--b-comp-height-md);
55
- }
56
-
57
- .sizeMd svg {
58
- width: 20px;
59
- height: 20px;
60
- }
61
-
62
- .sizeLg {
63
- width: var(--b-comp-height-lg);
64
- height: var(--b-comp-height-lg);
65
- }
66
-
67
- .sizeLg svg {
68
- width: 22px;
69
- height: 22px;
70
- }
71
-
72
- .sizeXl {
73
- width: var(--b-comp-height-xl);
74
- height: var(--b-comp-height-xl);
75
- }
76
-
77
- .sizeXl svg {
78
- width: 24px;
79
- height: 24px;
80
- }
81
-
82
- .size2xl {
83
- width: var(--b-comp-height-2xl);
84
- height: var(--b-comp-height-2xl);
85
- }
86
-
87
- .size2xl svg {
88
- width: 32px;
89
- height: 32px;
90
- }
91
-
92
- .rounded {
93
- border-radius: 50%;
94
- }
@@ -1,52 +0,0 @@
1
- import { splitProps, mergeProps } from 'solid-js'
2
- import { Dialog } from '../Dialog/Dialog.jsx'
3
- import { Button } from '../Button/Button.jsx'
4
- import styles from './Confirm.module.css'
5
-
6
- const DEFAULT_PROPS = {
7
- closeable: false,
8
- confirmLabel: 'Confirm',
9
- cancelLabel: 'Cancel',
10
- danger: false,
11
- loading: false,
12
- }
13
-
14
- /**
15
- * @param {import('../Dialog/Dialog.jsx').DialogProps & {
16
- * confirmLabel?: string
17
- * cancelLabel?: string
18
- * danger?: boolean
19
- * loading?: boolean
20
- * onConfirm?: () => void
21
- * onCancel?: () => void
22
- * }} props
23
- */
24
- export function Confirm(props) {
25
- const [local, rest] = splitProps(
26
- mergeProps(DEFAULT_PROPS, props),
27
- ['confirmLabel', 'cancelLabel', 'danger', 'loading', 'closeable', 'onConfirm', 'onCancel', 'onOpenChange', 'class', 'children'],
28
- )
29
-
30
- const handleConfirm = () => {
31
- local.onConfirm?.()
32
- }
33
-
34
- const handleCancel = () => {
35
- local.onCancel?.()
36
- local.onOpenChange?.({ open: false })
37
- }
38
-
39
- return (
40
- <Dialog {...rest} closeable={local.closeable} onOpenChange={local.onOpenChange} class={local.class}>
41
- {local.children}
42
- <div class={styles.actions}>
43
- <Button size="sm" onClick={handleCancel}>
44
- {local.cancelLabel}
45
- </Button>
46
- <Button size="sm" solid danger={local.danger} loading={local.loading} onClick={handleConfirm}>
47
- {local.confirmLabel}
48
- </Button>
49
- </div>
50
- </Dialog>
51
- )
52
- }
@@ -1,5 +0,0 @@
1
- .actions {
2
- display: flex;
3
- gap: var(--b-spacing-sm);
4
- justify-content: flex-end;
5
- }
@@ -1 +0,0 @@
1
- export { Confirm } from './Confirm.jsx'
@@ -1,63 +0,0 @@
1
- import { splitProps, mergeProps } from 'solid-js'
2
- import { Portal } from 'solid-js/web'
3
- import { Dialog as ArkDialog } from '@ark-ui/solid'
4
- import { CloseButton } from '../CloseButton/CloseButton.jsx'
5
- import styles from './Dialog.module.css'
6
-
7
- const DEFAULT_PROPS = {
8
- modal: true,
9
- lazyMount: true,
10
- unmountOnExit: true,
11
- closeable: true,
12
- }
13
-
14
- /**
15
- * @param {import('@ark-ui/solid').DialogRootProps & {
16
- * title?: string
17
- * description?: string
18
- * closeable?: boolean
19
- * class?: string
20
- * }} props
21
- */
22
- export function Dialog(props) {
23
- const [local, rest] = splitProps(
24
- mergeProps(DEFAULT_PROPS, props),
25
- ['title', 'description', 'class', 'children', 'modal', 'lazyMount', 'unmountOnExit', 'closeable'],
26
- )
27
-
28
- return (
29
- <ArkDialog.Root {...rest} modal={local.modal} lazyMount={local.lazyMount} unmountOnExit={local.unmountOnExit}>
30
- <Portal mount={document.body}>
31
- <ArkDialog.Backdrop class={styles.backdrop} />
32
- <ArkDialog.Positioner class={styles.positioner}>
33
- <ArkDialog.Content
34
- class={[
35
- 'balik-dialog',
36
- styles.content,
37
- local.class,
38
- ]
39
- .filter(Boolean)
40
- .join(' ')}
41
- >
42
- {local.title && (
43
- <ArkDialog.Title class={styles.title}>
44
- {local.title}
45
- </ArkDialog.Title>
46
- )}
47
- {local.description && (
48
- <ArkDialog.Description class={styles.description}>
49
- {local.description}
50
- </ArkDialog.Description>
51
- )}
52
- <div class={styles.body}>{local.children}</div>
53
- {local.closeable && (
54
- <ArkDialog.CloseTrigger asChild={CloseButton} class={styles.close} />
55
- )}
56
- </ArkDialog.Content>
57
- </ArkDialog.Positioner>
58
- </Portal>
59
- </ArkDialog.Root>
60
- )
61
- }
62
-
63
- Dialog.Original = ArkDialog
@@ -1,111 +0,0 @@
1
- .backdrop {
2
- position: fixed;
3
- inset: 0;
4
- z-index: var(--b-z-index-modal);
5
- background-color: rgba(0, 0, 0, 0.4);
6
- opacity: 0;
7
- pointer-events: none;
8
- transition: opacity var(--b-transition-normal);
9
- }
10
-
11
- .backdrop[data-state="open"] {
12
- opacity: 1;
13
- pointer-events: auto;
14
- }
15
-
16
- .backdrop[data-state="closed"] {
17
- opacity: 0;
18
- pointer-events: none;
19
- }
20
-
21
- .positioner {
22
- position: fixed;
23
- inset: 0;
24
- z-index: var(--b-z-index-modal);
25
- display: flex;
26
- align-items: center;
27
- justify-content: center;
28
- padding: var(--b-spacing-lg);
29
- pointer-events: none;
30
- }
31
-
32
- .content {
33
- --_dialog-padding: 16px;
34
-
35
- position: relative;
36
- display: flex;
37
- flex-direction: column;
38
- max-height: calc(100vh - var(--b-spacing-lg) * 2);
39
- width: 100%;
40
- max-width: 440px;
41
- background-color: var(--base-bg);
42
- border-radius: var(--b-radius-l3-md);
43
- box-shadow: var(--b-shadow-lg);
44
- pointer-events: auto;
45
- opacity: 0;
46
- transform: scale(0.95);
47
- transition:
48
- opacity var(--b-transition-normal),
49
- transform var(--b-transition-normal);
50
- overflow-y: auto;
51
- }
52
-
53
- .content[data-state="open"] {
54
- opacity: 1;
55
- transform: scale(1);
56
- }
57
-
58
- .content[data-state="closed"] {
59
- opacity: 0;
60
- transform: scale(0.95);
61
- }
62
-
63
- .title {
64
- margin: 0;
65
- padding:
66
- var(--_dialog-padding)
67
- var(--_dialog-padding)
68
- 0;
69
- font-size: var(--b-font-size-lg);
70
- font-weight: 600;
71
- color: var(--base-fg);
72
- }
73
-
74
- .description {
75
- margin: 0;
76
- padding:
77
- var(--b-spacing-sm)
78
- var(--_dialog-padding)
79
- 0;
80
- font-size: var(--b-font-size-md);
81
- line-height: var(--b-line-height);
82
- color: color-mix(in oklch, var(--base-fg) 55%, transparent);
83
- }
84
-
85
- .body {
86
- padding: var(--_dialog-padding);
87
- }
88
-
89
- .close {
90
- position: absolute;
91
- top: var(--_dialog-padding);
92
- right: var(--_dialog-padding);
93
- display: flex;
94
- align-items: center;
95
- justify-content: center;
96
- width: 32px;
97
- height: 32px;
98
- padding: 0;
99
- border: none;
100
- border-radius: var(--b-radius-l1-md);
101
- background: transparent;
102
- color: color-mix(in oklch, var(--base-fg) 40%, transparent);
103
- cursor: pointer;
104
- }
105
-
106
- .close svg {
107
- display: block;
108
- width: 16px;
109
- height: 16px;
110
- pointer-events: none;
111
- }
@@ -1 +0,0 @@
1
- export { Dialog } from './Dialog.jsx'
@@ -1,38 +0,0 @@
1
- import { splitProps, mergeProps } from 'solid-js'
2
- import styles from './Divider.module.css'
3
-
4
- const orientations = {
5
- horizontal: styles.horizontal,
6
- vertical: styles.vertical,
7
- }
8
-
9
- const DEFAULT_PROPS = {
10
- orientation: 'horizontal',
11
- }
12
-
13
- /**
14
- * @param {import('solid-js').JSX.HTMLAttributes<HTMLHRElement> & {
15
- * orientation?: 'horizontal' | 'vertical'
16
- * class?: string
17
- * }} props
18
- */
19
- export function Divider(props) {
20
- const [local, rest] = splitProps(
21
- mergeProps(DEFAULT_PROPS, props),
22
- ['orientation', 'class'],
23
- )
24
-
25
- return (
26
- <hr
27
- {...rest}
28
- class={[
29
- 'balik-divider',
30
- `balik-divider--${local.orientation}`,
31
- orientations[local.orientation],
32
- local.class,
33
- ]
34
- .filter(Boolean)
35
- .join(' ')}
36
- />
37
- )
38
- }
@@ -1,16 +0,0 @@
1
- .horizontal {
2
- width: 100%;
3
- height: 1px;
4
- flex-shrink: 0;
5
- border: none;
6
- background-color: color-mix(in oklch, var(--base-fg) 10%, var(--base-bg));
7
- }
8
-
9
- .vertical {
10
- width: 1px;
11
- height: 100%;
12
- min-height: 1em;
13
- flex-shrink: 0;
14
- border: none;
15
- background-color: color-mix(in oklch, var(--base-fg) 10%, var(--base-bg));
16
- }
@@ -1 +0,0 @@
1
- export { Divider } from './Divider.jsx'
@@ -1,55 +0,0 @@
1
- import { splitProps, mergeProps } from 'solid-js'
2
- import { Portal } from 'solid-js/web'
3
- import styles from './Drawer.module.css'
4
-
5
- const DEFAULT_PROPS = {
6
- side: 'right',
7
- }
8
-
9
- /**
10
- * @param {{
11
- * open: boolean
12
- * onOpenChange?: (open: boolean) => void
13
- * title?: string
14
- * side?: 'left' | 'right'
15
- * class?: string
16
- * children?: import('solid-js').JSX.Element
17
- * }} props
18
- */
19
- export function Drawer(props) {
20
- const [local] = splitProps(
21
- mergeProps(DEFAULT_PROPS, props),
22
- ['open', 'onOpenChange', 'title', 'side', 'class', 'children'],
23
- )
24
-
25
- return (
26
- <Portal mount={document.body}>
27
- <div
28
- class={styles.backdrop}
29
- data-open={local.open ? '' : undefined}
30
- onClick={() => local.onOpenChange?.(false)}
31
- />
32
- <div
33
- class={[
34
- 'balik-drawer',
35
- styles.panel,
36
- local.side === 'left' ? styles.sideLeft : styles.sideRight,
37
- local.class,
38
- ]
39
- .filter(Boolean)
40
- .join(' ')}
41
- data-open={local.open ? '' : undefined}
42
- role="dialog"
43
- aria-modal="true"
44
- aria-label={local.title || 'Drawer'}
45
- >
46
- {local.title && (
47
- <div class={styles.header}>
48
- <h2 class={styles.title}>{local.title}</h2>
49
- </div>
50
- )}
51
- <div class={styles.body}>{local.children}</div>
52
- </div>
53
- </Portal>
54
- )
55
- }
@@ -1,68 +0,0 @@
1
- .backdrop {
2
- position: fixed;
3
- inset: 0;
4
- z-index: var(--b-z-index-modal);
5
- background-color: rgba(0, 0, 0, 0.35);
6
- opacity: 0;
7
- pointer-events: none;
8
- transition: opacity 0.25s ease;
9
- }
10
-
11
- .backdrop[data-open] {
12
- opacity: 1;
13
- pointer-events: auto;
14
- }
15
-
16
- .panel {
17
- position: fixed;
18
- top: 0;
19
- bottom: 0;
20
- z-index: var(--b-z-index-modal);
21
- display: flex;
22
- flex-direction: column;
23
- width: 260px;
24
- max-width: 80vw;
25
- background-color: var(--base-bg);
26
- overflow-y: auto;
27
- transition: transform 0.25s ease;
28
- }
29
-
30
- .sideLeft {
31
- left: 0;
32
- border-right: 1px solid color-mix(in oklch, var(--base-fg) 8%, var(--base-bg));
33
- transform: translateX(-100%);
34
- }
35
-
36
- .sideLeft[data-open] {
37
- transform: translateX(0);
38
- }
39
-
40
- .sideRight {
41
- right: 0;
42
- border-left: 1px solid color-mix(in oklch, var(--base-fg) 8%, var(--base-bg));
43
- transform: translateX(100%);
44
- }
45
-
46
- .sideRight[data-open] {
47
- transform: translateX(0);
48
- }
49
-
50
- .header {
51
- display: flex;
52
- align-items: center;
53
- padding: 16px;
54
- border-bottom: 1px solid color-mix(in oklch, var(--base-fg) 6%, var(--base-bg));
55
- flex-shrink: 0;
56
- }
57
-
58
- .title {
59
- margin: 0;
60
- font-size: var(--b-comp-font-size-lg);
61
- font-weight: 600;
62
- color: var(--base-fg);
63
- }
64
-
65
- .body {
66
- padding: 16px;
67
- flex: 1;
68
- }
@@ -1 +0,0 @@
1
- export { Drawer } from './Drawer.jsx'