@sakaniui/react 0.8.9 → 0.8.10

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.
@@ -1,8 +1,7 @@
1
1
  {
2
- "$schema": "https://www.sakaniui.com/manifest.schema.json",
3
- "schemaVersion": 3,
2
+ "schemaVersion": 4,
4
3
  "name": "@sakaniui/react",
5
- "version": "0.8.9",
4
+ "version": "0.8.10",
6
5
  "description": "Machine-readable contract of the SakaniUI React library, generated from its TypeScript source.",
7
6
  "docs": "https://www.sakaniui.com",
8
7
  "guide": "https://www.sakaniui.com/llms-full.txt",
@@ -24,7 +23,7 @@
24
23
  "@sakaniui/react/icons": "Tabler icons: IconName and IconNameFilled, one module each (5184 outline, 1054 filled)."
25
24
  },
26
25
  "conventions": {
27
- "version": "This manifest describes @sakaniui/react@0.8.9. Each component has `since`, the first release that contained it: if the project has an older version installed, a component or prop that is newer than that does not exist there.",
26
+ "version": "This manifest describes @sakaniui/react@0.8.10. Each component has `since`, the first release that contained it; a prop added later has its own `since`, and a value added later is listed in the prop's `valuesSince`. If the project has an older version installed, anything newer than that does not exist there.",
28
27
  "acceptsNativeProps": "Components forward native HTML attributes (className, style, aria-*, event handlers) to their root element unless a prop says otherwise; only the props that are specific to SakaniUI are listed here.",
29
28
  "accessibleName": "When `contract.requiresAccessibleName` is true, a required prop (aria-label, aria-labelledby or an alt text) is the only thing that names the control or image. Do not omit it.",
30
29
  "tokens": "Use only the token names listed under `tokens`. Colour tokens follow the theme (the `.dark` class flips them); do not hard-code colours.",
@@ -32,6 +31,167 @@
32
31
  "examples": "Each component has `example`: its imports and the element with every required prop filled in, type-checked against this build. Start from it.",
33
32
  "literals": "Prop `values` keep their real type: a number is a number (columns: 2), a string is a string (\"md\")."
34
33
  },
