@bunnix/components 0.10.3 → 0.11.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 (149) hide show
  1. package/@types/index.d.ts +179 -15
  2. package/README.md +41 -4
  3. package/package.json +3 -8
  4. package/src/core/buttons.css +1 -0
  5. package/src/core/core.css +17 -3
  6. package/src/core/dialog.css +3 -1
  7. package/src/core/dialog.mjs +101 -16
  8. package/src/core/input.css +202 -0
  9. package/src/core/inputs.mjs +723 -23
  10. package/src/core/layout.mjs +1 -2
  11. package/src/core/media.css +36 -1
  12. package/src/core/media.mjs +13 -13
  13. package/src/core/menu.css +10 -29
  14. package/src/core/menu.mjs +159 -70
  15. package/src/core/outline.mjs +100 -0
  16. package/src/core/sidebar.mjs +189 -68
  17. package/src/core/sliderUtils.mjs +51 -0
  18. package/src/core/table.css +23 -0
  19. package/src/core/table.mjs +35 -20
  20. package/src/core/textareaUtils.mjs +31 -0
  21. package/src/core/utils.mjs +105 -0
  22. package/src/font-face/Framework7Icons-Regular.woff2 +0 -0
  23. package/src/index.mjs +3 -1
  24. package/src/icons/add-circle.svg +0 -1
  25. package/src/icons/add.svg +0 -1
  26. package/src/icons/alt.svg +0 -1
  27. package/src/icons/archive.svg +0 -1
  28. package/src/icons/arrow-down.svg +0 -1
  29. package/src/icons/arrow-left.svg +0 -1
  30. package/src/icons/arrow-right.svg +0 -1
  31. package/src/icons/arrow-up.svg +0 -1
  32. package/src/icons/at.svg +0 -1
  33. package/src/icons/attestation.svg +0 -1
  34. package/src/icons/battery-25.svg +0 -1
  35. package/src/icons/bell.svg +0 -3
  36. package/src/icons/bookmark.svg +0 -1
  37. package/src/icons/bot.svg +0 -1
  38. package/src/icons/bubble.svg +0 -1
  39. package/src/icons/building.svg +0 -3
  40. package/src/icons/button.svg +0 -1
  41. package/src/icons/calculate.svg +0 -1
  42. package/src/icons/calendar.svg +0 -1
  43. package/src/icons/captions-bubble.svg +0 -1
  44. package/src/icons/cart.svg +0 -1
  45. package/src/icons/chart.svg +0 -1
  46. package/src/icons/check.svg +0 -1
  47. package/src/icons/chevron-down.svg +0 -1
  48. package/src/icons/chevron-left.svg +0 -1
  49. package/src/icons/chevron-right.svg +0 -1
  50. package/src/icons/clip.svg +0 -1
  51. package/src/icons/clock.svg +0 -3
  52. package/src/icons/close-circle.svg +0 -3
  53. package/src/icons/close.svg +0 -1
  54. package/src/icons/cloud-download.svg +0 -1
  55. package/src/icons/cloud-upload.svg +0 -1
  56. package/src/icons/cloud.svg +0 -1
  57. package/src/icons/columns-layout.svg +0 -1
  58. package/src/icons/command.svg +0 -1
  59. package/src/icons/cube.svg +0 -1
  60. package/src/icons/delete.svg +0 -3
  61. package/src/icons/dollar.svg +0 -3
  62. package/src/icons/download.svg +0 -1
  63. package/src/icons/draw.svg +0 -1
  64. package/src/icons/duplicate.svg +0 -3
  65. package/src/icons/ear.svg +0 -1
  66. package/src/icons/edit.svg +0 -1
  67. package/src/icons/exclamation-mark.svg +0 -1
  68. package/src/icons/eye-open.svg +0 -1
  69. package/src/icons/eye.svg +0 -1
  70. package/src/icons/file-html.svg +0 -1
  71. package/src/icons/file.svg +0 -3
  72. package/src/icons/finger.svg +0 -1
  73. package/src/icons/flag.svg +0 -1
  74. package/src/icons/folder.svg +0 -1
  75. package/src/icons/function.svg +0 -1
  76. package/src/icons/gear.svg +0 -1
  77. package/src/icons/gift.svg +0 -1
  78. package/src/icons/globe.svg +0 -3
  79. package/src/icons/grid.svg +0 -1
  80. package/src/icons/hammer.svg +0 -1
  81. package/src/icons/hand.svg +0 -1
  82. package/src/icons/hare.svg +0 -1
  83. package/src/icons/heart.svg +0 -3
  84. package/src/icons/home.svg +0 -3
  85. package/src/icons/image.svg +0 -1
  86. package/src/icons/inbox.svg +0 -3
  87. package/src/icons/info.svg +0 -1
  88. package/src/icons/key.svg +0 -1
  89. package/src/icons/lamp.svg +0 -1
  90. package/src/icons/link.svg +0 -1
  91. package/src/icons/location.svg +0 -1
  92. package/src/icons/locker.svg +0 -1
  93. package/src/icons/login.svg +0 -1
  94. package/src/icons/logout.svg +0 -3
  95. package/src/icons/mail.svg +0 -3
  96. package/src/icons/map.svg +0 -3
  97. package/src/icons/markup.svg +0 -1
  98. package/src/icons/merge.svg +0 -1
  99. package/src/icons/more-horizontal.svg +0 -5
  100. package/src/icons/more-vertical.svg +0 -5
  101. package/src/icons/mouse.svg +0 -1
  102. package/src/icons/music-mic.svg +0 -1
  103. package/src/icons/paintbrush.svg +0 -1
  104. package/src/icons/palette.svg +0 -1
  105. package/src/icons/password.svg +0 -1
  106. package/src/icons/pencil.svg +0 -1
  107. package/src/icons/people.svg +0 -3
  108. package/src/icons/percent.svg +0 -1
  109. package/src/icons/person-add.svg +0 -1
  110. package/src/icons/person-remove.svg +0 -1
  111. package/src/icons/person.svg +0 -4
  112. package/src/icons/phone.svg +0 -1
  113. package/src/icons/pin.svg +0 -1
  114. package/src/icons/question-circle.svg +0 -3
  115. package/src/icons/remove-circle.svg +0 -1
  116. package/src/icons/return-arrow.svg +0 -1
  117. package/src/icons/save.svg +0 -1
  118. package/src/icons/search.svg +0 -1
  119. package/src/icons/sections.svg +0 -1
  120. package/src/icons/send.svg +0 -1
  121. package/src/icons/share.svg +0 -1
  122. package/src/icons/shine.svg +0 -1
  123. package/src/icons/sliders.svg +0 -1
  124. package/src/icons/star.svg +0 -3
  125. package/src/icons/staroflife.svg +0 -1
  126. package/src/icons/storage.svg +0 -1
  127. package/src/icons/success-circle.svg +0 -3
  128. package/src/icons/swap.svg +0 -1
  129. package/src/icons/switch.svg +0 -1
  130. package/src/icons/sync.svg +0 -3
  131. package/src/icons/table.svg +0 -3
  132. package/src/icons/tag.svg +0 -3
  133. package/src/icons/terminal.svg +0 -1
  134. package/src/icons/text.svg +0 -1
  135. package/src/icons/thumb-down.svg +0 -1
  136. package/src/icons/thumb-up.svg +0 -1
  137. package/src/icons/timer.svg +0 -3
  138. package/src/icons/toggle.svg +0 -1
  139. package/src/icons/trash.svg +0 -1
  140. package/src/icons/tv-music.svg +0 -1
  141. package/src/icons/update-page.svg +0 -1
  142. package/src/icons/upload.svg +0 -1
  143. package/src/icons/video.svg +0 -1
  144. package/src/icons/wallet.svg +0 -1
  145. package/src/icons/wand-stars.svg +0 -1
  146. package/src/icons/waveform.svg +0 -1
  147. package/src/icons/window.svg +0 -1
  148. package/src/utils/iconRegistry.generated.mjs +0 -187
  149. package/src/utils/iconRegistry.mjs +0 -34
