@drawbridge/components 0.0.58 → 0.0.60

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.
@@ -149,7 +149,15 @@ var InputGroupError = ({
149
149
  var input_group_error_default = InputGroupError;
150
150
 
151
151
  // components/input-group.js
152
- var import_jsx_runtime3 = require("react/jsx-runtime");
152
+ var import_jsx_runtime3 = (
153
+ // A real <label> wrapping the control (not a bare <span>) so the label
154
+ // is programmatically associated with the input — screen readers
155
+ // announce the field name, clicking the text focuses the input, and
156
+ // getByLabel()/role queries can find it. Wrapping gives the association
157
+ // implicitly, so it works for any control passed via `input` without
158
+ // having to thread an id through every input component.
159
+ require("react/jsx-runtime")
160
+ );
153
161
  var InputGroup = ({
154
162
  className,
155
163
  error,
@@ -180,10 +188,10 @@ var InputGroup = ({
180
188
  },
181
189
  children: [
182
190
  label ? /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
183
- "div",
191
+ "label",
184
192
  {
185
193
  ...{
186
- className: "space-y-2"
194
+ className: "space-y-2 block"
187
195
  },
188
196
  children: [
189
197
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
@@ -1,12 +1,12 @@
1
1
  "use client";
2
2
  import {
3
3
  product_default
4
- } from "./chunk-7AIAMVTM.mjs";
4
+ } from "./chunk-MG35TMY2.mjs";
5
5
  import "./chunk-PT7UR6AO.mjs";
6
6
  import "./chunk-3SXAH7B7.mjs";
7
7
  import "./chunk-FYA7EAMR.mjs";
8
8
  import "./chunk-2ZYGRSSA.mjs";
9
- import "./chunk-DNK33H3K.mjs";
9
+ import "./chunk-IIP5OKPN.mjs";
10
10
  import "./chunk-OHJMWJAQ.mjs";
11
11
  import "./chunk-Q3UIVGPQ.mjs";
12
12
  import {
@@ -33,25 +33,33 @@ var InputGroup = ({
33
33
  }
34
34
  },
35
35
  children: [
36
- label ? /* @__PURE__ */ jsxs(
37
- "div",
38
- {
39
- ...{
40
- className: "space-y-2"
41
- },
42
- children: [
43
- /* @__PURE__ */ jsx(
44
- "span",
45
- {
46
- ...{
47
- className: "block"
48
- },
49
- children: label
50
- }
51
- ),
52
- input
53
- ]
54
- }
36
+ label ? (
37
+ // A real <label> wrapping the control (not a bare <span>) so the label
38
+ // is programmatically associated with the input — screen readers
39
+ // announce the field name, clicking the text focuses the input, and
40
+ // getByLabel()/role queries can find it. Wrapping gives the association
41
+ // implicitly, so it works for any control passed via `input` without
42
+ // having to thread an id through every input component.
43
+ /* @__PURE__ */ jsxs(
44
+ "label",
45
+ {
46
+ ...{
47
+ className: "space-y-2 block"
48
+ },
49
+ children: [
50
+ /* @__PURE__ */ jsx(
51
+ "span",
52
+ {
53
+ ...{
54
+ className: "block"
55
+ },
56
+ children: label
57
+ }
58
+ ),
59
+ input
60
+ ]
61
+ }
62
+ )
55
63
  ) : input,
56
64
  /* @__PURE__ */ jsx(
57
65
  input_group_error_default,
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-2ZYGRSSA.mjs";
10
10
  import {
11
11
  input_group_default
12
- } from "./chunk-DNK33H3K.mjs";
12
+ } from "./chunk-IIP5OKPN.mjs";
13
13
  import {
14
14
  buttonStyle,
15
15
  inputStyle
@@ -131,7 +131,15 @@ var InputGroupError = ({
131
131
  var input_group_error_default = InputGroupError;
132
132
 
133
133
  // components/input-group.js
134
- var import_jsx_runtime3 = require("react/jsx-runtime");
134
+ var import_jsx_runtime3 = (
135
+ // A real <label> wrapping the control (not a bare <span>) so the label
136
+ // is programmatically associated with the input — screen readers
137
+ // announce the field name, clicking the text focuses the input, and
138
+ // getByLabel()/role queries can find it. Wrapping gives the association
139
+ // implicitly, so it works for any control passed via `input` without
140
+ // having to thread an id through every input component.
141
+ require("react/jsx-runtime")
142
+ );
135
143
  var InputGroup = ({
136
144
  className,
137
145
  error,
@@ -162,10 +170,10 @@ var InputGroup = ({
162
170
  },
163
171
  children: [
164
172
  label ? /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
165
- "div",
173
+ "label",
166
174
  {
167
175
  ...{
168
- className: "space-y-2"
176
+ className: "space-y-2 block"
169
177
  },
170
178
  children: [
171
179
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  input_group_default
3
- } from "./chunk-DNK33H3K.mjs";
3
+ } from "./chunk-IIP5OKPN.mjs";
4
4
  import "./chunk-OHJMWJAQ.mjs";
5
5
  import "./chunk-Q3UIVGPQ.mjs";
6
6
  export {
@@ -131,7 +131,15 @@ var InputGroupError = ({
131
131
  var input_group_error_default = InputGroupError;
132
132
 
133
133
  // components/input-group.js
134
- var import_jsx_runtime3 = require("react/jsx-runtime");
134
+ var import_jsx_runtime3 = (
135
+ // A real <label> wrapping the control (not a bare <span>) so the label
136
+ // is programmatically associated with the input — screen readers
137
+ // announce the field name, clicking the text focuses the input, and
138
+ // getByLabel()/role queries can find it. Wrapping gives the association
139
+ // implicitly, so it works for any control passed via `input` without
140
+ // having to thread an id through every input component.
141
+ require("react/jsx-runtime")
142
+ );
135
143
  var InputGroup = ({
136
144
  className,
137
145
  error,
@@ -162,10 +170,10 @@ var InputGroup = ({
162
170
  },
163
171
  children: [
164
172
  label ? /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
165
- "div",
173
+ "label",
166
174
  {
167
175
  ...{
168
- className: "space-y-2"
176
+ className: "space-y-2 block"
169
177
  },
170
178
  children: [
171
179
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-B6Y2SNRW.mjs";
4
4
  import {
5
5
  input_group_default
6
- } from "./chunk-DNK33H3K.mjs";
6
+ } from "./chunk-IIP5OKPN.mjs";
7
7
  import "./chunk-OHJMWJAQ.mjs";
8
8
  import "./chunk-Q3UIVGPQ.mjs";
9
9
  import "./chunk-FJ7PKMAC.mjs";
package/dist/product.js CHANGED
@@ -146,7 +146,15 @@ var InputGroupError = ({
146
146
  var input_group_error_default = InputGroupError;
147
147
 
148
148
  // components/input-group.js
149
- var import_jsx_runtime3 = require("react/jsx-runtime");
149
+ var import_jsx_runtime3 = (
150
+ // A real <label> wrapping the control (not a bare <span>) so the label
151
+ // is programmatically associated with the input — screen readers
152
+ // announce the field name, clicking the text focuses the input, and
153
+ // getByLabel()/role queries can find it. Wrapping gives the association
154
+ // implicitly, so it works for any control passed via `input` without
155
+ // having to thread an id through every input component.
156
+ require("react/jsx-runtime")
157
+ );
150
158
  var InputGroup = ({
151
159
  className,
152
160
  error,
@@ -177,10 +185,10 @@ var InputGroup = ({
177
185
  },
178
186
  children: [
179
187
  label ? /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
180
- "div",
188
+ "label",
181
189
  {
182
190
  ...{
183
- className: "space-y-2"
191
+ className: "space-y-2 block"
184
192
  },
185
193
  children: [
186
194
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
package/dist/product.mjs CHANGED
@@ -1,12 +1,12 @@
1
1
  "use client";
2
2
  import {
3
3
  product_default
4
- } from "./chunk-7AIAMVTM.mjs";
4
+ } from "./chunk-MG35TMY2.mjs";
5
5
  import "./chunk-PT7UR6AO.mjs";
6
6
  import "./chunk-3SXAH7B7.mjs";
7
7
  import "./chunk-FYA7EAMR.mjs";
8
8
  import "./chunk-2ZYGRSSA.mjs";
9
- import "./chunk-DNK33H3K.mjs";
9
+ import "./chunk-IIP5OKPN.mjs";
10
10
  import "./chunk-OHJMWJAQ.mjs";
11
11
  import "./chunk-Q3UIVGPQ.mjs";
12
12
  import "./chunk-FJ7PKMAC.mjs";
package/dist/video.js CHANGED
@@ -128,6 +128,18 @@ var Video = ({
128
128
  attributes: {
129
129
  "aria-label": "Decorative Video",
130
130
  poster
131
+ },
132
+ // Cap hls.js buffer-ahead. The default (~30s) makes a short
133
+ // looping hero eagerly pull most of the clip the instant
134
+ // playback starts — a big CDN-egress + mobile-data burst that
135
+ // multiplies under a viral spike. 10s buffers ~1-2 segments
136
+ // ahead and spreads the load across playback instead.
137
+ // IMPORTANT: do NOT set autoStartLoad:false here — a non-active
138
+ // gallery video must still load metadata so onDuration fires
139
+ // and its progress-bar duration is known before the carousel
140
+ // reaches it (see drawbridge-share template-subdomain-gallery).
141
+ hlsOptions: {
142
+ maxBufferLength: 10
131
143
  }
132
144
  }
133
145
  },
package/dist/video.mjs CHANGED
@@ -55,6 +55,18 @@ var Video = ({
55
55
  attributes: {
56
56
  "aria-label": "Decorative Video",
57
57
  poster
58
+ },
59
+ // Cap hls.js buffer-ahead. The default (~30s) makes a short
60
+ // looping hero eagerly pull most of the clip the instant
61
+ // playback starts — a big CDN-egress + mobile-data burst that
62
+ // multiplies under a viral spike. 10s buffers ~1-2 segments
63
+ // ahead and spreads the load across playback instead.
64
+ // IMPORTANT: do NOT set autoStartLoad:false here — a non-active
65
+ // gallery video must still load metadata so onDuration fires
66
+ // and its progress-bar duration is known before the carousel
67
+ // reaches it (see drawbridge-share template-subdomain-gallery).
68
+ hlsOptions: {
69
+ maxBufferLength: 10
58
70
  }
59
71
  }
60
72
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@drawbridge/components",
3
- "version": "0.0.58",
3
+ "version": "0.0.60",
4
4
  "exports": {
5
5
  "./advertisement": {
6
6
  "types": "./types/advertisement.d.ts",