34
+ "nativeAttributes": [
35
+ "about",
36
+ "accept",
37
+ "acceptCharset",
38
+ "accessKey",
39
+ "action",
40
+ "allowFullScreen",
41
+ "allowTransparency",
42
+ "alt",
43
+ "as",
44
+ "async",
45
+ "autoCapitalize",
46
+ "autoComplete",
47
+ "autoCorrect",
48
+ "autoFocus",
49
+ "autoPlay",
50
+ "autoSave",
51
+ "capture",
52
+ "cellPadding",
53
+ "cellSpacing",
54
+ "challenge",
55
+ "charSet",
56
+ "checked",
57
+ "children",
58
+ "cite",
59
+ "classID",
60
+ "className",
61
+ "colSpan",
62
+ "color",
63
+ "cols",
64
+ "content",
65
+ "contentEditable",
66
+ "contextMenu",
67
+ "controls",
68
+ "coords",
69
+ "crossOrigin",
70
+ "dangerouslySetInnerHTML",
71
+ "data",
72
+ "datatype",
73
+ "dateTime",
74
+ "default",
75
+ "defaultChecked",
76
+ "defaultValue",
77
+ "defer",
78
+ "dir",
79
+ "disabled",
80
+ "download",
81
+ "draggable",
82
+ "encType",
83
+ "enterKeyHint",
84
+ "exportparts",
85
+ "form",
86
+ "formAction",
87
+ "formEncType",
88
+ "formMethod",
89
+ "formNoValidate",
90
+ "formTarget",
91
+ "frameBorder",
92
+ "headers",
93
+ "height",
94
+ "hidden",
95
+ "high",
96
+ "href",
97
+ "hrefLang",
98
+ "htmlFor",
99
+ "httpEquiv",
100
+ "id",
101
+ "inert",
102
+ "inlist",
103
+ "inputMode",
104
+ "integrity",
105
+ "is",
106
+ "itemID",
107
+ "itemProp",
108
+ "itemRef",
109
+ "itemScope",
110
+ "itemType",
111
+ "keyParams",
112
+ "keyType",
113
+ "kind",
114
+ "label",
115
+ "lang",
116
+ "list",
117
+ "loop",
118
+ "low",
119
+ "manifest",
120
+ "marginHeight",
121
+ "marginWidth",
122
+ "max",
123
+ "maxLength",
124
+ "media",
125
+ "mediaGroup",
126
+ "method",
127
+ "min",
128
+ "minLength",
129
+ "multiple",
130
+ "muted",
131
+ "name",
132
+ "noValidate",
133
+ "nonce",
134
+ "open",
135
+ "optimum",
136
+ "part",
137
+ "pattern",
138
+ "placeholder",
139
+ "playsInline",
140
+ "popover",
141
+ "popoverTarget",
142
+ "popoverTargetAction",
143
+ "poster",
144
+ "prefix",
145
+ "preload",
146
+ "property",
147
+ "radioGroup",
148
+ "readOnly",
149
+ "rel",
150
+ "required",
151
+ "resource",
152
+ "results",
153
+ "rev",
154
+ "reversed",
155
+ "role",
156
+ "rowSpan",
157
+ "rows",
158
+ "sandbox",
159
+ "scope",
160
+ "scoped",
161
+ "scrolling",
162
+ "seamless",
163
+ "security",
164
+ "selected",
165
+ "shape",
166
+ "size",
167
+ "sizes",
168
+ "slot",
169
+ "span",
170
+ "spellCheck",
171
+ "src",
172
+ "srcDoc",
173
+ "srcLang",
174
+ "srcSet",
175
+ "start",
176
+ "step",
177
+ "style",
178
+ "summary",
179
+ "suppressContentEditableWarning",
180
+ "suppressHydrationWarning",
181
+ "tabIndex",
182
+ "target",
183
+ "title",
184
+ "translate",
185
+ "type",
186
+ "typeof",
187
+ "unselectable",
188
+ "useMap",
189
+ "value",
190
+ "vocab",
191
+ "width",
192
+ "wmode",
193
+ "wrap"
194
+ ],
35
195
  "tokens": {
36
196
  "count": 231,
37
197
  "groups": {
@@ -1576,7 +1736,8 @@
1576
1736
  {
1577
1737
  "name": "leadingAction",
1578
1738
  "type": "ReactNode",
1579
- "required": false
1739
+ "required": false,
1740
+ "since": "0.3.16"
1580
1741
  },
1581
1742
  {
1582
1743
  "name": "interactive",
@@ -2333,7 +2494,7 @@
2333
2494
  "requiredProps": [],
2334
2495
  "requiresAccessibleName": false
2335
2496
  },
2336
- "since": "0.3.0",
2497
+ "since": "0.8.6",
2337
2498
  "example": "import { FacebookIcon } from '@sakaniui/react';\n\n<FacebookIcon />"
2338
2499
  },
2339
2500
  {
@@ -2601,7 +2762,7 @@
2601
2762
  "requiredProps": [],
2602
2763
  "requiresAccessibleName": false
2603
2764
  },
2604
- "since": "0.3.0",
2765
+ "since": "0.8.6",
2605
2766
  "example": "import { GithubIcon } from '@sakaniui/react';\n\n<GithubIcon />"
2606
2767
  },
2607
2768
  {
@@ -2672,7 +2833,7 @@
2672
2833
  "requiresAccessibleName": false
2673
2834
  },
2674
2835
  "since": "0.3.21",
2675
- "example": "import { HoverGroup } from '@sakaniui/react';\n\n<HoverGroup />"
2836
+ "example": "import { HoverGroup } from '@sakaniui/react';\n\n<HoverGroup>Label</HoverGroup>"
2676
2837
  },
2677
2838
  {
2678
2839
  "name": "IconButton",
@@ -2841,7 +3002,7 @@
2841
3002
  "requiredProps": [],
2842
3003
  "requiresAccessibleName": false
2843
3004
  },
