@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,174 +0,0 @@
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
- }
@@ -1 +0,0 @@
1
- export { Select } from './Select.jsx'
@@ -1,88 +0,0 @@
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
@@ -1,132 +0,0 @@
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
- }
@@ -1 +0,0 @@
1
- export { SelectPc } from './Select.jsx'
@@ -1,55 +0,0 @@
1
- import { splitProps, mergeProps, createMemo, For } from 'solid-js'
2
- import styles from './Skeleton.module.css'
3
-
4
- const DEFAULT_PROPS = {
5
- count: 1,
6
- circle: false,
7
- }
8
-
9
- /**
10
- * @param {import('solid-js').JSX.HTMLAttributes<HTMLDivElement> & {
11
- * width?: string
12
- * height?: string
13
- * circle?: boolean
14
- * count?: number
15
- * class?: string
16
- * }} props
17
- */
18
- export function Skeleton(props) {
19
- const [local, rest] = splitProps(
20
- mergeProps(DEFAULT_PROPS, props),
21
- ['width', 'height', 'circle', 'count', 'class'],
22
- )
23
-
24
- const items = createMemo(() =>
25
- Array.from({ length: local.count }, (_, i) => i),
26
- )
27
-
28
- const lineClass = () =>
29
- [
30
- 'balik-skeleton',
31
- styles.base,
32
- local.circle && styles.circle,
33
- local.class,
34
- ]
35
- .filter(Boolean)
36
- .join(' ')
37
-
38
- return (
39
- <div {...rest} class={local.count > 1 ? styles.wrapper : undefined}>
40
- <For each={items()}>
41
- {() => (
42
- <span
43
- role="presentation"
44
- aria-hidden="true"
45
- class={lineClass()}
46
- style={{
47
- width: local.width || undefined,
48
- height: local.height || undefined,
49
- }}
50
- />
51
- )}
52
- </For>
53
- </div>
54
- )
55
- }
@@ -1,33 +0,0 @@
1
- @keyframes shimmer {
2
- 0% {
3
- background-position: 200% 0;
4
- }
5
- 100% {
6
- background-position: -200% 0;
7
- }
8
- }
9
-
10
- .base {
11
- display: block;
12
- width: 100%;
13
- height: 1em;
14
- border-radius: var(--b-radius-l2-xs);
15
- background: linear-gradient(
16
- 90deg,
17
- color-mix(in oklch, var(--base-fg) 8%, var(--base-bg)) 25%,
18
- color-mix(in oklch, var(--base-fg) 12%, var(--base-bg)) 50%,
19
- color-mix(in oklch, var(--base-fg) 8%, var(--base-bg)) 75%
20
- );
21
- background-size: 200% 100%;
22
- animation: shimmer 2s ease-in-out infinite;
23
- }
24
-
25
- .circle {
26
- border-radius: 50%;
27
- }
28
-
29
- .wrapper {
30
- display: flex;
31
- flex-direction: column;
32
- gap: var(--b-spacing-sm);
33
- }
@@ -1 +0,0 @@
1
- export { Skeleton } from './Skeleton.jsx'
@@ -1,50 +0,0 @@
1
- import { splitProps, mergeProps } from 'solid-js'
2
- import { Slider as ArkSlider } from '@ark-ui/solid'
3
- import styles from './Slider.module.css'
4
-
5
- const DEFAULT_PROPS = {
6
- min: 0,
7
- max: 100,
8
- step: 1,
9
- }
10
-
11
- /**
12
- * @param {import('@ark-ui/solid').SliderRootProps & {
13
- * label?: string
14
- * class?: string
15
- * }} props
16
- */
17
- export function Slider(props) {
18
- const [local, rest] = splitProps(
19
- mergeProps(DEFAULT_PROPS, props),
20
- ['label', 'class', 'children'],
21
- )
22
-
23
- return (
24
- <ArkSlider.Root
25
- {...rest}
26
- class={[
27
- 'balik-slider',
28
- styles.root,
29
- local.class,
30
- ]
31
- .filter(Boolean)
32
- .join(' ')}
33
- >
34
- {local.label && (
35
- <ArkSlider.Label class={styles.label}>{local.label}</ArkSlider.Label>
36
- )}
37
- <ArkSlider.Control class={styles.control}>
38
- <ArkSlider.Track class={styles.track}>
39
- <ArkSlider.Range class={styles.range} />
40
- </ArkSlider.Track>
41
- <ArkSlider.Thumb index={0} class={styles.thumb}>
42
- <ArkSlider.DraggingIndicator class={styles.indicator} />
43
- <ArkSlider.HiddenInput />
44
- </ArkSlider.Thumb>
45
- </ArkSlider.Control>
46
- </ArkSlider.Root>
47
- )
48
- }
49
-
50
- Slider.Original = ArkSlider
@@ -1,77 +0,0 @@
1
- .root {
2
- display: flex;
3
- flex-direction: column;
4
- gap: 8px;
5
- width: 100%;
6
- font-family: inherit;
7
- }
8
-
9
- .label {
10
- font-size: var(--b-comp-font-size-md);
11
- font-weight: 500;
12
- color: var(--base-fg);
13
- }
14
-
15
- .control {
16
- position: relative;
17
- display: flex;
18
- align-items: center;
19
- height: 24px;
20
- touch-action: none;
21
- }
22
-
23
- .track {
24
- position: relative;
25
- width: 100%;
26
- height: 4px;
27
- border-radius: 2px;
28
- background-color: color-mix(in oklch, var(--base-fg) 12%, var(--base-bg));
29
- }
30
-
31
- .range {
32
- position: absolute;
33
- height: 100%;
34
- border-radius: 2px;
35
- background-color: var(--base-edge);
36
- }
37
-
38
- .thumb {
39
- width: 20px;
40
- height: 20px;
41
- border-radius: 50%;
42
- background-color: var(--base-bg);
43
- border: 2px solid var(--base-edge);
44
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
45
- cursor: pointer;
46
- outline: none;
47
- transition: box-shadow var(--b-transition-fast);
48
- }
49
-
50
- .thumb:focus-visible {
51
- box-shadow: 0 0 0 3px color-mix(in oklch, var(--base-edge) 30%, transparent);
52
- }
53
-
54
- .indicator {
55
- position: absolute;
56
- top: -28px;
57
- left: 50%;
58
- transform: translateX(-50%);
59
- padding: 2px 6px;
60
- border-radius: 4px;
61
- background-color: var(--base-fg);
62
- color: var(--base-bg);
63
- font-size: 12px;
64
- line-height: 18px;
65
- font-family: var(--b-font-family, inherit);
66
- white-space: nowrap;
67
- }
68
-
69
- .root[data-disabled] .thumb {
70
- background-color: var(--color-disabled-bg);
71
- border-color: var(--color-disabled-border);
72
- cursor: not-allowed;
73
- }
74
-
75
- .root[data-disabled] .range {
76
- background-color: var(--color-disabled-border);
77
- }
@@ -1 +0,0 @@
1
- export { Slider } from './Slider.jsx'
@@ -1,45 +0,0 @@
1
- import { splitProps, mergeProps } from 'solid-js'
2
- import { Loader2 } from 'lucide-solid'
3
- import styles from './Spinner.module.css'
4
-
5
- const sizes = {
6
- xs: styles.sizeXs,
7
- sm: styles.sizeSm,
8
- md: styles.sizeMd,
9
- lg: styles.sizeLg,
10
- xl: styles.sizeXl,
11
- }
12
-
13
- const DEFAULT_PROPS = {
14
- size: 'md',
15
- }
16
-
17
- /**
18
- * @param {{
19
- * size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'
20
- * label?: string
21
- * class?: string
22
- * }} props
23
- */
24
- export function Spinner(props) {
25
- const [local] = splitProps(
26
- mergeProps(DEFAULT_PROPS, props),
27
- ['size', 'label', 'class'],
28
- )
29
-
30
- return (
31
- <Loader2
32
- role="status"
33
- aria-label={local.label || 'Loading'}
34
- class={[
35
- 'balik-spinner',
36
- `balik-spinner--${local.size}`,
37
- styles.base,
38
- sizes[local.size],
39
- local.class,
40
- ]
41
- .filter(Boolean)
42
- .join(' ')}
43
- />
44
- )
45
- }
@@ -1,35 +0,0 @@
1
- .base {
2
- color: var(--base-edge);
3
- animation: spinner-spin 0.6s linear infinite;
4
- }
5
-
6
- .sizeXs {
7
- width: 14px;
8
- height: 14px;
9
- }
10
-
11
- .sizeSm {
12
- width: 18px;
13
- height: 18px;
14
- }
15
-
16
- .sizeMd {
17
- width: 24px;
18
- height: 24px;
19
- }
20
-
21
- .sizeLg {
22
- width: 32px;
23
- height: 32px;
24
- }
25
-
26
- .sizeXl {
27
- width: 40px;
28
- height: 40px;
29
- }
30
-
31
- @keyframes spinner-spin {
32
- to {
33
- transform: rotate(360deg);
34
- }
35
- }
@@ -1 +0,0 @@
1
- export { Spinner } from './Spinner.jsx'