@balikjs/mobile 0.0.1

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/README.md +33 -0
  2. package/dist/mobile.js +3062 -0
  3. package/dist/styles.css +1 -0
  4. package/package.json +49 -0
  5. package/src/Alert/Alert.jsx +67 -0
  6. package/src/Alert/Alert.module.css +87 -0
  7. package/src/Alert/index.js +1 -0
  8. package/src/Avatar/Avatar.jsx +77 -0
  9. package/src/Avatar/Avatar.module.css +74 -0
  10. package/src/Avatar/index.js +1 -0
  11. package/src/Badge/Badge.jsx +83 -0
  12. package/src/Badge/Badge.module.css +141 -0
  13. package/src/Badge/index.js +1 -0
  14. package/src/BottomNavigation/BottomNavigation.jsx +61 -0
  15. package/src/BottomNavigation/BottomNavigation.module.css +53 -0
  16. package/src/BottomNavigation/index.js +1 -0
  17. package/src/BottomSheet/BottomSheet.jsx +51 -0
  18. package/src/BottomSheet/BottomSheet.module.css +56 -0
  19. package/src/BottomSheet/index.js +1 -0
  20. package/src/Button/Button.jsx +77 -0
  21. package/src/Button/Button.module.css +124 -0
  22. package/src/Button/index.js +1 -0
  23. package/src/Card/Card.jsx +31 -0
  24. package/src/Card/Card.module.css +4 -0
  25. package/src/Card/index.js +1 -0
  26. package/src/Checkbox/Checkbox.jsx +64 -0
  27. package/src/Checkbox/Checkbox.module.css +146 -0
  28. package/src/Checkbox/index.js +1 -0
  29. package/src/Clipboard/Clipboard.jsx +82 -0
  30. package/src/Clipboard/Clipboard.module.css +126 -0
  31. package/src/Clipboard/index.js +1 -0
  32. package/src/CloseButton/CloseButton.jsx +51 -0
  33. package/src/CloseButton/CloseButton.module.css +94 -0
  34. package/src/Confirm/Confirm.jsx +52 -0
  35. package/src/Confirm/Confirm.module.css +5 -0
  36. package/src/Confirm/index.js +1 -0
  37. package/src/Dialog/Dialog.jsx +63 -0
  38. package/src/Dialog/Dialog.module.css +111 -0
  39. package/src/Dialog/index.js +1 -0
  40. package/src/Divider/Divider.jsx +38 -0
  41. package/src/Divider/Divider.module.css +16 -0
  42. package/src/Divider/index.js +1 -0
  43. package/src/Drawer/Drawer.jsx +55 -0
  44. package/src/Drawer/Drawer.module.css +68 -0
  45. package/src/Drawer/index.js +1 -0
  46. package/src/Empty/Empty.jsx +35 -0
  47. package/src/Empty/Empty.module.css +17 -0
  48. package/src/Empty/index.js +1 -0
  49. package/src/Fab/Fab.jsx +91 -0
  50. package/src/Fab/Fab.module.css +94 -0
  51. package/src/Fab/index.js +1 -0
  52. package/src/Input/Input.jsx +53 -0
  53. package/src/Input/Input.module.css +97 -0
  54. package/src/Input/index.js +1 -0
  55. package/src/Link/Link.jsx +31 -0
  56. package/src/Link/Link.module.css +18 -0
  57. package/src/Link/index.js +1 -0
  58. package/src/Popover/Popover.jsx +162 -0
  59. package/src/Popover/Popover.module.css +63 -0
  60. package/src/Popover/index.js +1 -0
  61. package/src/RadioGroup/Radio.jsx +52 -0
  62. package/src/RadioGroup/Radio.module.css +133 -0
  63. package/src/RadioGroup/RadioGroup.jsx +36 -0
  64. package/src/RadioGroup/RadioGroup.module.css +23 -0
  65. package/src/RadioGroup/index.js +2 -0
  66. package/src/SearchInput/SearchInput.jsx +89 -0
  67. package/src/SearchInput/SearchInput.module.css +169 -0
  68. package/src/SearchInput/index.js +1 -0
  69. package/src/Select/Select.jsx +101 -0
  70. package/src/Select/Select.module.css +174 -0
  71. package/src/Select/index.js +1 -0
  72. package/src/SelectPc/Select.jsx +88 -0
  73. package/src/SelectPc/SelectPc.module.css +132 -0
  74. package/src/SelectPc/index.js +1 -0
  75. package/src/Skeleton/Skeleton.jsx +55 -0
  76. package/src/Skeleton/Skeleton.module.css +33 -0
  77. package/src/Skeleton/index.js +1 -0
  78. package/src/Slider/Slider.jsx +50 -0
  79. package/src/Slider/Slider.module.css +77 -0
  80. package/src/Slider/index.js +1 -0
  81. package/src/Spinner/Spinner.jsx +45 -0
  82. package/src/Spinner/Spinner.module.css +35 -0
  83. package/src/Spinner/index.js +1 -0
  84. package/src/Switch/Switch.jsx +51 -0
  85. package/src/Switch/Switch.module.css +156 -0
  86. package/src/Switch/index.js +1 -0
  87. package/src/Tabs/Tabs.jsx +75 -0
  88. package/src/Tabs/Tabs.module.css +45 -0
  89. package/src/Tabs/index.js +1 -0
  90. package/src/Tag/Tag.jsx +74 -0
  91. package/src/Tag/Tag.module.css +128 -0
  92. package/src/Tag/index.js +1 -0
  93. package/src/Textarea/Textarea.jsx +52 -0
  94. package/src/Textarea/Textarea.module.css +89 -0
  95. package/src/Textarea/index.js +1 -0
  96. package/src/Toast/Toast.jsx +169 -0
  97. package/src/Toast/Toast.module.css +152 -0
  98. package/src/Toast/index.js +1 -0
  99. package/src/Tooltip/Tooltip.jsx +42 -0
  100. package/src/Tooltip/Tooltip.module.css +41 -0
  101. package/src/Tooltip/index.js +1 -0
  102. package/src/index.js +34 -0
  103. package/src/styles/index.css +90 -0
  104. package/src/styles/tokens.css +227 -0