2844
- "since": "0.3.0",
3005
+ "since": "0.8.6",
2845
3006
  "example": "import { InstagramIcon } from '@sakaniui/react';\n\n<InstagramIcon />"
2846
3007
  },
2847
3008
  {
@@ -3095,7 +3256,7 @@
3095
3256
  "requiredProps": [],
3096
3257
  "requiresAccessibleName": false
3097
3258
  },
3098
- "since": "0.3.0",
3259
+ "since": "0.8.6",
3099
3260
  "example": "import { LinkedinIcon } from '@sakaniui/react';\n\n<LinkedinIcon />"
3100
3261
  },
3101
3262
  {
@@ -3131,8 +3292,8 @@
3131
3292
  ],
3132
3293
  "requiresAccessibleName": false
3133
3294
  },
3134
- "since": "0.4.0",
3135
- "example": "import { LiquidBackdrop } from '@sakaniui/react';\n\n<LiquidBackdrop />"
3295
+ "since": "0.4.3",
3296
+ "example": "import { LiquidBackdrop } from '@sakaniui/react';\n\n<LiquidBackdrop src=\"/images/example.jpg\" />"
3136
3297
  },
3137
3298
  {
3138
3299
  "name": "LiquidGlass",
@@ -3164,7 +3325,8 @@
3164
3325
  "clear"
3165
3326
  ],
3166
3327
  "default": "auto",
3167
- "description": "How much of the backdrop shows through. Default 'auto' (follows `variant`)."
3328
+ "description": "How much of the backdrop shows through. Default 'auto' (follows `variant`).",
3329
+ "since": "0.4.1"
3168
3330
  },
3169
3331
  {
3170
3332
  "name": "radius",
@@ -3188,21 +3350,24 @@
3188
3350
  "name": "effect",
3189
3351
  "type": "Partial<LiquidGlassEffect>",
3190
3352
  "required": false,
3191
- "description": "Defaults come from the variant's --liquid-* tokens."
3353
+ "description": "Defaults come from the variant's --liquid-* tokens.",
3354
+ "since": "0.4.3"
3192
3355
  },
3193
3356
  {
3194
3357
  "name": "source",
3195
3358
  "type": "boolean",
3196
3359
  "required": false,
3197
3360
  "default": true,
3198
- "description": "Inside a <LiquidBackdrop>: true (default) refracts the backdrop image; false bends whatever is painted below instead (UI under a slider knob)."
3361
+ "description": "Inside a <LiquidBackdrop>: true (default) refracts the backdrop image; false bends whatever is painted below instead (UI under a slider knob).",
3362
+ "since": "0.4.3"
3199
3363
  },
3200
3364
  {
3201
3365
  "name": "bake",
3202
3366
  "type": "boolean | \"auto\"",
3203
3367
  "required": false,
3204
3368
  "default": "auto",
3205
- "description": "'auto' (default): inside a LiquidBackdrop, lenses over 300×300 bake their glass once (fast; for surfaces that stay put). false: always live (a big lens that moves)."
3369
+ "description": "'auto' (default): inside a LiquidBackdrop, lenses over 300×300 bake their glass once (fast; for surfaces that stay put). false: always live (a big lens that moves).",
3370
+ "since": "0.4.3"
3206
3371
  },
3207
3372
  {
3208
3373
  "name": "interactive",
@@ -5219,7 +5384,8 @@
5219
5384
  "name": "expanded",
5220
5385
  "type": "boolean",
5221
5386
  "required": false,
5222
- "description": "Only matters when `hasSubmenu`. Not a navigation disclosure like `active` — the caller owns the open/closed state and toggles this alongside conditionally rendering the children."
5387
+ "description": "Only matters when `hasSubmenu`. Not a navigation disclosure like `active` — the caller owns the open/closed state and toggles this alongside conditionally rendering the children.",
5388
+ "since": "0.3.27"
5223
5389
  },
5224
5390
  {
5225
5391
  "name": "onClick",
@@ -5859,13 +6025,15 @@
5859
6025
  "type": "number",
5860
6026
  "required": false,
5861
6027
  "default": 0,
5862
- "description": "ms to wait before this step's state change plays (the stepper uses it to sequence a multi-step move)."
6028
+ "description": "ms to wait before this step's state change plays (the stepper uses it to sequence a multi-step move).",
6029
+ "since": "0.4.4"
5863
6030
  },