@@ -26,6 +26,75 @@
26
26
  background-size: 1rem;
27
27
  }
28
28
 
29
+ .picker-trigger {
30
+ appearance: none;
31
+ -webkit-appearance: none;
32
+ display: block;
33
+ width: 100%;
34
+ color: var(--color-fg-primary);
35
+ font: inherit;
36
+ text-align: left;
37
+ cursor: pointer;
38
+ }
39
+
40
+ .picker-trigger-disabled {
41
+ cursor: default;
42
+ opacity: 0.6;
43
+ }
44
+
45
+ .picker-selection {
46
+ display: inline-flex;
47
+ align-items: center;
48
+ gap: 0.5rem;
49
+ min-height: 1.25rem;
50
+ }
51
+
52
+ .segmented-picker {
53
+ display: grid;
54
+ grid-auto-flow: column;
55
+ grid-auto-columns: 1fr;
56
+ gap: 2px;
57
+ padding: 2px;
58
+ width: 100%;
59
+ }
60
+
61
+ .segmented-picker-disabled {
62
+ opacity: 0.6;
63
+ }
64
+
65
+ .segmented-picker-segment {
66
+ appearance: none;
67
+ -webkit-appearance: none;
68
+ display: flex;
69
+ align-items: center;
70
+ justify-content: center;
71
+ min-height: 32px;
72
+ padding: 0.375rem 0.75rem;
73
+ border: 1px solid transparent;
74
+ border-radius: 0.625rem;
75
+ background: transparent;
76
+ color: var(--color-fg-primary);
77
+ font: inherit;
78
+ text-align: center;
79
+ cursor: pointer;
80
+ transition:
81
+ background-color 0.18s ease,
82
+ border-color 0.18s ease,
83
+ box-shadow 0.18s ease;
84
+ }
85
+
86
+ .segmented-picker-segment-content {
87
+ margin: 0 auto;
88
+ text-align: center;
89
+ justify-content: center;
90
+ }
91
+
92
+ .segmented-picker-segment-selected {
93
+ background-color: var(--color-bg-primary);
94
+ border-color: var(--color-border-primary);
95
+ box-shadow: 0 1px 2px rgb(0 0 0 / 0.08);
96
+ }
97
+
29
98
  .checkbox {
30
99
  appearance: none;
31
100
  -webkit-appearance: none;
@@ -47,3 +116,136 @@
47
116
  background-position: center;
48
117
  background-size: 80%;
49
118
  }
