@lardexx/react 1.0.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 (86) hide show
  1. package/LICENSE +23 -0
  2. package/README.md +286 -0
  3. package/dist/icons-BbGGUHyX.cjs +2 -0
  4. package/dist/icons-BbGGUHyX.cjs.map +1 -0
  5. package/dist/icons-DQRCVyKi.js +126 -0
  6. package/dist/icons-DQRCVyKi.js.map +1 -0
  7. package/dist/icons.cjs +2 -0
  8. package/dist/icons.cjs.map +1 -0
  9. package/dist/icons.js +13620 -0
  10. package/dist/icons.js.map +1 -0
  11. package/dist/oneui-react.cjs +2 -0
  12. package/dist/oneui-react.cjs.map +1 -0
  13. package/dist/oneui-react.css +2 -0
  14. package/dist/oneui-react.js +1402 -0
  15. package/dist/oneui-react.js.map +1 -0
  16. package/dist/types/components/AppInfo.d.ts +35 -0
  17. package/dist/types/components/AppInfo.d.ts.map +1 -0
  18. package/dist/types/components/BottomNav.d.ts +25 -0
  19. package/dist/types/components/BottomNav.d.ts.map +1 -0
  20. package/dist/types/components/Button.d.ts +16 -0
  21. package/dist/types/components/Button.d.ts.map +1 -0
  22. package/dist/types/components/ColorPickerPreference.d.ts +19 -0
  23. package/dist/types/components/ColorPickerPreference.d.ts.map +1 -0
  24. package/dist/types/components/DescriptionPreference.d.ts +18 -0
  25. package/dist/types/components/DescriptionPreference.d.ts.map +1 -0
  26. package/dist/types/components/Dialog.d.ts +38 -0
  27. package/dist/types/components/Dialog.d.ts.map +1 -0
  28. package/dist/types/components/Drawer.d.ts +24 -0
  29. package/dist/types/components/Drawer.d.ts.map +1 -0
  30. package/dist/types/components/GridMenuDialog.d.ts +27 -0
  31. package/dist/types/components/GridMenuDialog.d.ts.map +1 -0
  32. package/dist/types/components/HorizontalRadioPreference.d.ts +26 -0
  33. package/dist/types/components/HorizontalRadioPreference.d.ts.map +1 -0
  34. package/dist/types/components/Page.d.ts +66 -0
  35. package/dist/types/components/Page.d.ts.map +1 -0
  36. package/dist/types/components/Preference.d.ts +23 -0
  37. package/dist/types/components/Preference.d.ts.map +1 -0
  38. package/dist/types/components/PreferenceGroup.d.ts +20 -0
  39. package/dist/types/components/PreferenceGroup.d.ts.map +1 -0
  40. package/dist/types/components/ProgressBar.d.ts +35 -0
  41. package/dist/types/components/ProgressBar.d.ts.map +1 -0
  42. package/dist/types/components/ProgressDialog.d.ts +23 -0
  43. package/dist/types/components/ProgressDialog.d.ts.map +1 -0
  44. package/dist/types/components/RelatedCard.d.ts +22 -0
  45. package/dist/types/components/RelatedCard.d.ts.map +1 -0
  46. package/dist/types/components/RoundBox.d.ts +31 -0
  47. package/dist/types/components/RoundBox.d.ts.map +1 -0
  48. package/dist/types/components/Separator.d.ts +13 -0
  49. package/dist/types/components/Separator.d.ts.map +1 -0
  50. package/dist/types/components/Slider.d.ts +39 -0
  51. package/dist/types/components/Slider.d.ts.map +1 -0
  52. package/dist/types/components/SliderPreference.d.ts +22 -0
  53. package/dist/types/components/SliderPreference.d.ts.map +1 -0
  54. package/dist/types/components/Splash.d.ts +21 -0
  55. package/dist/types/components/Splash.d.ts.map +1 -0
  56. package/dist/types/components/Switch.d.ts +15 -0
  57. package/dist/types/components/Switch.d.ts.map +1 -0
  58. package/dist/types/components/SwitchBar.d.ts +38 -0
  59. package/dist/types/components/SwitchBar.d.ts.map +1 -0
  60. package/dist/types/components/SwitchPreference.d.ts +9 -0
  61. package/dist/types/components/SwitchPreference.d.ts.map +1 -0
  62. package/dist/types/components/Tabs.d.ts +31 -0
  63. package/dist/types/components/Tabs.d.ts.map +1 -0
  64. package/dist/types/components/TipPopup.d.ts +27 -0
  65. package/dist/types/components/TipPopup.d.ts.map +1 -0
  66. package/dist/types/components/TipsCard.d.ts +25 -0
  67. package/dist/types/components/TipsCard.d.ts.map +1 -0
  68. package/dist/types/components/Toast.d.ts +28 -0
  69. package/dist/types/components/Toast.d.ts.map +1 -0
  70. package/dist/types/icons.d.ts +47 -0
  71. package/dist/types/icons.d.ts.map +1 -0
  72. package/dist/types/index.d.ts +36 -0
  73. package/dist/types/index.d.ts.map +1 -0
  74. package/dist/types/oneui-icons/OneIcon.d.ts +26 -0
  75. package/dist/types/oneui-icons/OneIcon.d.ts.map +1 -0
  76. package/dist/types/oneui-icons/generated.d.ts +2670 -0
  77. package/dist/types/oneui-icons/generated.d.ts.map +1 -0
  78. package/dist/types/oneui-icons/index.d.ts +18 -0
  79. package/dist/types/oneui-icons/index.d.ts.map +1 -0
  80. package/dist/types/strings.d.ts +44 -0
  81. package/dist/types/strings.d.ts.map +1 -0
  82. package/dist/types/theme.d.ts +47 -0
  83. package/dist/types/theme.d.ts.map +1 -0
  84. package/dist/types/utils.d.ts +19 -0
  85. package/dist/types/utils.d.ts.map +1 -0
  86. package/package.json +71 -0