5864
6031
  {
5865
6032
  "name": "fresh",
5866
6033
  "type": "boolean",
5867
6034
  "required": false,
5868
- "description": "True while this step has just changed state: plays the check-draw / arrival ripple."
6035
+ "description": "True while this step has just changed state: plays the check-draw / arrival ripple.",
6036
+ "since": "0.4.4"
5869
6037
  }
5870
6038
  ],
5871
6039
  "contract": {
@@ -6064,7 +6232,8 @@
6064
6232
  "name": "description",
6065
6233
  "type": "ReactNode",
6066
6234
  "required": false,
6067
- "description": "Help text under the label, left-aligned with it (not with the track), e.g. the current state of a controlled switch. Same pattern as Checkbox's description."
6235
+ "description": "Help text under the label, left-aligned with it (not with the track), e.g. the current state of a controlled switch. Same pattern as Checkbox's description.",
6236
+ "since": "0.3.28"
6068
6237
  },
6069
6238
  {
6070
6239
  "name": "variant",
@@ -6075,7 +6244,8 @@
6075
6244
  "stretch"
6076
6245
  ],
6077
6246
  "default": "default",
6078
- "description": "`stretch` adds a liquid motion: the thumb stretches as it travels, then settles to a circle. `default` is the plain switch."
6247
+ "description": "`stretch` adds a liquid motion: the thumb stretches as it travels, then settles to a circle. `default` is the plain switch.",
6248
+ "since": "0.8.4"
6079
6249
  }
6080
6250
  ],
6081
6251
  "contract": {
@@ -6149,7 +6319,8 @@
6149
6319
  "stacked",
6150
6320
  "auto"
6151
6321
  ],
6152
- "default": "auto"
6322
+ "default": "auto",
6323
+ "since": "0.3.4"
6153
6324
  },
6154
6325
  {
6155
6326
  "name": "className",
@@ -6796,7 +6967,7 @@
6796
6967
  "requiredProps": [],
6797
6968
  "requiresAccessibleName": false
6798
6969
  },
6799
- "since": "0.3.0",
6970
+ "since": "0.8.6",
6800
6971
  "example": "import { XIcon } from '@sakaniui/react';\n\n<XIcon />"
6801
6972
  },
6802
6973
  {
@@ -7223,7 +7394,8 @@
7223
7394
  "name": "fillPlaceholders",
7224
7395
  "type": "boolean",
7225
7396
  "required": false,
7226
- "description": "When the block is stretched taller than its real content (e.g. embedded in a fixed-height demo frame), extends the leads table with faint placeholder row dividers down to the bottom instead of leaving blank canvas below the footer. No-op at the block's natural height."
7397
+ "description": "When the block is stretched taller than its real content (e.g. embedded in a fixed-height demo frame), extends the leads table with faint placeholder row dividers down to the bottom instead of leaving blank canvas below the footer. No-op at the block's natural height.",
7398
+ "since": "0.3.3"
7227
7399
  }
7228
7400
  ],
7229
7401
  "contract": {
@@ -7434,7 +7606,8 @@
7434
7606
  "name": "fillPlaceholders",
7435
7607
  "type": "boolean",
7436
7608
  "required": false,
7437
- "description": "When the block is stretched taller than its real content (e.g. embedded in a fixed-height demo frame), extends the table with faint placeholder row dividers down to the bottom instead of leaving blank canvas below the footer. No-op at the block's natural height."
7609
+ "description": "When the block is stretched taller than its real content (e.g. embedded in a fixed-height demo frame), extends the table with faint placeholder row dividers down to the bottom instead of leaving blank canvas below the footer. No-op at the block's natural height.",
7610
+ "since": "0.3.3"
7438
7611
  }
7439
7612
  ],