119
+
120
+ .switch {
121
+ appearance: none;
122
+ -webkit-appearance: none;
123
+ position: relative;
124
+ display: inline-block;
125
+ margin: 0;
126
+ flex-shrink: 0;
127
+ width: 44px;
128
+ height: 26px;
129
+ border-radius: 9999px;
130
+ background-color: var(--color-bg-primary-dimmed);
131
+ transition:
132
+ background-color 0.18s ease,
133
+ border-color 0.18s ease;
134
+ }
135
+
136
+ .switch::before {
137
+ content: "";
138
+ position: absolute;
139
+ top: 2px;
140
+ left: 2px;
141
+ width: 20px;
142
+ height: 20px;
143
+ border-radius: 9999px;
144
+ background-color: var(--color-border-primary);
145
+ box-shadow: 0 1px 3px rgb(0 0 0 / 0.18);
146
+ transition: transform 0.18s ease;
147
+ }
148
+
149
+ .switch:checked {
150
+ background-color: var(--color-success-dimmed);
151
+ border-color: var(--color-success-dimmed);
152
+ }
153
+
154
+ .switch:checked::before {
155
+ background-color: var(--color-bg-primary);
156
+ }
157
+
158
+ .switch:checked::before {
159
+ transform: translateX(18px);
160
+ }
161
+
162
+ .switch:disabled {
163
+ cursor: default;
164
+ opacity: 0.6;
165
+ }
166
+
167
+ .textarea {
168
+ display: block;
169
+ width: 100%;
170
+ max-width: 100%;
171
+ color: var(--color-fg-primary);
172
+ caret-color: var(--color-fg-primary);
173
+ font: inherit;
174
+ line-height: 1.5;
175
+ vertical-align: top;
176
+ white-space: pre-wrap;
177
+ overflow-wrap: break-word;
178
+ word-break: break-word;
179
+ overflow-x: hidden;
180
+ resize: none;
181
+ outline: none;
182
+ }
183
+
184
+ .textarea::placeholder {
185
+ color: var(--color-fg-tertiary);
186
+ }
187
+
188
+ .slider {
189
+ appearance: none;
190
+ -webkit-appearance: none;
191
+ width: 100%;
192
+ height: 1.25rem;
193
+ margin: 0;
194
+ background: transparent;
195
+ cursor: pointer;
196
+ }
197
+
198
+ .slider::-webkit-slider-runnable-track {
199
+ height: 0.25rem;
200
+ border-radius: 9999px;
201
+ background-color: var(--color-border-primary);
202
+ }
203
+
204
+ .slider::-webkit-slider-thumb {
205
+ -webkit-appearance: none;
206
+ width: 1rem;
207
+ height: 1rem;
208
+ margin-top: -0.375rem;
209
+ border: 1px solid var(--color-border-primary);
210
+ border-radius: 9999px;
211
+ background-color: var(--color-bg-primary);
212
+ }
213
+
214
+ .slider::-moz-range-track {
215
+ height: 0.25rem;
216
+ border-radius: 9999px;
217
+ background-color: var(--color-border-primary);
218
+ }
219
+
220
+ .slider::-moz-range-thumb {
221
+ width: 1rem;
222
+ height: 1rem;
223
+ border: 1px solid var(--color-border-primary);
224
+ border-radius: 9999px;
225
+ background-color: var(--color-bg-primary);
226
+ }
227
+
228
+ .slider-step-labels {
229
+ position: relative;
230
+ width: 100%;
231
+ min-height: 1.5rem;
232
+ }
233
+
234
+ .slider-step-label {
235
+ position: absolute;
236
+ top: 0;
237
+ text-align: center;
238
+ white-space: nowrap;
239
+ }
240
+
241
+ .slider-step-label-start {
242
+ transform: translateX(0);
243
+ }
244
+
245
+ .slider-step-label-center {
246
+ transform: translateX(-50%);
247
+ }
248
+
249
+ .slider-step-label-end {
250
+ transform: translateX(-100%);
251
+ }