@@ -0,0 +1,169 @@
1
+ .base {
2
+ position: relative;
3
+ display: flex;
4
+ align-items: center;
5
+ width: 100%;
6
+ }
7
+
8
+ .icon {
9
+ position: absolute;
10
+ left: var(--_icon-offset);
11
+ height: var(--_icon-size);
12
+ width: var(--_icon-size);
13
+ color: var(--color-disabled-fg);
14
+ pointer-events: none;
15
+ flex-shrink: 0;
16
+ }
17
+
18
+ .input {
19
+ display: block;
20
+ width: 100%;
21
+ padding-left: var(--_input-padding-left);
22
+ border: 1px solid transparent;
23
+ border-radius: var(--_border-radius);
24
+ font-family: inherit;
25
+ outline: none;
26
+ box-shadow: none;
27
+ appearance: none;
28
+ touch-action: manipulation;
29
+ transition: background-color var(--b-transition-fast),
30
+ border-color var(--b-transition-fast),
31
+ color var(--b-transition-fast);
32
+
33
+ --_current-intent: var(--base-edge);
34
+ }
35
+
36
+ .input::placeholder {
37
+ color: var(--color-disabled-fg);
38
+ }
39
+
40
+ .input:disabled {
41
+ background-color: var(--color-disabled-bg);
42
+ border-color: var(--color-disabled-border);
43
+ color: var(--color-disabled-fg);
44
+ }
45
+
46
+ .input::-webkit-search-decoration,
47
+ .input::-webkit-search-cancel-button,
48
+ .input::-webkit-search-results-button,
49
+ .input::-webkit-search-results-decoration {
50
+ display: none;
51
+ }
52
+
53
+ .solid {
54
+ --_contain-bg: color-mix(in oklch, var(--base-fg) 2%, var(--base-bg));
55
+ }
56
+
57
+ .solid .input {
58
+ background-color: var(--_contain-bg);
59
+ border-color: transparent;
60
+ }
61
+
62
+ .solid .input:focus {
63
+ background-color: var(--color-focus-bg);
64
+ }
65
+
66
+ .outline {
67
+ --_contain-bg: var(--base-bg);
68
+ }
69
+
70
+ .outline .input {
71
+ background-color: var(--_contain-bg);
72
+ border-color: var(--_current-intent);
73
+ }
74
+
75
+ .outline .input:focus {
76
+ background-color: var(--color-focus-bg);
77
+ border-color: var(--color-focus-border);
78
+ }
79
+
80
+ .singleline {
81
+ --_contain-bg: transparent;
82
+ }
83
+
84
+ .singleline .input {
85
+ background-color: transparent;
86
+ border-color: transparent;
87
+ border-bottom-color: var(--_current-intent);
88
+ border-radius: 0;
89
+ }
90
+
91
+ .singleline .input:focus {
92
+ background-color: var(--color-focus-bg);
93
+ border-bottom-color: var(--color-focus-border);
94
+ }
95
+
96
+ .sizeXs {
97
+ --_border-radius: var(--b-radius-l1-xs);
98
+ --_icon-size: 14px;
99
+ --_icon-offset: 8px;
100
+ --_input-padding-left: 26px;
101
+ }
102
+
103
+ .sizeXs .input {
104
+ height: var(--b-comp-height-xs);
105
+ line-height: var(--b-comp-line-height-xs);
106
+ padding: var(--b-comp-padding-y-xs) var(--b-comp-padding-x-xs);
107
+ padding-left: 26px;
108
+ font-size: var(--b-comp-font-size-xs);
109
+ }
110
+
111
+ .sizeSm {
112
+ --_border-radius: var(--b-radius-l1-sm);
113
+ --_icon-size: 16px;
114
+ --_icon-offset: 12px;
115
+ --_input-padding-left: 32px;
116
+ }
117
+
118
+ .sizeSm .input {
119
+ height: var(--b-comp-height-sm);
120
+ line-height: var(--b-comp-line-height-sm);
121
+ padding: var(--b-comp-padding-y-sm) var(--b-comp-padding-x-sm);
122
+ padding-left: 32px;
123
+ font-size: var(--b-comp-font-size-sm);
124
+ }
125
+
126
+ .sizeMd {
127
+ --_border-radius: var(--b-radius-l1-md);
128
+ --_icon-size: 18px;
129
+ --_icon-offset: 14px;
130
+ --_input-padding-left: 38px;
131
+ }
132
+
133
+ .sizeMd .input {
134
+ height: var(--b-comp-height-md);
135
+ line-height: var(--b-comp-line-height-md);
136
+ padding: var(--b-comp-padding-y-md) var(--b-comp-padding-x-md);
137
+ padding-left: 38px;
138
+ font-size: var(--b-comp-font-size-md);
139
+ }
140
+
141
+ .sizeLg {
142
+ --_border-radius: var(--b-radius-l1-lg);
143
+ --_icon-size: 20px;
144
+ --_icon-offset: 16px;
145
+ --_input-padding-left: 42px;
146
+ }
147
+
148
+ .sizeLg .input {
149
+ height: var(--b-comp-height-lg);
150
+ line-height: var(--b-comp-line-height-lg);
151
+ padding: var(--b-comp-padding-y-lg) var(--b-comp-padding-x-lg);
152
+ padding-left: 42px;
153
+ font-size: var(--b-comp-font-size-lg);
154
+ }
155
+
156
+ .sizeXl {
157
+ --_border-radius: var(--b-radius-l1-xl);
158
+ --_icon-size: 22px;
159
+ --_icon-offset: 16px;
160
+ --_input-padding-left: 46px;
161
+ }
162
+
163
+ .sizeXl .input {
164
+ height: var(--b-comp-height-xl);
165
+ line-height: var(--b-comp-line-height-xl);
166
+ padding: var(--b-comp-padding-y-xl) var(--b-comp-padding-x-xl);
167
+ padding-left: 46px;
168
+ font-size: var(--b-comp-font-size-xl);
169
+ }
@@ -0,0 +1 @@
1
+ export { SearchInput } from './SearchInput.jsx'
@@ -0,0 +1,101 @@
1
+ import { splitProps, mergeProps, For } from 'solid-js'
2
+ import { Select as ArkSelect, useSelectContext } from '@ark-ui/solid'
3
+ import { ChevronDown } from 'lucide-solid'
4
+ import styles from './Select.module.css'
5
+
6
+ const triggerSizes = {
7
+ xs: styles.triggerSizeXs,
8
+ sm: styles.triggerSizeSm,
9
+ md: styles.triggerSizeMd,
10
+ lg: styles.triggerSizeLg,
11
+ xl: styles.triggerSizeXl,
12
+ }
13
+
14
+ function SelectSheet(props) {
15
+ const api = useSelectContext()
16
+ const isOpen = () => api().open
17
+
18
+ return (
19
+ <>
20
+ <div
21
+ class={styles.backdrop}
22
+ data-open={isOpen() ? '' : undefined}
23
+ onClick={() => api().setOpen(false)}
24
+ />
25
+ <div class={styles.sheet} data-open={isOpen() ? '' : undefined}>
26
+ <div class={styles.header}>
27
+ <span class={styles.title}>{props.title}</span>
28
+ <button
29
+ type="button"
30
+ class={styles.cancelBtn}
31
+ onClick={() => api().setOpen(false)}
32
+ >
33
+ Cancel
34
+ </button>
35
+ </div>
36
+ <div class={styles.list}>
37
+ <For each={api().collection.items}>
38
+ {(item) => (
39
+ <ArkSelect.Item item={item} class={styles.item}>
40
+ <ArkSelect.ItemText>{item.label}</ArkSelect.ItemText>
41
+ </ArkSelect.Item>
42
+ )}
43
+ </For>
44
+ </div>
45
+ </div>
46
+ </>
47
+ )
48
+ }
49
+
50
+ const DEFAULT_PROPS = {
51
+ size: 'md',
52
+ disabled: false,
53
+ }
54
+
55
+ /**
56
+ * @param {import('solid-js').JSX.HTMLAttributes<HTMLDivElement> & {
57
+ * size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'
58
+ * collection?: import('@ark-ui/solid').ListCollection<{ label: string, value: string, disabled?: boolean }>
59
+ * placeholder?: string
60
+ * title?: string
61
+ * }} props
62
+ */
63
+ export function Select(props) {
64
+ const [local, rest] = splitProps(
65
+ mergeProps(DEFAULT_PROPS, props),
66
+ ['size', 'class', 'collection', 'placeholder', 'title', 'disabled'],
67
+ )
68
+
69
+ return (
70
+ <div class={styles.root}>
71
+ <ArkSelect.Root
72
+ collection={local.collection}
73
+ disabled={local.disabled}
74
+ {...rest}
75
+ >
76
+ <ArkSelect.Trigger
77
+ class={[
78
+ 'balik-select',
79
+ `balik-select--${local.size}`,
80
+ styles.triggerBase,
81
+ triggerSizes[local.size],
82
+ local.class,
83
+ ]
84
+ .filter(Boolean)
85
+ .join(' ')}
86
+ >
87
+ <ArkSelect.ValueText
88
+ placeholder={local.placeholder}
89
+ />
90
+ <span class={styles.indicator}>
91
+ <ChevronDown size="1em" aria-hidden="true" />
92
+ </span>
93
+ </ArkSelect.Trigger>
94
+ <SelectSheet title={local.title} />
95
+ <ArkSelect.HiddenSelect />
96
+ </ArkSelect.Root>
97
+ </div>
98
+ )
99
+ }
100
+
101
+ Select.Original = ArkSelect
@@ -0,0 +1,174 @@
1
+ .root {
2
+ width: 100%;
3
+ }
4
+
5
+ .triggerBase {
6
+ display: flex;
7
+ align-items: center;
8
+ gap: 8px;
9
+ width: 100%;
10
+ border-width: 1px;
11
+ border-style: solid;
12
+ border-color: var(--_trigger-border-color);
13
+ border-radius: var(--_border-radius);
14
+ font-family: inherit;
15
+ outline: none;
16
+ box-shadow: none;
17
+ appearance: none;
18
+ touch-action: manipulation;
19
+ transition: background-color var(--b-transition-fast),
20
+ border-color var(--b-transition-fast),
21
+ color var(--b-transition-fast);
22
+ cursor: pointer;
23
+ text-align: start;
24
+ color: var(--base-fg);
25
+
26
+ --_current-intent: var(--base-edge);
27
+ --_trigger-border-color: var(--_current-intent);
28
+ }
29
+
30
+ .triggerBase[data-placeholder-shown] {
31
+ color: var(--color-disabled-fg);
32
+ }
33
+
34
+ .triggerBase:disabled {
35
+ background-color: var(--color-disabled-bg);
36
+ border-color: var(--color-disabled-border);
37
+ color: var(--color-disabled-fg);
38
+ }
39
+
40
+ .triggerSizeXs {
41
+ height: var(--b-comp-height-xs);
42
+ line-height: var(--b-comp-line-height-xs);
43
+ padding: var(--b-comp-padding-y-xs) var(--b-comp-padding-x-xs);
44
+ font-size: var(--b-comp-font-size-xs);
45
+ --_border-radius: var(--b-radius-l2-xs);
46
+ }
47
+
48
+ .triggerSizeSm {
49
+ height: var(--b-comp-height-sm);
50
+ line-height: var(--b-comp-line-height-sm);
51
+ padding: var(--b-comp-padding-y-sm) var(--b-comp-padding-x-sm);
52
+ font-size: var(--b-comp-font-size-sm);
53
+ --_border-radius: var(--b-radius-l2-sm);
54
+ }
55
+
56
+ .triggerSizeMd {
57
+ height: var(--b-comp-height-md);
58
+ line-height: var(--b-comp-line-height-md);
59
+ padding: var(--b-comp-padding-y-md) var(--b-comp-padding-x-md);
60
+ font-size: var(--b-comp-font-size-md);
61
+ --_border-radius: var(--b-radius-l2-md);
62
+ }
63
+
64
+ .triggerSizeLg {
65
+ height: var(--b-comp-height-lg);
66
+ line-height: var(--b-comp-line-height-lg);
67
+ padding: var(--b-comp-padding-y-lg) var(--b-comp-padding-x-lg);
68
+ font-size: var(--b-comp-font-size-lg);
69
+ --_border-radius: var(--b-radius-l2-lg);
70
+ }
71
+
72
+ .triggerSizeXl {
73
+ height: var(--b-comp-height-xl);
74
+ line-height: var(--b-comp-line-height-xl);
75
+ padding: var(--b-comp-padding-y-xl) var(--b-comp-padding-x-xl);
76
+ font-size: var(--b-comp-font-size-xl);
77
+ --_border-radius: var(--b-radius-l2-xl);
78
+ }
79
+
80
+ .indicator {
81
+ margin-inline-start: auto;
82
+ display: flex;
83
+ align-items: center;
84
+ transition: transform var(--b-transition-fast);
85
+ color: var(--base-fg);
86
+ }
87
+
88
+ .backdrop {
89
+ position: fixed;
90
+ inset: 0;
91
+ z-index: var(--b-z-index-modal);
92
+ background-color: rgba(0, 0, 0, 0.35);
93
+ opacity: 0;
94
+ pointer-events: none;
95
+ transition: opacity 0.3s ease;
96
+ }
97
+
98
+ .backdrop[data-open] {
99
+ opacity: 1;
100
+ pointer-events: auto;
101
+ }
102
+
103
+ .sheet {
104
+ position: fixed;
105
+ inset-inline: 0;
106
+ bottom: 0;
107
+ z-index: var(--b-z-index-modal);
108
+ background-color: var(--base-bg);
109
+ border-radius: 16px 16px 0 0;
110
+ max-height: 70vh;
111
+ display: flex;
112
+ flex-direction: column;
113
+ transform: translateY(100%);
114
+ transition: transform 0.3s ease;
115
+ }
116
+
117
+ .sheet[data-open] {
118
+ transform: translateY(0);
119
+ }
120
+
121
+ .header {
122
+ display: flex;
123
+ align-items: center;
124
+ justify-content: space-between;
125
+ padding: 16px;
126
+ border-bottom: 1px solid color-mix(in oklch, var(--base-fg) 6%, var(--base-bg));
127
+ flex-shrink: 0;
128
+ }
129
+
130
+ .title {
131
+ font-size: var(--b-comp-font-size-lg);
132
+ font-weight: 600;
133
+ }
134
+
135
+ .cancelBtn {
136
+ font-size: var(--b-comp-font-size-md);
137
+ color: var(--base-edge);
138
+ background: none;
139
+ border: none;
140
+ padding: 0;
141
+ cursor: pointer;
142
+ touch-action: manipulation;
143
+ }
144
+
145
+ .list {
146
+ overflow-y: auto;
147
+ padding: 8px 0;
148
+ flex: 1;
149
+ -webkit-overflow-scrolling: touch;
150
+ }
151
+
152
+ .item {
153
+ display: flex;
154
+ align-items: center;
155
+ padding: 14px 20px;
156
+ font-size: var(--b-comp-font-size-lg);
157
+ cursor: pointer;
158
+ color: var(--base-fg);
159
+ transition: background-color 0.1s ease;
160
+ }
161
+
162
+ .item:active {
163
+ background-color: color-mix(in oklch, var(--base-fg) 4%, var(--base-bg));
164
+ }
165
+
166
+ .item[data-selected] {
167
+ color: var(--base-edge);
168
+ font-weight: 600;
169
+ }
170
+
171
+ .item[data-disabled] {
172
+ color: var(--color-disabled-fg);
173
+ pointer-events: none;
174
+ }
@@ -0,0 +1 @@
1
+ export { Select } from './Select.jsx'
@@ -0,0 +1,88 @@
1
+ import { splitProps, mergeProps, For } from 'solid-js'
2
+ import { Select as ArkSelect } from '@ark-ui/solid'
3
+ import { ChevronDown } from 'lucide-solid'
4
+ import styles from './SelectPc.module.css'
5
+
6
+ const triggerVariants = {
7
+ outline: styles.triggerVariantOutline,
8
+ }
9
+
10
+ const triggerSizes = {
11
+ xs: styles.triggerSizeXs,
12
+ sm: styles.triggerSizeSm,
13
+ md: styles.triggerSizeMd,
14
+ lg: styles.triggerSizeLg,
15
+ xl: styles.triggerSizeXl,
16
+ }
17
+
18
+ const DEFAULT_PROPS = {
19
+ variant: 'outline',
20
+ size: 'md',
21
+ disabled: false,
22
+ }
23
+
24
+ /**
25
+ * @param {import('solid-js').JSX.HTMLAttributes<HTMLDivElement> & {
26
+ * variant?: 'outline'
27
+ * size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'
28
+ * collection?: import('@ark-ui/solid').ListCollection<{ label: string, value: string, disabled?: boolean }>
29
+ * placeholder?: string
30
+ * }} props
31
+ */
32
+ export function SelectPc(props) {
33
+ const [local, rest] = splitProps(
34
+ mergeProps(DEFAULT_PROPS, props),
35
+ ['variant', 'size', 'class', 'collection', 'placeholder', 'disabled'],
36
+ )
37
+
38
+ const items = () => local.collection?.items ?? []
39
+ const triggerBorderRadius = `var(--b-radius-l2-${local.size})`
40
+
41
+ return (
42
+ <ArkSelect.Root
43
+ collection={local.collection}
44
+ disabled={local.disabled}
45
+ {...rest}
46
+ >
47
+ <ArkSelect.Trigger
48
+ class={[
49
+ 'balik-select',
50
+ `balik-select--${local.variant}`,
51
+ `balik-select--${local.size}`,
52
+ styles.triggerBase,
53
+ triggerVariants[local.variant],
54
+ triggerSizes[local.size],
55
+ local.class,
56
+ ]
57
+ .filter(Boolean)
58
+ .join(' ')}
59
+ >
60
+ <ArkSelect.ValueText
61
+ placeholder={local.placeholder}
62
+ />
63
+ <span class={styles.indicator}>
64
+ <ChevronDown size="1em" aria-hidden="true" />
65
+ </span>
66
+ </ArkSelect.Trigger>
67
+ <ArkSelect.Positioner>
68
+ <ArkSelect.Content
69
+ class={styles.content}
70
+ style={{ '--_border-radius': triggerBorderRadius }}
71
+ >
72
+ <ArkSelect.List>
73
+ <For each={items()}>
74
+ {(item) => (
75
+ <ArkSelect.Item item={item} class={styles.item}>
76
+ <ArkSelect.ItemText>{item.label}</ArkSelect.ItemText>
77
+ </ArkSelect.Item>
78
+ )}
79
+ </For>
80
+ </ArkSelect.List>
81
+ </ArkSelect.Content>
82
+ </ArkSelect.Positioner>
83
+ <ArkSelect.HiddenSelect />
84
+ </ArkSelect.Root>
85
+ )
86
+ }
87
+
88
+ SelectPc.Original = ArkSelect
@@ -0,0 +1,132 @@
1
+ .triggerBase {
2
+ display: flex;
3
+ align-items: center;
4
+ gap: 8px;
5
+ width: 100%;
6
+ border-width: 1px;
7
+ border-style: solid;
8
+ border-color: var(--_trigger-border-color, transparent);
9
+ border-radius: var(--_border-radius);
10
+ font-family: inherit;
11
+ outline: none;
12
+ box-shadow: none;
13
+ appearance: none;
14
+ touch-action: manipulation;
15
+ transition: background-color var(--b-transition-fast),
16
+ border-color var(--b-transition-fast),
17
+ color var(--b-transition-fast);
18
+ cursor: pointer;
19
+ text-align: start;
20
+ color: var(--base-fg);
21
+
22
+ --_current-intent: var(--base-edge);
23
+ }
24
+
25
+ .triggerBase[data-placeholder-shown] {
26
+ color: var(--color-disabled-fg);
27
+ }
28
+
29
+ .triggerBase:disabled {
30
+ background-color: var(--color-disabled-bg);
31
+ border-color: var(--color-disabled-border);
32
+ color: var(--color-disabled-fg);
33
+ }
34
+
35
+ .triggerVariantOutline {
36
+ --_trigger-border-color: var(--_current-intent);
37
+ background-color: var(--base-bg);
38
+ }
39
+
40
+ .triggerVariantOutline:focus-visible {
41
+ background-color: var(--color-focus-bg);
42
+ border-color: var(--color-focus-border);
43
+ }
44
+
45
+ .triggerSizeXs {
46
+ height: var(--b-comp-height-xs);
47
+ line-height: var(--b-comp-line-height-xs);
48
+ padding: var(--b-comp-padding-y-xs) var(--b-comp-padding-x-xs);
49
+ font-size: var(--b-comp-font-size-xs);
50
+ --_border-radius: var(--b-radius-l2-xs);
51
+ }
52
+
53
+ .triggerSizeSm {
54
+ height: var(--b-comp-height-sm);
55
+ line-height: var(--b-comp-line-height-sm);
56
+ padding: var(--b-comp-padding-y-sm) var(--b-comp-padding-x-sm);
57
+ font-size: var(--b-comp-font-size-sm);
58
+ --_border-radius: var(--b-radius-l2-sm);
59
+ }
60
+
61
+ .triggerSizeMd {
62
+ height: var(--b-comp-height-md);
63
+ line-height: var(--b-comp-line-height-md);
64
+ padding: var(--b-comp-padding-y-md) var(--b-comp-padding-x-md);
65
+ font-size: var(--b-comp-font-size-md);
66
+ --_border-radius: var(--b-radius-l2-md);
67
+ }
68
+
69
+ .triggerSizeLg {
70
+ height: var(--b-comp-height-lg);
71
+ line-height: var(--b-comp-line-height-lg);
72
+ padding: var(--b-comp-padding-y-lg) var(--b-comp-padding-x-lg);
73
+ font-size: var(--b-comp-font-size-lg);
74
+ --_border-radius: var(--b-radius-l2-lg);
75
+ }
76
+
77
+ .triggerSizeXl {
78
+ height: var(--b-comp-height-xl);
79
+ line-height: var(--b-comp-line-height-xl);
80
+ padding: var(--b-comp-padding-y-xl) var(--b-comp-padding-x-xl);
81
+ font-size: var(--b-comp-font-size-xl);
82
+ --_border-radius: var(--b-radius-l2-xl);
83
+ }
84
+
85
+ .indicator {
86
+ margin-inline-start: auto;
87
+ display: flex;
88
+ align-items: center;
89
+ transition: transform var(--b-transition-fast);
90
+ color: var(--base-fg);
91
+ }
92
+
93
+ [data-state='open'] .indicator {
94
+ transform: rotate(180deg);
95
+ }
96
+
97
+ .content {
98
+ background-color: var(--base-bg);
99
+ border: 1px solid color-mix(in oklch, var(--base-fg) 10%, var(--base-bg));
100
+ border-radius: var(--_border-radius);
101
+ box-shadow: var(--b-shadow-md);
102
+ max-height: 256px;
103
+ overflow-y: auto;
104
+ padding: 4px;
105
+ z-index: var(--b-z-index-dropdown);
106
+ }
107
+
108
+ .item {
109
+ display: flex;
110
+ align-items: center;
111
+ padding: 10px var(--b-comp-padding-x-md);
112
+ font-size: var(--b-comp-font-size-md);
113
+ line-height: var(--b-comp-line-height-md);
114
+ border-radius: var(--b-radius-l1-md);
115
+ cursor: pointer;
116
+ color: var(--base-fg);
117
+ transition: background-color 0.1s ease;
118
+ }
119
+
120
+ .item[data-highlighted] {
121
+ background-color: color-mix(in oklch, var(--base-edge) 8%, var(--base-bg));
122
+ }
123
+
124
+ .item[data-selected] {
125
+ color: var(--base-edge);
126
+ font-weight: 600;
127
+ }
128
+
129
+ .item[data-disabled] {
130
+ color: var(--color-disabled-fg);
131
+ cursor: not-allowed;
132
+ }
@@ -0,0 +1 @@
1
+ export { SelectPc } from './Select.jsx'