@fusion.dev/helix-headless 0.49.1 → 0.50.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.
@@ -19150,7 +19150,7 @@
19150
19150
  "text": "boolean"
19151
19151
  },
19152
19152
  "default": "false",
19153
- "description": "Whether the control refuses changes while still submitting its value.\n\n**Enforced by refusing every request in one place**, which is the seam this\ncomponent already has: `requestValue` is what every path here comes through,\nand gating it once is what stops the next call site from being written\nwithout the check.\n\nNot `disabled`, which is the confusion worth naming: a disabled control\nsubmits nothing and leaves the tab order, and a read-only one submits its\nvalue and stays reachable, which is what a form showing a color somebody\nelse set needs.\n\n**One gate is not enough here, and the second is `move`.** This picker\nholds a model beside its value, which Date Picker and Time Picker do not:\n`moved` is the HSB the square is drawn from, and it is written before the\nvalue is requested. Gating only the request would leave the square under\nthe reader's pointer and the value where it was, which is a control that\nrefuses and looks like it accepted.",
19153
+ "description": "Whether the control refuses changes while still submitting its value.\n\n**Enforced by refusing every request in one place**, which is the seam this\ncomponent already has: `requestValue` is what every path here comes through,\nand gating it once is what stops the next call site from being written\nwithout the check.\n\nNot `disabled`, which is the confusion worth naming: a disabled control\nsubmits nothing and leaves the tab order, and a read-only one submits its\nvalue and stays reachable, which is what a form showing a color somebody\nelse set needs.\n\n**One gate is not enough here, and the second is `move`.** This picker\nholds a model beside its value, which Date Picker and Time Picker do not:\n`moved` is the HSB the square is drawn from, and it is written before the\nvalue is requested. Gating only the request would leave the square under\nthe reader's pointer and the value where it was, which is a control that\nrefuses and looks like it accepted.\n\n**Two controls are refused whole rather than at either seam**, because\nboth do something before they ask. The syntax toggle rewrites the value, so\nletting it move would show `rgb` over a hex it is no longer allowed to\nrestate. The eyedropper clears the screen and runs a system sampler, so\nletting it open would take a color from the reader and drop it.",
19154
19154
  "attribute": "readonly",
19155
19155
  "reflects": true
19156
19156
  },
@@ -20198,7 +20198,7 @@
20198
20198
  "text": "boolean"
20199
20199
  },
20200
20200
  "default": "false",
20201
- "description": "Whether the control refuses changes while still submitting its value.\n\n**Enforced by refusing every request in one place**, which is the seam this\ncomponent already has: `requestValue` is what every path here comes through,\nand gating it once is what stops the next call site from being written\nwithout the check.\n\nNot `disabled`, which is the confusion worth naming: a disabled control\nsubmits nothing and leaves the tab order, and a read-only one submits its\nvalue and stays reachable, which is what a form showing a color somebody\nelse set needs.\n\n**One gate is not enough here, and the second is `move`.** This picker\nholds a model beside its value, which Date Picker and Time Picker do not:\n`moved` is the HSB the square is drawn from, and it is written before the\nvalue is requested. Gating only the request would leave the square under\nthe reader's pointer and the value where it was, which is a control that\nrefuses and looks like it accepted.",
20201
+ "description": "Whether the control refuses changes while still submitting its value.\n\n**Enforced by refusing every request in one place**, which is the seam this\ncomponent already has: `requestValue` is what every path here comes through,\nand gating it once is what stops the next call site from being written\nwithout the check.\n\nNot `disabled`, which is the confusion worth naming: a disabled control\nsubmits nothing and leaves the tab order, and a read-only one submits its\nvalue and stays reachable, which is what a form showing a color somebody\nelse set needs.\n\n**One gate is not enough here, and the second is `move`.** This picker\nholds a model beside its value, which Date Picker and Time Picker do not:\n`moved` is the HSB the square is drawn from, and it is written before the\nvalue is requested. Gating only the request would leave the square under\nthe reader's pointer and the value where it was, which is a control that\nrefuses and looks like it accepted.\n\n**Two controls are refused whole rather than at either seam**, because\nboth do something before they ask. The syntax toggle rewrites the value, so\nletting it move would show `rgb` over a hex it is no longer allowed to\nrestate. The eyedropper clears the screen and runs a system sampler, so\nletting it open would take a color from the reader and drop it.",
20202
20202
  "fieldName": "readOnly"