package/LICENSE ADDED
@@ -0,0 +1,23 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2022 Yanndroid & BlackMesa123
4
+ (oneui-design, oneui-icons — original Android libraries)
5
+ Copyright (c) 2026 OneUIProject contributors (React port & icon conversion)
6
+
7
+ Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ of this software and associated documentation files (the "Software"), to deal
9
+ in the Software without restriction, including without limitation the rights
10
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ copies of the Software, and to permit persons to whom the Software is
12
+ furnished to do so, subject to the following conditions:
13
+
14
+ The above copyright notice and this permission notice shall be included in all
15
+ copies or substantial portions of the Software.
16
+
17
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,286 @@
1
+ # @lardexx/react
2
+
3
+ **Samsung One UI design system components for React** — an open web port of
4
+ [`OneUIProject/oneui-design`](https://github.com/OneUIProject/oneui-design)
5
+ (the Android library of custom One UI components).
6
+
7
+ Every design token, dimension and behaviour in this package is transcribed from
8
+ the original Android resources (`values/colors.xml`, `dimens.xml`, `styles.xml`,
9
+ the `oui_*` layouts/drawables) plus the `sesl_*` base values from
10
+ [`oneui-core`](https://github.com/OneUIProject/oneui-core), so the web UI
11
+ matches what Samsung apps look like — light **and** dark.
12
+
13
+ ```bash
14
+ npm install @lardexx/react react react-dom
15
+ ```
16
+
17
+ ```tsx
18
+ import { OneUIProvider, Page, Button, toast } from '@lardexx/react';
19
+ // (the build auto-imports the stylesheet; you can also add it manually)
20
+ // import '@lardexx/react/style.css';
21
+
22
+ export function App() {
23
+ return (
24
+ <OneUIProvider theme="system">
25
+ <Page title="Settings" subtitle="One UI for the web" onNavClick={() => {}}>
26
+ <Button onClick={() => toast('Saved')}>Save</Button>
27
+ </Page>
28
+ </OneUIProvider>
29
+ );
30
+ }
31
+ ```
32
+
33
+ Run the bundled showcase with `npm run dev`, build with `npm run build`.
34
+
35
+ ---
36
+
37
+ ## Component map
38
+
39
+ Each React component is a port of a class/layout from the Android library:
40
+
41
+ | React component | Android origin |
42
+ | --- | --- |
43
+ | `Page` | `ToolbarLayout` — collapsing big title, pinned toolbar, search mode, action (selection) mode, footer slot |
44
+ | `Drawer` | `DrawerLayout` — 16dp top margin, themeable scrim (`#33000000` / `#cc000000`) |
45
+ | `BottomNav` | `BottomNavigationView` in `oui_layout_toolbar_layout_footer.xml` |
46
+ | `SwitchBar` | `SwitchBarLayout` — 64dp bar + top-rounded content container |
47
+ | `Switch` | `SeslSwitch` |
48
+ | `RoundBox` | `RoundFrameLayout` / `RoundLinearLayout` — Android-style `roundedCorners` bit mask |
49
+ | `Separator` | `Separator` / list subheader (13sp bold, `#8c8c8c`) |
50
+ | `Splash` | `SplashLayout` — 80dp logo, 30sp title, wiggle intro (`oui_splash_animation`) |
51
+ | `AppInfo` | `AppInfoLayout` — 38sp name, version line, pill actions (radius 22) |
52
+ | `Button` | `OneUI.ButtonStyleColored` / `Outline` / `Transparent` |
53
+ | `Tabs` | `MarginsTabLayout` (24dp inset) — underline or pill variant |
54
+ | `Slider` | `HapticSeekBar` + `SeekBarPreferencePro` — ticks (7dp dots), ± steppers, value readout, dual-thumb **overlap** mode (orange `sesl_seekbar_overlap_color_activated`) |
55
+ | `CircularProgress` / `LinearProgress` / `ProgressBar` | `SeslProgressBar` |
56
+ | `Dialog` + `DialogButton` | sesl alert dialog (28dp window, equal-width footer buttons) |
57
+ | `ProgressDialog` | `ProgressDialog` — `circle` / `spinner` / `horizontal` layouts |
58
+ | `GridMenuDialog` | `GridMenuDialog` — icon grid, 16/20dp padding, 8dp gap, `N` badge |
59
+ | `RelatedCard` | `RelatedCard` (`oui_view_relative_link`) — “Looking for something else?” |
60
+ | `TipPopup` | `TipPopup` — `#474747` balloon, 16×12 arrow, action button |
61
+ | `toast()` / `Toast` | `Toast` — translucent pill, radius 22, 16sp text |
62
+ | `PreferenceGroup` | `InsetPreferenceCategory` + category subheader (flat or `card` variant) |
63
+ | `Preference` | generic preference row (icon/title/summary/end) |
64
+ | `SwitchPreference` | switch preference row |
65
+ | `SliderPreference` | `SeekBarPreferencePro` (expand layout, `colorPrimaryDark` value) |
66
+ | `DescriptionPreference` | `DescriptionPreference` (unclickable text, 14sp +4sp leading) |
67
+ | `HorizontalRadioPreference` | `HorizontalRadioPreference` (text & image view types) |
68
+ | `TipsCard` | `TipsCardPreference` |
69
+ | `ColorPickerPreference` | `ColorPickerPreference` (`showAlphaSlider` supported) |
70
+
71
+ Icons (`IconMenu`, `IconAppInfo`, `IconClose`, `IconAdd`, `IconRemove`, …) are
72
+ the vector drawables from `res/drawable/` converted to SVG.
73
+
74
+ ---
75
+
76
+ ## Theming
77
+
78
+ ### Light / dark / system
79
+
80
+ ```tsx
81
+ const [theme, setTheme] = useState<Theme>('system');
82
+
83
+ <OneUIProvider theme={theme} onThemeChange={setTheme}>…</OneUIProvider>
84
+ ```
85
+
86
+ The provider mirrors `data-oneui-theme="light|dark"` onto `<html>` (so portaled
87
+ dialogs/toasts inherit it) and falls back to `prefers-color-scheme` via CSS when
88
+ no provider is present. Use `scope="element"` to keep the attribute local.
89
+
90
+ ### Accent, radius, strings
91
+
92
+ ```tsx
93
+ <OneUIProvider
94
+ accent="#7e57c2" // sets --oui-primary (+ derived dark accent)
95
+ radius={28} // main content corner radius (Page/RoundBox)
96
+ strings={{ cancel: 'Nope' }} // override any subset of the built-in strings
97
+ >
98
+ ```
99
+
100
+ Built-in English strings are ported from `values/strings.xml`
101
+ (`relatedDescription`, `actionModeSelected`, `versionInfo`, `cancel`, …) and are
102
+ available via `useStrings()` / `useOneUI()`.
103
+
104
+ ### Design tokens
105
+
106
+ All colors are plain CSS custom properties (see `src/styles/tokens.css`), so
107
+ they can be overridden globally or per subtree:
108
+
109
+ | Token (excerpt) | Light | Dark | Source |
110
+ | --- | --- | --- | --- |
111
+ | `--oui-bg` | `#f6f6f6` | `#010101` | `sesl_round_and_bgcolor_*` |
112
+ | `--oui-surface` | `#fcfcfc` | `#171717` | `sesl_background_color_*` |
113
+ | `--oui-text` | `#010101` | `#fafafa` | `oui_primary_text_color` |
114
+ | `--oui-primary` | `#0381fe` | `#0381fe` | `sesl_primary_color_*` |
115
+ | `--oui-primary-dark` | `#0072de` | `#3e91ff` | `sesl_primary_dark_color_*` |
116
+ | `--oui-green` / `orange` / `red` | `#14a866` / `#ef5e16` / `#db332a` | `#5ad69e` / `#f6874f` / `#f76f68` | `sesl_functional_*` |
117
+ | `--oui-divider` | `rgba(0,0,0,.08)` | `rgba(255,255,255,.15)` | `sesl_list_divider_color_*` |
118
+ | `--oui-slider-overlap` | `#ef5e16` | `#ff6021` | `sesl_seekbar_overlap_color_activated_*` |
119
+ | `--oui-switch-track-off/on` | `#999999` / `#0381fe` | `#666660` / `#3e91ff` | `sesl_switch_track_*` |
120
+ | `--oui-link-bg` | primary @ 6% | primary @ 30% | `oui_relative_link_background_color*` |
121
+ | `--oui-badge` | `#ef5e16` | `#ef5e16` | `oui_n_badge_background_color` |
122
+ | `--oui-radius-xl` | `26px` | `26px` | 26dp drawables |
123
+ | `--oui-radius-dialog` | `28px` | `28px` | sesl dialog window |
124
+
125
+ Radii follow the original drawables: `12px` grid-menu ripples, `18px` outline
126
+ buttons, `22px` toast/app-info pills, `26px` cards & content surfaces, `28px`
127
+ dialogs.
128
+
129
+ ---
130
+
131
+ ## Usage examples
132
+
133
+ ### Page (collapsing toolbar)
134
+
135
+ ```tsx
136
+ <Page
137
+ title="Settings"
138
+ expandedTitle="Settings"
139
+ subtitle="One UI 7"
140
+ onNavClick={() => setDrawer(true)}
141
+ navBadge="N"
142
+ actions={<button className="oui-page__nav oui-press"><IconSearch /></button>}
143
+ searchMode={searching}
144
+ searchQuery={query}
145
+ onSearchQueryChange={setQuery}
146
+ onSearchClose={() => setSearching(false)}
147
+ actionMode={selected.length ? {
148
+ count: selected.length,
149
+ onClose: () => setSelected([]),
150
+ allChecked: allSelected,
151
+ onToggleAll: toggleAll,
152
+ } : null}
153
+ footer={<BottomNav items={items} value={tab} onChange={setTab} />}
154
+ >
155
+ …scrollable content with a 26dp rounded top surface…
156
+ </Page>
157
+ ```
158
+
159
+ ### Preferences
160
+
161
+ ```tsx
162
+ <PreferenceGroup title="Network" variant="card">
163
+ <SwitchPreference title="Wi-Fi" summary="Galaxy-5G" checked={wifi} onChange={setWifi} />
164
+ <SliderPreference title="Data limit" value={limit} onChange={setLimit} units=" GB" stepper ticks />
165
+ <DescriptionPreference>
166
+ Non-copyable explanatory text with <a href="…">links</a>.
167
+ </DescriptionPreference>
168
+ </PreferenceGroup>
169
+ ```
170
+
171
+ ### Slider (single, dual overlap, steppers)
172
+
173
+ ```tsx
174
+ <Slider value={volume} onChange={setVolume} showValue units="%" ticks stepper />
175
+ <Slider value={[min, max]} onChange={setRange} showValue /> // orange overlap fill
176
+ ```
177
+
178
+ ### Dialogs & toasts
179
+
180
+ ```tsx
181
+ <Dialog
182
+ open={open}
183
+ onClose={() => setOpen(false)}
184
+ title="Turn off Wi-Fi?"
185
+ actions={<>
186
+ <DialogButton onClick={() => setOpen(false)}>Cancel</DialogButton>
187
+ <DialogButton emphasis onClick={turnOff}>Turn off</DialogButton>
188
+ </>}
189
+ >
190
+ You’ll stop connecting to open networks near you.
191
+ </Dialog>
192
+
193
+ <ProgressDialog open={loading} variant="spinner" message="Searching…" />
194
+ <GridMenuDialog open={menu} onClose={setMenu(false)} items={gridItems} />
195
+
196
+ toast('Saved'); // bottom pill
197
+ toast('Copied', { position: 'top', duration: 1200 });
198
+ ```
199
+
200
+ ---
201
+
202
+ ## Icons
203
+
204
+ The package also ships the complete **[OneUIProject/oneui-icons](https://github.com/OneUIProject/oneui-icons)**
205
+ catalog — **883 vector icons** found in Samsung apps — as a separate
206
+ tree-shakeable entry point:
207
+
208
+ ```tsx
209
+ // named components (best tree-shaking)
210
+ import { IcOuiAlarm, IcOuiWifi, IcOuiBluetooth } from '@lardexx/react/icons';
211
+
212
+ <IcOuiAlarm size={32} />
213
+ <IcOuiWifi style={{ color: '#0381fe' }} />
214
+
215
+ // or look them up by name (short or full Android resource name)
216
+ import { OneIcon, iconNames } from '@lardexx/react/icons';
217
+
218
+ <OneIcon name="alarm" size={24} />
219
+ <OneIcon name="ic_oui_wifi" size={24} />
220
+ {iconNames.length} // 883
221
+ ```
222
+
223
+ Conversion notes:
224
+
225
+ - The day/night resource `@color/oui_primary_icon_color` is mapped to
226
+ **`currentColor`**, so icons inherit the CSS `color` (theme-aware for free).
227
+ - Literal colors on multicolor icons (white, grey, accent fills) are preserved.
228
+ - `<clip-path>`/`<group>` structures become `<clipPath>`/`<g>`; `<layer-list>`
229
+ wrappers are unwrapped; intrinsic dp sizes (16/24/36/48) become default
230
+ `size` values.
231
+ - Component names are the resource names in PascalCase: `ic_oui_add_pdf` →
232
+ `IcOuiAddPdf`; the `icons` registry uses the short name (`'add_pdf'`).
233
+ - The catalog entry is ~289 KB gzipped in full. Prefer named imports so unused
234
+ icons are shaken away, or load `<OneIcon>` only when you need dynamic lookup.
235
+ - Regenerate after upstream updates with `npm run generate:icons`
236
+ (`node scripts/generate-icons.mjs [path/to/oneui-icons/res/drawable]`).
237
+
238
+ The showcase app includes a searchable gallery of all 883 icons
239
+ (`demo/IconsSection.tsx`).
240
+
241
+ ---
242
+
243
+ ## Development
244
+
245
+ ```bash
246
+ npm install # install dev dependencies
247
+ npm run dev # showcase app (demo/)
248
+ npm run build # library → dist/ (ESM + CJS + CSS + .d.ts)
249
+ npm run typecheck # tsc --noEmit
250
+ npm run generate:icons # rebuild src/oneui-icons/generated.tsx
251
+ ```
252
+
253
+ `npm run build` emits:
254
+
255
+ ```
256
+ dist/
257
+ ├── oneui-react.js # ESM entry (auto-imports the CSS)
258
+ ├── oneui-react.cjs # CommonJS entry
259
+ ├── oneui-react.css # all component styles + tokens
260
+ ├── icons.js / icons.cjs# 883-icon catalog (`@lardexx/react/icons`)
261
+ └── types/ # TypeScript declarations
262
+ ```
263
+
264
+ ## Scope notes
265
+
266
+ - Pure CSS/DOM ports of the view layer — Android-only utilities
267
+ (`QREncoder`, `IndexScrollUtils`, haptics, reflection helpers) are out of scope.
268
+ - Type sizes map `sp/dp → px` 1:1 (the standard approach on the web).
269
+ - Samsung’s proprietary fonts (`SamsungOne`, `Samsung Sharp Sans`) are **not**
270
+ bundled; the stack falls back to the platform UI font if they are absent.
271
+ - `StartEndTimePickerDialog` is not ported yet — use native `input type="time"`
272
+ controls inside a `Dialog`.
273
+
274
+ ## Credits
275
+
276
+ - Original Android library: [OneUIProject/oneui-design](https://github.com/OneUIProject/oneui-design)
277
+ (MIT © 2022 Yanndroid & BlackMesa123) and its `sesl_*` base from
278
+ [oneui-core](https://github.com/OneUIProject/oneui-core).
279
+ - Icon catalog: [OneUIProject/oneui-icons](https://github.com/OneUIProject/oneui-icons)
280
+ (MIT © 2022 Yanndroid & BlackMesa123), converted from the Android vector
281
+ drawables to React SVG components.
282
+ - Design language: [Samsung One UI Design Guide](https://developer.samsung.com/one-ui/index.html).
283
+
284
+ ## License
285
+
286
+ MIT — see [LICENSE](./LICENSE).
@@ -0,0 +1,2 @@
1
+ let e=require("react/jsx-runtime");function t({size:t=24,children:n,...r}){return(0,e.jsx)(`svg`,{width:t,height:t,viewBox:`0 0 24 24`,fill:`currentColor`,"aria-hidden":`true`,focusable:`false`,...r,children:n})}function n(n){return(0,e.jsx)(t,{...n,viewBox:`0 0 72 72`,children:(0,e.jsx)(`path`,{fillRule:`evenodd`,d:`M57,53.25C58.242,53.25 59.25,54.258 59.25,55.5C59.25,56.745 58.242,57.75 57,57.75L15,57.75C13.758,57.75 12.75,56.745 12.75,55.5C12.75,54.258 13.758,53.25 15,53.25ZM57,33.75C58.242,33.75 59.25,34.758 59.25,36C59.25,37.245 58.242,38.25 57,38.25L15,38.25C13.758,38.25 12.75,37.245 12.75,36C12.75,34.758 13.758,33.75 15,33.75ZM57,14.25C58.242,14.25 59.25,15.258 59.25,16.5C59.25,17.745 58.242,18.75 57,18.75L15,18.75C13.758,18.75 12.75,17.745 12.75,16.5C12.75,15.258 13.758,14.25 15,14.25Z`})})}function r(n){return(0,e.jsx)(t,{...n,children:(0,e.jsx)(`path`,{d:`M12,2.75c5.109,0 9.25,4.142 9.25,9.251c0,5.108 -4.141,9.25 -9.25,9.25c-5.108,0 -9.25,-4.141 -9.25,-9.249c0,-5.105 4.142,-9.252 9.25,-9.252zM12,4.25c-4.28,0 -7.75,3.47 -7.75,7.751c0,4.281 3.471,7.75 7.75,7.75c4.281,0 7.75,-3.469 7.75,-7.749c0,-4.282 -3.469,-7.751 -7.75,-7.751zM13,10.137v6.872c0,0.414 -0.336,0.75 -0.75,0.75c-0.38,0 -0.694,-0.282 -0.743,-0.648L11.5,17.009v-5.365l-1.168,0.001c-0.38,0 -0.694,-0.282 -0.743,-0.648l-0.007,-0.102c0,-0.38 0.282,-0.693 0.648,-0.743l0.101,-0.007H13zM12.055,6.965c0.552,0 1,0.448 1,1c0,0.552 -0.448,1 -1,1c-0.552,0 -1,-0.448 -1,-1c0,-0.552 0.448,-1 1,-1z`})})}function i(n){return(0,e.jsx)(t,{...n,children:(0,e.jsx)(`path`,{d:`M13.06,11.9994L19.031,6.0304C19.324,5.7374 19.324,5.2634 19.031,4.9704C18.738,4.6774 18.262,4.6774 17.97,4.9704L11.999,10.9384L6.03,4.9704C5.737,4.6774 5.262,4.6774 4.969,4.9704C4.676,5.2634 4.676,5.7374 4.969,6.0304L10.939,11.9994L4.969,17.9704C4.676,18.2634 4.676,18.7374 4.969,19.0304C5.116,19.1774 5.307,19.2494 5.499,19.2494C5.692,19.2494 5.883,19.1774 6.03,19.0304L11.999,13.0614L17.97,19.0304C18.116,19.1774 18.308,19.2494 18.5,19.2494C18.692,19.2494 18.884,19.1774 19.031,19.0304C19.324,18.7374 19.324,18.2634 19.031,17.9704L13.06,11.9994Z`})})}function a(n){return(0,e.jsx)(t,{...n,children:(0,e.jsx)(`path`,{fillRule:`evenodd`,d:`M20.375,11.25L12.75,11.25L12.75,3.625C12.75,3.211 12.414,2.875 12,2.875C11.586,2.875 11.25,3.211 11.25,3.625L11.25,11.25L3.625,11.25C3.211,11.25 2.875,11.586 2.875,12C2.875,12.414 3.211,12.75 3.625,12.75L11.25,12.75L11.25,20.375C11.25,20.789 11.586,21.125 12,21.125C12.414,21.125 12.75,20.789 12.75,20.375L12.75,12.75L20.375,12.75C20.789,12.75 21.125,12.414 21.125,12C21.125,11.586 20.789,11.25 20.375,11.25`})})}function o(n){return(0,e.jsx)(t,{...n,children:(0,e.jsx)(`path`,{d:`M5.1522,12.5L18.8478,12.5C19.2078,12.5 19.5,12.276 19.5,12C19.5,11.724 19.2078,11.5 18.8478,11.5L5.1522,11.5C4.7922,11.5 4.5,11.724 4.5,12C4.5,12.276 4.7922,12.5 5.1522,12.5`})})}function s(n){return(0,e.jsx)(t,{...n,children:(0,e.jsx)(`path`,{d:`M15.5 4.5 L7.5 12 L15.5 19.5`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`})})}function c(n){return(0,e.jsx)(t,{...n,children:(0,e.jsx)(`path`,{d:`M10.5 4a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm-8 6.5a8 8 0 1 1 14.23 4.98l4.4 4.4a1 1 0 0 1-1.42 1.4l-4.4-4.38A8 8 0 0 1 2.5 10.5Z`})})}function l(n){return(0,e.jsx)(t,{...n,children:(0,e.jsx)(`path`,{d:`M9.55 17.6 4 12.05l1.4-1.4 4.15 4.15L18.6 5.85 20 7.25 9.55 17.6Z`})})}function u(n){return(0,e.jsxs)(t,{...n,children:[(0,e.jsx)(`circle`,{cx:`12`,cy:`5`,r:`1.8`}),(0,e.jsx)(`circle`,{cx:`12`,cy:`12`,r:`1.8`}),(0,e.jsx)(`circle`,{cx:`12`,cy:`19`,r:`1.8`})]})}function d(n){return(0,e.jsx)(t,{...n,children:(0,e.jsx)(`path`,{d:`M19.14 12.94a7.07 7.07 0 0 0 0-1.88l2.03-1.58a.5.5 0 0 0 .12-.64l-1.92-3.32a.5.5 0 0 0-.61-.22l-2.39.96a7.2 7.2 0 0 0-1.63-.94l-.36-2.54a.5.5 0 0 0-.5-.42h-3.84a.5.5 0 0 0-.5.42l-.36 2.54c-.58.24-1.13.55-1.63.94l-2.39-.96a.5.5 0 0 0-.61.22L2.67 8.84a.5.5 0 0 0 .12.64l2.03 1.58a7.07 7.07 0 0 0 0 1.88l-2.03 1.58a.5.5 0 0 0-.12.64l1.92 3.32c.13.22.39.3.61.22l2.39-.96c.5.39 1.05.7 1.63.94l.36 2.54c.04.24.25.42.5.42h3.84c.25 0 .46-.18.5-.42l.36-2.54c.58-.24 1.13-.55 1.63-.94l2.39.96c.22.08.48 0 .61-.22l1.92-3.32a.5.5 0 0 0-.12-.64l-2.03-1.58ZM12 15.5A3.5 3.5 0 1 1 12 8.5a3.5 3.5 0 0 1 0 7Z`})})}function f(n){return(0,e.jsx)(t,{...n,children:(0,e.jsx)(`path`,{d:`M12 3.2 3.5 10.4V20a1 1 0 0 0 1 1h4.75v-5.75h5.5V21h4.75a1 1 0 0 0 1-1v-9.6L12 3.2Z`})})}function p(n){return(0,e.jsx)(t,{...n,children:(0,e.jsx)(`path`,{d:`M3.5 6.75A1.75 1.75 0 0 1 5.25 5h4.03c.46 0 .9.18 1.23.51l1.24 1.24h7A1.75 1.75 0 0 1 20.5 8.5v8.75A1.75 1.75 0 0 1 18.75 19H5.25a1.75 1.75 0 0 1-1.75-1.75V6.75Z`})})}function m(n){return(0,e.jsx)(t,{...n,children:(0,e.jsx)(`path`,{d:`M12 11.5a4 4 0 1 0 0-8 4 4 0 0 0 0 8Zm0 1.75c-4.06 0-7.25 2.35-7.25 5.25V20h14.5v-1.5c0-2.9-3.19-5.25-7.25-5.25Z`})})}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return t}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return u}});
2
+ //# sourceMappingURL=icons-BbGGUHyX.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icons-BbGGUHyX.cjs","names":[],"sources":["../src/icons.tsx"],"sourcesContent":["/**\n * Icons ported from the vector drawables of OneUIProject/oneui-design:\n * drawable/oui_ic_ab_drawer.xml\n * drawable/oui_ic_ab_app_info.xml\n * drawable/oui_preference_tipscard_close.xml\n * drawable/oui_preference_seekbar_pro_plus.xml / _minus.xml\n * plus a few small companion glyphs drawn to match.\n */\nimport type { ReactNode, SVGProps } from 'react';\n\nexport type IconProps = SVGProps<SVGSVGElement> & { size?: number };\n\n/**\n * Shared SVG shell used by the hand-written companion icons and by the\n * generated 883-icon catalog (`@oneuiproject/react/icons`).\n */\nexport function IconBase({\n size = 24,\n children,\n ...props\n}: IconProps & { children: ReactNode; viewBox?: string }) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n focusable=\"false\"\n {...props}\n >\n {children}\n </svg>\n );\n}\n\n/** Hamburger icon (`oui_ic_ab_drawer`, original viewport 72). */\nexport function IconMenu(props: IconProps) {\n return (\n <IconBase {...props} viewBox=\"0 0 72 72\">\n <path\n fillRule=\"evenodd\"\n d=\"M57,53.25C58.242,53.25 59.25,54.258 59.25,55.5C59.25,56.745 58.242,57.75 57,57.75L15,57.75C13.758,57.75 12.75,56.745 12.75,55.5C12.75,54.258 13.758,53.25 15,53.25ZM57,33.75C58.242,33.75 59.25,34.758 59.25,36C59.25,37.245 58.242,38.25 57,38.25L15,38.25C13.758,38.25 12.75,37.245 12.75,36C12.75,34.758 13.758,33.75 15,33.75ZM57,14.25C58.242,14.25 59.25,15.258 59.25,16.5C59.25,17.745 58.242,18.75 57,18.75L15,18.75C13.758,18.75 12.75,17.745 12.75,16.5C12.75,15.258 13.758,14.25 15,14.25Z\"\n />\n </IconBase>\n );\n}\n\n/** App info icon (`oui_ic_ab_app_info`). */\nexport function IconAppInfo(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"M12,2.75c5.109,0 9.25,4.142 9.25,9.251c0,5.108 -4.141,9.25 -9.25,9.25c-5.108,0 -9.25,-4.141 -9.25,-9.249c0,-5.105 4.142,-9.252 9.25,-9.252zM12,4.25c-4.28,0 -7.75,3.47 -7.75,7.751c0,4.281 3.471,7.75 7.75,7.75c4.281,0 7.75,-3.469 7.75,-7.749c0,-4.282 -3.469,-7.751 -7.75,-7.751zM13,10.137v6.872c0,0.414 -0.336,0.75 -0.75,0.75c-0.38,0 -0.694,-0.282 -0.743,-0.648L11.5,17.009v-5.365l-1.168,0.001c-0.38,0 -0.694,-0.282 -0.743,-0.648l-0.007,-0.102c0,-0.38 0.282,-0.693 0.648,-0.743l0.101,-0.007H13zM12.055,6.965c0.552,0 1,0.448 1,1c0,0.552 -0.448,1 -1,1c-0.552,0 -1,-0.448 -1,-1c0,-0.552 0.448,-1 1,-1z\" />\n </IconBase>\n );\n}\n\n/** Close / dismiss (`oui_preference_tipscard_close`). */\nexport function IconClose(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"M13.06,11.9994L19.031,6.0304C19.324,5.7374 19.324,5.2634 19.031,4.9704C18.738,4.6774 18.262,4.6774 17.97,4.9704L11.999,10.9384L6.03,4.9704C5.737,4.6774 5.262,4.6774 4.969,4.9704C4.676,5.2634 4.676,5.7374 4.969,6.0304L10.939,11.9994L4.969,17.9704C4.676,18.2634 4.676,18.7374 4.969,19.0304C5.116,19.1774 5.307,19.2494 5.499,19.2494C5.692,19.2494 5.883,19.1774 6.03,19.0304L11.999,13.0614L17.97,19.0304C18.116,19.1774 18.308,19.2494 18.5,19.2494C18.692,19.2494 18.884,19.1774 19.031,19.0304C19.324,18.7374 19.324,18.2634 19.031,17.9704L13.06,11.9994Z\" />\n </IconBase>\n );\n}\n\n/** Plus (`oui_preference_seekbar_pro_plus`). */\nexport function IconAdd(props: IconProps) {\n return (\n <IconBase {...props}>\n <path\n fillRule=\"evenodd\"\n d=\"M20.375,11.25L12.75,11.25L12.75,3.625C12.75,3.211 12.414,2.875 12,2.875C11.586,2.875 11.25,3.211 11.25,3.625L11.25,11.25L3.625,11.25C3.211,11.25 2.875,11.586 2.875,12C2.875,12.414 3.211,12.75 3.625,12.75L11.25,12.75L11.25,20.375C11.25,20.789 11.586,21.125 12,21.125C12.414,21.125 12.75,20.789 12.75,20.375L12.75,12.75L20.375,12.75C20.789,12.75 21.125,12.414 21.125,12C21.125,11.586 20.789,11.25 20.375,11.25\" />\n </IconBase>\n );\n}\n\n/** Minus (`oui_preference_seekbar_pro_minus`). */\nexport function IconRemove(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"M5.1522,12.5L18.8478,12.5C19.2078,12.5 19.5,12.276 19.5,12C19.5,11.724 19.2078,11.5 18.8478,11.5L5.1522,11.5C4.7922,11.5 4.5,11.724 4.5,12C4.5,12.276 4.7922,12.5 5.1522,12.5\" />\n </IconBase>\n );\n}\n\n/** Back chevron. */\nexport function IconBack(props: IconProps) {\n return (\n <IconBase {...props}>\n <path\n d=\"M15.5 4.5 L7.5 12 L15.5 19.5\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </IconBase>\n );\n}\n\n/** Magnifier. */\nexport function IconSearch(props: IconProps) {\n return (\n <IconBase {...props}>\n <path\n d=\"M10.5 4a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm-8 6.5a8 8 0 1 1 14.23 4.98l4.4 4.4a1 1 0 0 1-1.42 1.4l-4.4-4.38A8 8 0 0 1 2.5 10.5Z\"\n />\n </IconBase>\n );\n}\n\n/** Checkmark. */\nexport function IconCheck(props: IconProps) {\n return (\n <IconBase {...props}>\n <path\n d=\"M9.55 17.6 4 12.05l1.4-1.4 4.15 4.15L18.6 5.85 20 7.25 9.55 17.6Z\"\n />\n </IconBase>\n );\n}\n\n/** Vertical ellipsis (overflow menu). */\nexport function IconMore(props: IconProps) {\n return (\n <IconBase {...props}>\n <circle cx=\"12\" cy=\"5\" r=\"1.8\" />\n <circle cx=\"12\" cy=\"12\" r=\"1.8\" />\n <circle cx=\"12\" cy=\"19\" r=\"1.8\" />\n </IconBase>\n );\n}\n\n/** Settings gear. */\nexport function IconSettings(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"M19.14 12.94a7.07 7.07 0 0 0 0-1.88l2.03-1.58a.5.5 0 0 0 .12-.64l-1.92-3.32a.5.5 0 0 0-.61-.22l-2.39.96a7.2 7.2 0 0 0-1.63-.94l-.36-2.54a.5.5 0 0 0-.5-.42h-3.84a.5.5 0 0 0-.5.42l-.36 2.54c-.58.24-1.13.55-1.63.94l-2.39-.96a.5.5 0 0 0-.61.22L2.67 8.84a.5.5 0 0 0 .12.64l2.03 1.58a7.07 7.07 0 0 0 0 1.88l-2.03 1.58a.5.5 0 0 0-.12.64l1.92 3.32c.13.22.39.3.61.22l2.39-.96c.5.39 1.05.7 1.63.94l.36 2.54c.04.24.25.42.5.42h3.84c.25 0 .46-.18.5-.42l.36-2.54c.58-.24 1.13-.55 1.63-.94l2.39.96c.22.08.48 0 .61-.22l1.92-3.32a.5.5 0 0 0-.12-.64l-2.03-1.58ZM12 15.5A3.5 3.5 0 1 1 12 8.5a3.5 3.5 0 0 1 0 7Z\" />\n </IconBase>\n );\n}\n\n/** Home glyph for bottom navigation. */\nexport function IconHome(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"M12 3.2 3.5 10.4V20a1 1 0 0 0 1 1h4.75v-5.75h5.5V21h4.75a1 1 0 0 0 1-1v-9.6L12 3.2Z\" />\n </IconBase>\n );\n}\n\n/** Folder glyph for bottom navigation. */\nexport function IconFolder(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"M3.5 6.75A1.75 1.75 0 0 1 5.25 5h4.03c.46 0 .9.18 1.23.51l1.24 1.24h7A1.75 1.75 0 0 1 20.5 8.5v8.75A1.75 1.75 0 0 1 18.75 19H5.25a1.75 1.75 0 0 1-1.75-1.75V6.75Z\" />\n </IconBase>\n );\n}\n\n/** Person glyph for bottom navigation. */\nexport function IconPerson(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"M12 11.5a4 4 0 1 0 0-8 4 4 0 0 0 0 8Zm0 1.75c-4.06 0-7.25 2.35-7.25 5.25V20h14.5v-1.5c0-2.9-3.19-5.25-7.25-5.25Z\" />\n </IconBase>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,126 @@
1
+ import { jsx as e, jsxs as t } from "react/jsx-runtime";
2
+ //#region src/icons.tsx
3
+ function n({ size: t = 24, children: n, ...r }) {
4
+ return /* @__PURE__ */ e("svg", {
5
+ width: t,
6
+ height: t,
7
+ viewBox: "0 0 24 24",
8
+ fill: "currentColor",
9
+ "aria-hidden": "true",
10
+ focusable: "false",
11
+ ...r,
12
+ children: n
13
+ });
14
+ }
15
+ function r(t) {
16
+ return /* @__PURE__ */ e(n, {
17
+ ...t,
18
+ viewBox: "0 0 72 72",
19
+ children: /* @__PURE__ */ e("path", {
20
+ fillRule: "evenodd",
21
+ d: "M57,53.25C58.242,53.25 59.25,54.258 59.25,55.5C59.25,56.745 58.242,57.75 57,57.75L15,57.75C13.758,57.75 12.75,56.745 12.75,55.5C12.75,54.258 13.758,53.25 15,53.25ZM57,33.75C58.242,33.75 59.25,34.758 59.25,36C59.25,37.245 58.242,38.25 57,38.25L15,38.25C13.758,38.25 12.75,37.245 12.75,36C12.75,34.758 13.758,33.75 15,33.75ZM57,14.25C58.242,14.25 59.25,15.258 59.25,16.5C59.25,17.745 58.242,18.75 57,18.75L15,18.75C13.758,18.75 12.75,17.745 12.75,16.5C12.75,15.258 13.758,14.25 15,14.25Z"
22
+ })
23
+ });
24
+ }
25
+ function i(t) {
26
+ return /* @__PURE__ */ e(n, {
27
+ ...t,
28
+ children: /* @__PURE__ */ e("path", { d: "M12,2.75c5.109,0 9.25,4.142 9.25,9.251c0,5.108 -4.141,9.25 -9.25,9.25c-5.108,0 -9.25,-4.141 -9.25,-9.249c0,-5.105 4.142,-9.252 9.25,-9.252zM12,4.25c-4.28,0 -7.75,3.47 -7.75,7.751c0,4.281 3.471,7.75 7.75,7.75c4.281,0 7.75,-3.469 7.75,-7.749c0,-4.282 -3.469,-7.751 -7.75,-7.751zM13,10.137v6.872c0,0.414 -0.336,0.75 -0.75,0.75c-0.38,0 -0.694,-0.282 -0.743,-0.648L11.5,17.009v-5.365l-1.168,0.001c-0.38,0 -0.694,-0.282 -0.743,-0.648l-0.007,-0.102c0,-0.38 0.282,-0.693 0.648,-0.743l0.101,-0.007H13zM12.055,6.965c0.552,0 1,0.448 1,1c0,0.552 -0.448,1 -1,1c-0.552,0 -1,-0.448 -1,-1c0,-0.552 0.448,-1 1,-1z" })
29
+ });
30
+ }
31
+ function a(t) {
32
+ return /* @__PURE__ */ e(n, {
33
+ ...t,
34
+ children: /* @__PURE__ */ e("path", { d: "M13.06,11.9994L19.031,6.0304C19.324,5.7374 19.324,5.2634 19.031,4.9704C18.738,4.6774 18.262,4.6774 17.97,4.9704L11.999,10.9384L6.03,4.9704C5.737,4.6774 5.262,4.6774 4.969,4.9704C4.676,5.2634 4.676,5.7374 4.969,6.0304L10.939,11.9994L4.969,17.9704C4.676,18.2634 4.676,18.7374 4.969,19.0304C5.116,19.1774 5.307,19.2494 5.499,19.2494C5.692,19.2494 5.883,19.1774 6.03,19.0304L11.999,13.0614L17.97,19.0304C18.116,19.1774 18.308,19.2494 18.5,19.2494C18.692,19.2494 18.884,19.1774 19.031,19.0304C19.324,18.7374 19.324,18.2634 19.031,17.9704L13.06,11.9994Z" })
35
+ });
36
+ }
37
+ function o(t) {
38
+ return /* @__PURE__ */ e(n, {
39
+ ...t,
40
+ children: /* @__PURE__ */ e("path", {
41
+ fillRule: "evenodd",
42
+ d: "M20.375,11.25L12.75,11.25L12.75,3.625C12.75,3.211 12.414,2.875 12,2.875C11.586,2.875 11.25,3.211 11.25,3.625L11.25,11.25L3.625,11.25C3.211,11.25 2.875,11.586 2.875,12C2.875,12.414 3.211,12.75 3.625,12.75L11.25,12.75L11.25,20.375C11.25,20.789 11.586,21.125 12,21.125C12.414,21.125 12.75,20.789 12.75,20.375L12.75,12.75L20.375,12.75C20.789,12.75 21.125,12.414 21.125,12C21.125,11.586 20.789,11.25 20.375,11.25"
43
+ })
44
+ });
45
+ }
46
+ function s(t) {
47
+ return /* @__PURE__ */ e(n, {
48
+ ...t,
49
+ children: /* @__PURE__ */ e("path", { d: "M5.1522,12.5L18.8478,12.5C19.2078,12.5 19.5,12.276 19.5,12C19.5,11.724 19.2078,11.5 18.8478,11.5L5.1522,11.5C4.7922,11.5 4.5,11.724 4.5,12C4.5,12.276 4.7922,12.5 5.1522,12.5" })
50
+ });
51
+ }
52
+ function c(t) {
53
+ return /* @__PURE__ */ e(n, {
54
+ ...t,
55
+ children: /* @__PURE__ */ e("path", {
56
+ d: "M15.5 4.5 L7.5 12 L15.5 19.5",
57
+ fill: "none",
58
+ stroke: "currentColor",
59
+ strokeWidth: "2",
60
+ strokeLinecap: "round",
61
+ strokeLinejoin: "round"
62
+ })
63
+ });
64
+ }
65
+ function l(t) {
66
+ return /* @__PURE__ */ e(n, {
67
+ ...t,
68
+ children: /* @__PURE__ */ e("path", { d: "M10.5 4a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm-8 6.5a8 8 0 1 1 14.23 4.98l4.4 4.4a1 1 0 0 1-1.42 1.4l-4.4-4.38A8 8 0 0 1 2.5 10.5Z" })
69
+ });
70
+ }
71
+ function u(t) {
72
+ return /* @__PURE__ */ e(n, {
73
+ ...t,
74
+ children: /* @__PURE__ */ e("path", { d: "M9.55 17.6 4 12.05l1.4-1.4 4.15 4.15L18.6 5.85 20 7.25 9.55 17.6Z" })
75
+ });
76
+ }
77
+ function d(r) {
78
+ return /* @__PURE__ */ t(n, {
79
+ ...r,
80
+ children: [
81
+ /* @__PURE__ */ e("circle", {
82
+ cx: "12",
83
+ cy: "5",
84
+ r: "1.8"
85
+ }),
86
+ /* @__PURE__ */ e("circle", {
87
+ cx: "12",
88
+ cy: "12",
89
+ r: "1.8"
90
+ }),
91
+ /* @__PURE__ */ e("circle", {
92
+ cx: "12",
93
+ cy: "19",
94
+ r: "1.8"
95
+ })
96
+ ]
97
+ });
98
+ }
99
+ function f(t) {
100
+ return /* @__PURE__ */ e(n, {
101
+ ...t,
102
+ children: /* @__PURE__ */ e("path", { d: "M19.14 12.94a7.07 7.07 0 0 0 0-1.88l2.03-1.58a.5.5 0 0 0 .12-.64l-1.92-3.32a.5.5 0 0 0-.61-.22l-2.39.96a7.2 7.2 0 0 0-1.63-.94l-.36-2.54a.5.5 0 0 0-.5-.42h-3.84a.5.5 0 0 0-.5.42l-.36 2.54c-.58.24-1.13.55-1.63.94l-2.39-.96a.5.5 0 0 0-.61.22L2.67 8.84a.5.5 0 0 0 .12.64l2.03 1.58a7.07 7.07 0 0 0 0 1.88l-2.03 1.58a.5.5 0 0 0-.12.64l1.92 3.32c.13.22.39.3.61.22l2.39-.96c.5.39 1.05.7 1.63.94l.36 2.54c.04.24.25.42.5.42h3.84c.25 0 .46-.18.5-.42l.36-2.54c.58-.24 1.13-.55 1.63-.94l2.39.96c.22.08.48 0 .61-.22l1.92-3.32a.5.5 0 0 0-.12-.64l-2.03-1.58ZM12 15.5A3.5 3.5 0 1 1 12 8.5a3.5 3.5 0 0 1 0 7Z" })
103
+ });
104
+ }
105
+ function p(t) {
106
+ return /* @__PURE__ */ e(n, {
107
+ ...t,
108
+ children: /* @__PURE__ */ e("path", { d: "M12 3.2 3.5 10.4V20a1 1 0 0 0 1 1h4.75v-5.75h5.5V21h4.75a1 1 0 0 0 1-1v-9.6L12 3.2Z" })
109
+ });
110
+ }
111
+ function m(t) {
112
+ return /* @__PURE__ */ e(n, {
113
+ ...t,
114
+ children: /* @__PURE__ */ e("path", { d: "M3.5 6.75A1.75 1.75 0 0 1 5.25 5h4.03c.46 0 .9.18 1.23.51l1.24 1.24h7A1.75 1.75 0 0 1 20.5 8.5v8.75A1.75 1.75 0 0 1 18.75 19H5.25a1.75 1.75 0 0 1-1.75-1.75V6.75Z" })
115
+ });
116
+ }
117
+ function h(t) {
118
+ return /* @__PURE__ */ e(n, {
119
+ ...t,
120
+ children: /* @__PURE__ */ e("path", { d: "M12 11.5a4 4 0 1 0 0-8 4 4 0 0 0 0 8Zm0 1.75c-4.06 0-7.25 2.35-7.25 5.25V20h14.5v-1.5c0-2.9-3.19-5.25-7.25-5.25Z" })
121
+ });
122
+ }
123
+ //#endregion
124
+ export { u as a, p as c, h as d, s as f, n as i, r as l, f as m, i as n, a as o, l as p, c as r, m as s, o as t, d as u };
125
+
126
+ //# sourceMappingURL=icons-DQRCVyKi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icons-DQRCVyKi.js","names":[],"sources":["../src/icons.tsx"],"sourcesContent":["/**\n * Icons ported from the vector drawables of OneUIProject/oneui-design:\n * drawable/oui_ic_ab_drawer.xml\n * drawable/oui_ic_ab_app_info.xml\n * drawable/oui_preference_tipscard_close.xml\n * drawable/oui_preference_seekbar_pro_plus.xml / _minus.xml\n * plus a few small companion glyphs drawn to match.\n */\nimport type { ReactNode, SVGProps } from 'react';\n\nexport type IconProps = SVGProps<SVGSVGElement> & { size?: number };\n\n/**\n * Shared SVG shell used by the hand-written companion icons and by the\n * generated 883-icon catalog (`@oneuiproject/react/icons`).\n */\nexport function IconBase({\n size = 24,\n children,\n ...props\n}: IconProps & { children: ReactNode; viewBox?: string }) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n focusable=\"false\"\n {...props}\n >\n {children}\n </svg>\n );\n}\n\n/** Hamburger icon (`oui_ic_ab_drawer`, original viewport 72). */\nexport function IconMenu(props: IconProps) {\n return (\n <IconBase {...props} viewBox=\"0 0 72 72\">\n <path\n fillRule=\"evenodd\"\n d=\"M57,53.25C58.242,53.25 59.25,54.258 59.25,55.5C59.25,56.745 58.242,57.75 57,57.75L15,57.75C13.758,57.75 12.75,56.745 12.75,55.5C12.75,54.258 13.758,53.25 15,53.25ZM57,33.75C58.242,33.75 59.25,34.758 59.25,36C59.25,37.245 58.242,38.25 57,38.25L15,38.25C13.758,38.25 12.75,37.245 12.75,36C12.75,34.758 13.758,33.75 15,33.75ZM57,14.25C58.242,14.25 59.25,15.258 59.25,16.5C59.25,17.745 58.242,18.75 57,18.75L15,18.75C13.758,18.75 12.75,17.745 12.75,16.5C12.75,15.258 13.758,14.25 15,14.25Z\"\n />\n </IconBase>\n );\n}\n\n/** App info icon (`oui_ic_ab_app_info`). */\nexport function IconAppInfo(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"M12,2.75c5.109,0 9.25,4.142 9.25,9.251c0,5.108 -4.141,9.25 -9.25,9.25c-5.108,0 -9.25,-4.141 -9.25,-9.249c0,-5.105 4.142,-9.252 9.25,-9.252zM12,4.25c-4.28,0 -7.75,3.47 -7.75,7.751c0,4.281 3.471,7.75 7.75,7.75c4.281,0 7.75,-3.469 7.75,-7.749c0,-4.282 -3.469,-7.751 -7.75,-7.751zM13,10.137v6.872c0,0.414 -0.336,0.75 -0.75,0.75c-0.38,0 -0.694,-0.282 -0.743,-0.648L11.5,17.009v-5.365l-1.168,0.001c-0.38,0 -0.694,-0.282 -0.743,-0.648l-0.007,-0.102c0,-0.38 0.282,-0.693 0.648,-0.743l0.101,-0.007H13zM12.055,6.965c0.552,0 1,0.448 1,1c0,0.552 -0.448,1 -1,1c-0.552,0 -1,-0.448 -1,-1c0,-0.552 0.448,-1 1,-1z\" />\n </IconBase>\n );\n}\n\n/** Close / dismiss (`oui_preference_tipscard_close`). */\nexport function IconClose(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"M13.06,11.9994L19.031,6.0304C19.324,5.7374 19.324,5.2634 19.031,4.9704C18.738,4.6774 18.262,4.6774 17.97,4.9704L11.999,10.9384L6.03,4.9704C5.737,4.6774 5.262,4.6774 4.969,4.9704C4.676,5.2634 4.676,5.7374 4.969,6.0304L10.939,11.9994L4.969,17.9704C4.676,18.2634 4.676,18.7374 4.969,19.0304C5.116,19.1774 5.307,19.2494 5.499,19.2494C5.692,19.2494 5.883,19.1774 6.03,19.0304L11.999,13.0614L17.97,19.0304C18.116,19.1774 18.308,19.2494 18.5,19.2494C18.692,19.2494 18.884,19.1774 19.031,19.0304C19.324,18.7374 19.324,18.2634 19.031,17.9704L13.06,11.9994Z\" />\n </IconBase>\n );\n}\n\n/** Plus (`oui_preference_seekbar_pro_plus`). */\nexport function IconAdd(props: IconProps) {\n return (\n <IconBase {...props}>\n <path\n fillRule=\"evenodd\"\n d=\"M20.375,11.25L12.75,11.25L12.75,3.625C12.75,3.211 12.414,2.875 12,2.875C11.586,2.875 11.25,3.211 11.25,3.625L11.25,11.25L3.625,11.25C3.211,11.25 2.875,11.586 2.875,12C2.875,12.414 3.211,12.75 3.625,12.75L11.25,12.75L11.25,20.375C11.25,20.789 11.586,21.125 12,21.125C12.414,21.125 12.75,20.789 12.75,20.375L12.75,12.75L20.375,12.75C20.789,12.75 21.125,12.414 21.125,12C21.125,11.586 20.789,11.25 20.375,11.25\" />\n </IconBase>\n );\n}\n\n/** Minus (`oui_preference_seekbar_pro_minus`). */\nexport function IconRemove(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"M5.1522,12.5L18.8478,12.5C19.2078,12.5 19.5,12.276 19.5,12C19.5,11.724 19.2078,11.5 18.8478,11.5L5.1522,11.5C4.7922,11.5 4.5,11.724 4.5,12C4.5,12.276 4.7922,12.5 5.1522,12.5\" />\n </IconBase>\n );\n}\n\n/** Back chevron. */\nexport function IconBack(props: IconProps) {\n return (\n <IconBase {...props}>\n <path\n d=\"M15.5 4.5 L7.5 12 L15.5 19.5\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </IconBase>\n );\n}\n\n/** Magnifier. */\nexport function IconSearch(props: IconProps) {\n return (\n <IconBase {...props}>\n <path\n d=\"M10.5 4a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm-8 6.5a8 8 0 1 1 14.23 4.98l4.4 4.4a1 1 0 0 1-1.42 1.4l-4.4-4.38A8 8 0 0 1 2.5 10.5Z\"\n />\n </IconBase>\n );\n}\n\n/** Checkmark. */\nexport function IconCheck(props: IconProps) {\n return (\n <IconBase {...props}>\n <path\n d=\"M9.55 17.6 4 12.05l1.4-1.4 4.15 4.15L18.6 5.85 20 7.25 9.55 17.6Z\"\n />\n </IconBase>\n );\n}\n\n/** Vertical ellipsis (overflow menu). */\nexport function IconMore(props: IconProps) {\n return (\n <IconBase {...props}>\n <circle cx=\"12\" cy=\"5\" r=\"1.8\" />\n <circle cx=\"12\" cy=\"12\" r=\"1.8\" />\n <circle cx=\"12\" cy=\"19\" r=\"1.8\" />\n </IconBase>\n );\n}\n\n/** Settings gear. */\nexport function IconSettings(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"M19.14 12.94a7.07 7.07 0 0 0 0-1.88l2.03-1.58a.5.5 0 0 0 .12-.64l-1.92-3.32a.5.5 0 0 0-.61-.22l-2.39.96a7.2 7.2 0 0 0-1.63-.94l-.36-2.54a.5.5 0 0 0-.5-.42h-3.84a.5.5 0 0 0-.5.42l-.36 2.54c-.58.24-1.13.55-1.63.94l-2.39-.96a.5.5 0 0 0-.61.22L2.67 8.84a.5.5 0 0 0 .12.64l2.03 1.58a7.07 7.07 0 0 0 0 1.88l-2.03 1.58a.5.5 0 0 0-.12.64l1.92 3.32c.13.22.39.3.61.22l2.39-.96c.5.39 1.05.7 1.63.94l.36 2.54c.04.24.25.42.5.42h3.84c.25 0 .46-.18.5-.42l.36-2.54c.58-.24 1.13-.55 1.63-.94l2.39.96c.22.08.48 0 .61-.22l1.92-3.32a.5.5 0 0 0-.12-.64l-2.03-1.58ZM12 15.5A3.5 3.5 0 1 1 12 8.5a3.5 3.5 0 0 1 0 7Z\" />\n </IconBase>\n );\n}\n\n/** Home glyph for bottom navigation. */\nexport function IconHome(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"M12 3.2 3.5 10.4V20a1 1 0 0 0 1 1h4.75v-5.75h5.5V21h4.75a1 1 0 0 0 1-1v-9.6L12 3.2Z\" />\n </IconBase>\n );\n}\n\n/** Folder glyph for bottom navigation. */\nexport function IconFolder(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"M3.5 6.75A1.75 1.75 0 0 1 5.25 5h4.03c.46 0 .9.18 1.23.51l1.24 1.24h7A1.75 1.75 0 0 1 20.5 8.5v8.75A1.75 1.75 0 0 1 18.75 19H5.25a1.75 1.75 0 0 1-1.75-1.75V6.75Z\" />\n </IconBase>\n );\n}\n\n/** Person glyph for bottom navigation. */\nexport function IconPerson(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"M12 11.5a4 4 0 1 0 0-8 4 4 0 0 0 0 8Zm0 1.75c-4.06 0-7.25 2.35-7.25 5.25V20h14.5v-1.5c0-2.9-3.19-5.25-7.25-5.25Z\" />\n </IconBase>\n );\n}\n"],"mappings":";;AAgBA,SAAgB,EAAS,EACvB,UAAO,IACP,aACA,GAAG,KACqD;CACxD,OACE,kBAAC,OAAD;EACE,OAAO;EACP,QAAQ;EACR,SAAQ;EACR,MAAK;EACL,eAAY;EACZ,WAAU;EACV,GAAI;EAEH;CACE,CAAA;AAET;AAGA,SAAgB,EAAS,GAAkB;CACzC,OACE,kBAAC,GAAD;EAAU,GAAI;EAAO,SAAQ;EAC3B,UAAA,kBAAC,QAAD;GACE,UAAS;GACT,GAAE;EACH,CAAA;CACO,CAAA;AAEd;AAGA,SAAgB,EAAY,GAAkB;CAC5C,OACE,kBAAC,GAAD;EAAU,GAAI;EACZ,UAAA,kBAAC,QAAD,EAAM,GAAE,ulBAAwlB,CAAA;CACxlB,CAAA;AAEd;AAGA,SAAgB,EAAU,GAAkB;CAC1C,OACE,kBAAC,GAAD;EAAU,GAAI;EACZ,UAAA,kBAAC,QAAD,EAAM,GAAE,siBAAuiB,CAAA;CACviB,CAAA;AAEd;AAGA,SAAgB,EAAQ,GAAkB;CACxC,OACE,kBAAC,GAAD;EAAU,GAAI;EACZ,UAAA,kBAAC,QAAD;GACE,UAAS;GACT,GAAE;EAA2Z,CAAA;CACvZ,CAAA;AAEd;AAGA,SAAgB,EAAW,GAAkB;CAC3C,OACE,kBAAC,GAAD;EAAU,GAAI;EACZ,UAAA,kBAAC,QAAD,EAAM,GAAE,gLAAiL,CAAA;CACjL,CAAA;AAEd;AAGA,SAAgB,EAAS,GAAkB;CACzC,OACE,kBAAC,GAAD;EAAU,GAAI;EACZ,UAAA,kBAAC,QAAD;GACE,GAAE;GACF,MAAK;GACL,QAAO;GACP,aAAY;GACZ,eAAc;GACd,gBAAe;EAChB,CAAA;CACO,CAAA;AAEd;AAGA,SAAgB,EAAW,GAAkB;CAC3C,OACE,kBAAC,GAAD;EAAU,GAAI;EACZ,UAAA,kBAAC,QAAD,EACE,GAAE,sIACH,CAAA;CACO,CAAA;AAEd;AAGA,SAAgB,EAAU,GAAkB;CAC1C,OACE,kBAAC,GAAD;EAAU,GAAI;EACZ,UAAA,kBAAC,QAAD,EACE,GAAE,oEACH,CAAA;CACO,CAAA;AAEd;AAGA,SAAgB,EAAS,GAAkB;CACzC,OACE,kBAAC,GAAD;EAAU,GAAI;EAAd,UAAA;GACE,kBAAC,UAAD;IAAQ,IAAG;IAAK,IAAG;IAAI,GAAE;GAAO,CAAA;GAChC,kBAAC,UAAD;IAAQ,IAAG;IAAK,IAAG;IAAK,GAAE;GAAO,CAAA;GACjC,kBAAC,UAAD;IAAQ,IAAG;IAAK,IAAG;IAAK,GAAE;GAAO,CAAA;EACzB;;AAEd;AAGA,SAAgB,EAAa,GAAkB;CAC7C,OACE,kBAAC,GAAD;EAAU,GAAI;EACZ,UAAA,kBAAC,QAAD,EAAM,GAAE,klBAAmlB,CAAA;CACnlB,CAAA;AAEd;AAGA,SAAgB,EAAS,GAAkB;CACzC,OACE,kBAAC,GAAD;EAAU,GAAI;EACZ,UAAA,kBAAC,QAAD,EAAM,GAAE,sFAAuF,CAAA;CACvF,CAAA;AAEd;AAGA,SAAgB,EAAW,GAAkB;CAC3C,OACE,kBAAC,GAAD;EAAU,GAAI;EACZ,UAAA,kBAAC,QAAD,EAAM,GAAE,oKAAqK,CAAA;CACrK,CAAA;AAEd;AAGA,SAAgB,EAAW,GAAkB;CAC3C,OACE,kBAAC,GAAD;EAAU,GAAI;EACZ,UAAA,kBAAC,QAAD,EAAM,GAAE,mHAAoH,CAAA;CACpH,CAAA;AAEd"}