7440
7613
  "contract": {
@@ -7873,7 +8046,8 @@
7873
8046
  "name": "fillPlaceholders",
7874
8047
  "type": "boolean",
7875
8048
  "required": false,
7876
- "description": "When the board is stretched taller than its real content (e.g. embedded in a fixed-height demo frame), stretches every column to equal height and caps off its real cards with a dashed placeholder slot down to the bottom instead of leaving blank canvas. No-op at the board's natural height."
8049
+ "description": "When the board is stretched taller than its real content (e.g. embedded in a fixed-height demo frame), stretches every column to equal height and caps off its real cards with a dashed placeholder slot down to the bottom instead of leaving blank canvas. No-op at the board's natural height.",
8050
+ "since": "0.3.3"
7877
8051
  }
7878
8052
  ],
7879
8053
  "contract": {
@@ -8825,32 +8999,38 @@
8825
8999
  {
8826
9000
  "name": "DEFAULT_CHECKOUT_STEPS",
8827
9001
  "kind": "constant",
8828
- "import": "@sakaniui/react"
9002
+ "import": "@sakaniui/react",
9003
+ "since": "0.3.0"
8829
9004
  },
8830
9005
  {
8831
9006
  "name": "getContrastColor",
8832
9007
  "kind": "helper",
8833
- "import": "@sakaniui/react"
9008
+ "import": "@sakaniui/react",
9009
+ "since": "0.3.0"
8834
9010
  },
8835
9011
  {
8836
9012
  "name": "iconStrokeWidth",
8837
9013
  "kind": "helper",
8838
- "import": "@sakaniui/react"
9014
+ "import": "@sakaniui/react",
9015
+ "since": "0.3.0"
8839
9016
  },
8840
9017
  {
8841
9018
  "name": "syncLiquidBackdrop",
8842
9019
  "kind": "helper",
8843
- "import": "@sakaniui/react"
9020
+ "import": "@sakaniui/react",
9021
+ "since": "0.4.3"
8844
9022
  },
8845
9023
  {
8846
9024
  "name": "useHoverHighlight",
8847
9025
  "kind": "hook",
8848
- "import": "@sakaniui/react"
9026
+ "import": "@sakaniui/react",
9027
+ "since": "0.3.21"
8849
9028
  },
8850
9029
  {
8851
9030
  "name": "useLiquidGlass",
8852
9031
  "kind": "hook",
8853
- "import": "@sakaniui/react"
9032
+ "import": "@sakaniui/react",
9033
+ "since": "0.4.0"
8854
9034
  }
8855
9035
  ]
8856
9036
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sakaniui/react",
3
- "version": "0.8.9",
3
+ "version": "0.8.10",
4
4
  "description": "SakaniUI — token-driven React components and blocks with light & dark modes, plus built-in glass and Apple-style liquid glass surfaces.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -83,12 +83,11 @@
83
83
  "react-dom": "^19.0.0"
84
84
  },
85
85
  "dependencies": {
86
- "@fontsource-variable/geist": "^5.2.9",
87
- "geist": "^1.7.2",
88
86
  "recharts": "^3.9.2"
89
87
  },
90
88
  "devDependencies": {
91
89
  "@chromatic-com/storybook": "^5.2.1",
90
+ "@fontsource-variable/geist": "^5.2.9",
92
91
  "@storybook/addon-a11y": "^10.5.2",
93
92
  "@storybook/addon-docs": "^10.5.2",
94
93
  "@storybook/addon-mcp": "^0.7.0",
@@ -102,6 +101,7 @@
102
101
  "@vitest/browser-playwright": "^4.1.10",
103
102
  "@vitest/coverage-v8": "^4.1.10",
104
103
  "chromatic": "^18.0.1",
104
+ "geist": "^1.7.2",
105
105
  "oxlint": "^1.71.0",
106
106
  "playwright": "^1.61.1",
107
107
  "react": "^19.2.7",
@@ -113,6 +113,6 @@
113
113
  "vitest": "^4.1.10"
114
114
  },
115
115
  "bin": {
116
- "sakaniui-mcp": "./bin/sakaniui-mcp.mjs"
116
+ "sakaniui-mcp": "bin/sakaniui-mcp.mjs"
117
117
  }
118
118
  }