20203
20203
  },
20204
20204
  {
@@ -20285,7 +20285,7 @@
20285
20285
  "helix": {
20286
20286
  "category": "forms",
20287
20287
  "since": "0.1.0",
20288
- "status": "experimental",
20288
+ "status": "stable",
20289
20289
  "documentation": "https://fusion.dev/helix/components/color-picker",
20290
20290
  "aliases": [
20291
20291
  "Color",
@@ -73586,7 +73586,7 @@
73586
73586
  "helix": {
73587
73587
  "category": "forms",
73588
73588
  "since": "0.1.0",
73589
- "status": "experimental",
73589
+ "status": "stable",
73590
73590
  "documentation": "https://fusion.dev/helix/components/rating",
73591
73591
  "aliases": [
73592
73592
  "Stars",
@@ -95151,7 +95151,7 @@
95151
95151
  "helix": {
95152
95152
  "category": "forms",
95153
95153
  "since": "0.1.0",
95154
- "status": "experimental",
95154
+ "status": "stable",
95155
95155
  "documentation": "https://fusion.dev/helix/components/time-picker",
95156
95156
  "aliases": [
95157
95157
  "Time",
@@ -25,7 +25,7 @@ declare const HelixHeadlessColorPicker_base: (new (...args: any[]) => import("@f
25
25
  * model once.
26
26
  *
27
27
  * @since 0.1.0
28
- * @status experimental
28
+ * @status stable
29
29
  * @category forms
30
30
  * @aliases Color, ColorArea, Swatch picker
31
31
  * @documentation https://fusion.dev/helix/components/color-picker
@@ -147,6 +147,12 @@ export declare class HelixHeadlessColorPicker extends HelixHeadlessColorPicker_b
147
147
  * value is requested. Gating only the request would leave the square under
148
148
  * the reader's pointer and the value where it was, which is a control that
149
149
  * refuses and looks like it accepted.
150
+ *
151
+ * **Two controls are refused whole rather than at either seam**, because
152
+ * both do something before they ask. The syntax toggle rewrites the value, so
153
+ * letting it move would show `rgb` over a hex it is no longer allowed to
154
+ * restate. The eyedropper clears the screen and runs a system sampler, so
155
+ * letting it open would take a color from the reader and drop it.
150
156
  */
151
157
  readOnly: boolean;
152
158
  /**
@@ -68,6 +68,9 @@ let HelixHeadlessColorPicker = class HelixHeadlessColorPicker extends MixinContr
68
68
  }
69
69
  };
70
70
  this.handleEyeDropper = async () => {
71
+ if (this.readOnly) {
72
+ return;
73
+ }
71
74
  const Dropper = globalThis.EyeDropper;
72
75
  if (!Dropper) {
73
76
  return;
@@ -19,7 +19,7 @@ declare const HelixHeadlessRating_base: (new (...args: any[]) => import("@fusion
19
19
  * input, and it is announced as one.
20
20
  *
21
21
  * @since 0.1.0
22
- * @status experimental
22
+ * @status stable
23
23
  * @category forms
24
24
  * @aliases Stars, Score, Review score
25
25
  * @documentation https://fusion.dev/helix/components/rating
@@ -57,7 +57,7 @@ declare const HelixHeadlessTimePicker_base: (new (...args: any[]) => import("@fu
57
57
  * wheels, a wheel being a listbox like the list is.
58
58
  *
59
59
  * @since 0.1.0
60
- * @status experimental
60
+ * @status stable
61
61
  * @category forms
62
62
  * @aliases Time, TimeList
63
63
  * @documentation https://fusion.dev/helix/components/time-picker
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@fusion.dev/helix-headless",
3
3
  "description": "Headless component tier. Structure, accessibility, state, and form participation. No styling.",
4
- "version": "0.49.1",
4
+ "version": "0.50.0",
5
5
  "license": "MIT",
6
6
  "author": "Ross Sheppard <ross.sheppard@fusion.dev>",
7
7
  "repository": {
@@ -46,14 +46,14 @@
46
46
  },
47
47
  "bugs": "https://github.com/project-fusion/fusion/issues",
48
48
  "dependencies": {
49
- "@fusion.dev/helix-core": "0.49.1",
50
- "@fusion.dev/helix-icons": "0.49.1",
49
+ "@fusion.dev/helix-core": "0.50.0",
50
+ "@fusion.dev/helix-icons": "0.50.0",
51
51
  "uqr": "^0.1.3"
52
52
  },
53
53
  "devDependencies": {
54
54
  "@custom-elements-manifest/analyzer": "^0.11.0",
55
- "@fusion.dev/helix-cem": "0.49.1",
56
- "@fusion.dev/helix-testing": "0.49.1",
55
+ "@fusion.dev/helix-cem": "0.50.0",
56
+ "@fusion.dev/helix-testing": "0.50.0",
57
57
  "@fusion.dev/scripts": "0.0.0-dev",
58
58
  "@happy-dom/global-registrator": "^20.0.0",
59
59
  "@lit-labs/ssr": "^4.1.0",
package/types/jsx.d.ts CHANGED
@@ -3172,7 +3172,13 @@ holds a model beside its value, which Date Picker and Time Picker do not:
3172
3172
  `moved` is the HSB the square is drawn from, and it is written before the
3173
3173
  value is requested. Gating only the request would leave the square under
3174
3174
  the reader's pointer and the value where it was, which is a control that
3175
- refuses and looks like it accepted. */
3175
+ refuses and looks like it accepted.
3176
+
3177
+ **Two controls are refused whole rather than at either seam**, because
3178
+ both do something before they ask. The syntax toggle rewrites the value, so
3179
+ letting it move would show `rgb` over a hex it is no longer allowed to
3180
+ restate. The eyedropper clears the screen and runs a system sampler, so
3181
+ letting it open would take a color from the reader and drop it. */
3176
3182
  readonly?: (HelixHeadlessColorPicker["readOnly"]) | undefined;
3177
3183
  /** Whether the control refuses changes while still submitting its value.
3178
3184
 
@@ -3191,7 +3197,13 @@ holds a model beside its value, which Date Picker and Time Picker do not:
3191
3197
  `moved` is the HSB the square is drawn from, and it is written before the
3192
3198
  value is requested. Gating only the request would leave the square under
3193
3199
  the reader's pointer and the value where it was, which is a control that
3194
- refuses and looks like it accepted. */
3200
+ refuses and looks like it accepted.
3201
+
3202
+ **Two controls are refused whole rather than at either seam**, because
3203
+ both do something before they ask. The syntax toggle rewrites the value, so
3204
+ letting it move would show `rgb` over a hex it is no longer allowed to
3205
+ restate. The eyedropper clears the screen and runs a system sampler, so
3206
+ letting it open would take a color from the reader and drop it. */
3195
3207
  readOnly?: (HelixHeadlessColorPicker["readOnly"]) | undefined;
3196
3208
  /** Whether the form refuses to submit while no color is chosen.
3197
3209
 
@@ -3353,7 +3365,13 @@ holds a model beside its value, which Date Picker and Time Picker do not:
3353
3365
  `moved` is the HSB the square is drawn from, and it is written before the
3354
3366
  value is requested. Gating only the request would leave the square under
3355
3367
  the reader's pointer and the value where it was, which is a control that
3356
- refuses and looks like it accepted. */
3368
+ refuses and looks like it accepted.
3369
+
3370
+ **Two controls are refused whole rather than at either seam**, because
3371
+ both do something before they ask. The syntax toggle rewrites the value, so
3372
+ letting it move would show `rgb` over a hex it is no longer allowed to
3373
+ restate. The eyedropper clears the screen and runs a system sampler, so
3374
+ letting it open would take a color from the reader and drop it. */
3357
3375
  "bool:readonly"?: (HelixHeadlessColorPicker["readOnly"]) | undefined;
3358
3376
  /** Whether the control refuses changes while still submitting its value.
3359
3377
 
@@ -3372,7 +3390,13 @@ holds a model beside its value, which Date Picker and Time Picker do not:
3372
3390
  `moved` is the HSB the square is drawn from, and it is written before the
3373
3391
  value is requested. Gating only the request would leave the square under
3374
3392
  the reader's pointer and the value where it was, which is a control that
3375
- refuses and looks like it accepted. */
3393
+ refuses and looks like it accepted.
3394
+
3395
+ **Two controls are refused whole rather than at either seam**, because
3396
+ both do something before they ask. The syntax toggle rewrites the value, so
3397
+ letting it move would show `rgb` over a hex it is no longer allowed to
3398
+ restate. The eyedropper clears the screen and runs a system sampler, so
3399
+ letting it open would take a color from the reader and drop it. */
3376
3400
  "prop:readOnly"?: (HelixHeadlessColorPicker["readOnly"]) | undefined;
3377
3401
  /** Whether the form refuses to submit while no color is chosen.
3378
3402
 
@@ -20880,6 +20904,12 @@ export type CustomElements = {
20880
20904
  * value is requested. Gating only the request would leave the square under
20881
20905
  * the reader's pointer and the value where it was, which is a control that
20882
20906
  * refuses and looks like it accepted.
20907
+ *
20908
+ * **Two controls are refused whole rather than at either seam**, because
20909
+ * both do something before they ask. The syntax toggle rewrites the value, so
20910
+ * letting it move would show `rgb` over a hex it is no longer allowed to
20911
+ * restate. The eyedropper clears the screen and runs a system sampler, so
20912
+ * letting it open would take a color from the reader and drop it.
20883
20913
  * - `required`: Whether the form refuses to submit while no color is chosen.
20884
20914
  *
20885
20915
  * **A color is exactly as requirable as a date**, which is the comparison
@@ -38780,6 +38810,12 @@ export type CustomElementsSolidJs = {
38780
38810
  * value is requested. Gating only the request would leave the square under
38781
38811
  * the reader's pointer and the value where it was, which is a control that
38782
38812
  * refuses and looks like it accepted.
38813
+ *
38814
+ * **Two controls are refused whole rather than at either seam**, because
38815
+ * both do something before they ask. The syntax toggle rewrites the value, so
38816
+ * letting it move would show `rgb` over a hex it is no longer allowed to
38817
+ * restate. The eyedropper clears the screen and runs a system sampler, so
38818
+ * letting it open would take a color from the reader and drop it.
38783
38819
  * - `required`: Whether the form refuses to submit while no color is chosen.
38784
38820
  *
38785
38821
  * **A color is exactly as requirable as a date**, which is the comparison
package/types/vue.d.ts CHANGED
@@ -1681,7 +1681,13 @@ holds a model beside its value, which Date Picker and Time Picker do not:
1681
1681
  `moved` is the HSB the square is drawn from, and it is written before the
1682
1682
  value is requested. Gating only the request would leave the square under
1683
1683
  the reader's pointer and the value where it was, which is a control that
1684
- refuses and looks like it accepted. */
1684
+ refuses and looks like it accepted.
1685
+
1686
+ **Two controls are refused whole rather than at either seam**, because
1687
+ both do something before they ask. The syntax toggle rewrites the value, so
1688
+ letting it move would show `rgb` over a hex it is no longer allowed to
1689
+ restate. The eyedropper clears the screen and runs a system sampler, so
1690
+ letting it open would take a color from the reader and drop it. */
1685
1691
  readonly?: (HelixHeadlessColorPicker["readOnly"]) | undefined;
1686
1692
  /** Whether the control refuses changes while still submitting its value.
1687
1693
 
@@ -1700,7 +1706,13 @@ holds a model beside its value, which Date Picker and Time Picker do not:
1700
1706
  `moved` is the HSB the square is drawn from, and it is written before the
1701
1707
  value is requested. Gating only the request would leave the square under
1702
1708
  the reader's pointer and the value where it was, which is a control that
1703
- refuses and looks like it accepted. */
1709
+ refuses and looks like it accepted.
1710
+
1711
+ **Two controls are refused whole rather than at either seam**, because
1712
+ both do something before they ask. The syntax toggle rewrites the value, so
1713
+ letting it move would show `rgb` over a hex it is no longer allowed to
1714
+ restate. The eyedropper clears the screen and runs a system sampler, so
1715
+ letting it open would take a color from the reader and drop it. */
1704
1716
  readOnly?: (HelixHeadlessColorPicker["readOnly"]) | undefined;
1705
1717
  /** Whether the form refuses to submit while no color is chosen.
1706
1718