@allxsmith/bestax-bulma 5.20.0 → 5.22.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.
- package/dist/bestax.css +1 -1
- package/dist/bestax.css.map +1 -1
- package/dist/extras.css +1 -1
- package/dist/extras.css.map +1 -1
- package/dist/index.cjs +217 -25
- package/dist/index.cjs.map +1 -1
- package/dist/index.esm.js +215 -26
- package/dist/index.esm.js.map +1 -1
- package/dist/types/components/Collapse.d.ts +13 -9
- package/dist/types/components/Collapses.d.ts +53 -0
- package/dist/types/components/collapsesContext.d.ts +19 -0
- package/dist/types/helpers/ClientOnly.d.ts +40 -0
- package/dist/types/helpers/inertProps.d.ts +11 -0
- package/dist/types/helpers/useIsHydrated.d.ts +5 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types-cjs/components/Collapse.d.ts +13 -9
- package/dist/types-cjs/components/Collapses.d.ts +53 -0
- package/dist/types-cjs/components/collapsesContext.d.ts +19 -0
- package/dist/types-cjs/helpers/ClientOnly.d.ts +40 -0
- package/dist/types-cjs/helpers/inertProps.d.ts +11 -0
- package/dist/types-cjs/helpers/useIsHydrated.d.ts +5 -0
- package/dist/types-cjs/index.d.ts +4 -0
- package/dist/versions/bestax-no-dark-mode.css +1 -1
- package/dist/versions/bestax-no-dark-mode.css.map +1 -1
- package/dist/versions/bestax-no-helpers-prefixed.css +1 -1
- package/dist/versions/bestax-no-helpers-prefixed.css.map +1 -1
- package/dist/versions/bestax-no-helpers.css +1 -1
- package/dist/versions/bestax-no-helpers.css.map +1 -1
- package/dist/versions/bestax-prefixed.css +1 -1
- package/dist/versions/bestax-prefixed.css.map +1 -1
- package/package.json +1 -1
- package/src/scss/components/_collapse.scss +13 -4
package/dist/index.esm.js
CHANGED
|
@@ -1683,12 +1683,12 @@ Avatar.displayName = 'Avatar';
|
|
|
1683
1683
|
* prefixing the fragment's own key — otherwise a fragment sibling of a direct
|
|
1684
1684
|
* child would collide (both ".0") and trigger duplicate-key warnings.
|
|
1685
1685
|
*/
|
|
1686
|
-
function flattenChildren(children, keyPrefix = '') {
|
|
1686
|
+
function flattenChildren$1(children, keyPrefix = '') {
|
|
1687
1687
|
return React.Children.toArray(children).flatMap(child => {
|
|
1688
1688
|
if (!React.isValidElement(child))
|
|
1689
1689
|
return [];
|
|
1690
1690
|
if (child.type === React.Fragment) {
|
|
1691
|
-
return flattenChildren(child.props.children, keyPrefix + child.key);
|
|
1691
|
+
return flattenChildren$1(child.props.children, keyPrefix + child.key);
|
|
1692
1692
|
}
|
|
1693
1693
|
const el = child;
|
|
1694
1694
|
return [
|
|
@@ -1722,7 +1722,7 @@ const AvatarsComponent = ({ className, max, size, shape, spacing = 'md', spaced
|
|
|
1722
1722
|
: undefined;
|
|
1723
1723
|
const surplusClass = usePrefixedClassNames('is-surplus');
|
|
1724
1724
|
const combinedClasses = classNames(avatarsClasses, bulmaHelperClasses, className);
|
|
1725
|
-
const childArray = flattenChildren(children);
|
|
1725
|
+
const childArray = flattenChildren$1(children);
|
|
1726
1726
|
const maxCount = typeof max === 'number' && Number.isInteger(max) && max >= 0
|
|
1727
1727
|
? max
|
|
1728
1728
|
: undefined;
|
|
@@ -2832,6 +2832,11 @@ const getServerSnapshot = () => false;
|
|
|
2832
2832
|
* DOM-only behaviour (such as portalling) past hydration so the first client
|
|
2833
2833
|
* render matches the server markup instead of tripping hydration recovery.
|
|
2834
2834
|
*
|
|
2835
|
+
* Only a component that hydrates ever sees `false` on the client. One that
|
|
2836
|
+
* mounts later (after a route change, or in an app with no server rendering)
|
|
2837
|
+
* gets `true` on its first render, so it pays for no extra render. It
|
|
2838
|
+
* subscribes to nothing, so no later render flips it back.
|
|
2839
|
+
*
|
|
2835
2840
|
* @function useIsHydrated
|
|
2836
2841
|
* @returns `true` once the hydrating render has completed, otherwise `false`.
|
|
2837
2842
|
*/
|
|
@@ -4255,6 +4260,35 @@ const Loading = ({ active = false, isFullPage = false, size, color, canCancel =
|
|
|
4255
4260
|
return (jsxs("div", { className: combinedClasses, role: "alert", "aria-busy": "true", "aria-label": "Loading", ...rest, children: [jsx("div", { className: combinedOverlayClasses, onClick: handleOverlayClick, "aria-hidden": "true" }), jsxs("div", { className: loadingContentClass, children: [indicator ? (jsx("span", { className: loadingIconCustomClass, children: indicator })) : (jsx("span", { className: combinedIconClasses })), children && jsx("div", { className: loadingTextClass, children: children }), canCancel && (jsx("button", { type: "button", className: loadingCancelClass, onClick: onCancel, "aria-label": "Cancel loading", children: "Cancel" }))] })] }));
|
|
4256
4261
|
};
|
|
4257
4262
|
|
|
4263
|
+
// INTERNAL: deliberately not exported from src/index.ts.
|
|
4264
|
+
/** The major version of the React this bundle is running against. */
|
|
4265
|
+
const runningMajor = () => Number(React.version.split('.')[0]);
|
|
4266
|
+
/**
|
|
4267
|
+
* The prop that makes an element inert, spelled for the React in use, or
|
|
4268
|
+
* nothing when `inert` is false.
|
|
4269
|
+
*
|
|
4270
|
+
* Both majors must render `inert=""`, and each warns on the other's spelling
|
|
4271
|
+
* and then drops the attribute. React 19 treats `inert` as a boolean and
|
|
4272
|
+
* rejects the empty string. React 18 does not know the attribute, so it
|
|
4273
|
+
* passes a string through and rejects `true`.
|
|
4274
|
+
*/
|
|
4275
|
+
const inertProps = (inert, major = runningMajor()) => {
|
|
4276
|
+
if (!inert)
|
|
4277
|
+
return {};
|
|
4278
|
+
// The cast is for React 18's spelling: this package's types are React 19's,
|
|
4279
|
+
// where `inert` is a boolean.
|
|
4280
|
+
return (major >= 19
|
|
4281
|
+
? { inert: true }
|
|
4282
|
+
: { inert: '' });
|
|
4283
|
+
};
|
|
4284
|
+
|
|
4285
|
+
/**
|
|
4286
|
+
* `null` outside a group. A `Collapse` also resets it to `null` for its own
|
|
4287
|
+
* subtree, so a Collapse nested in an item's content keeps its own state
|
|
4288
|
+
* instead of answering to its ancestor's slot in the group.
|
|
4289
|
+
*/
|
|
4290
|
+
const CollapsesItemContext = createContext(null);
|
|
4291
|
+
|
|
4258
4292
|
/**
|
|
4259
4293
|
* The `Collapse` component provides an expandable/collapsible content panel.
|
|
4260
4294
|
*
|
|
@@ -4269,12 +4303,9 @@ const Loading = ({ active = false, isFullPage = false, size, color, canCancel =
|
|
|
4269
4303
|
* </Collapse>
|
|
4270
4304
|
*
|
|
4271
4305
|
* @example
|
|
4272
|
-
* // Controlled collapse
|
|
4306
|
+
* // Controlled collapse, driven by its own trigger
|
|
4273
4307
|
* const [isOpen, setIsOpen] = useState(false);
|
|
4274
|
-
* <Collapse
|
|
4275
|
-
* open={isOpen}
|
|
4276
|
-
* trigger={<button onClick={() => setIsOpen(!isOpen)}>Toggle</button>}
|
|
4277
|
-
* >
|
|
4308
|
+
* <Collapse open={isOpen} onOpenChange={setIsOpen} trigger={<strong>Toggle</strong>}>
|
|
4278
4309
|
* <p>Content</p>
|
|
4279
4310
|
* </Collapse>
|
|
4280
4311
|
*
|
|
@@ -4288,14 +4319,49 @@ const Loading = ({ active = false, isFullPage = false, size, color, canCancel =
|
|
|
4288
4319
|
* <p>Content</p>
|
|
4289
4320
|
* </Collapse>
|
|
4290
4321
|
*/
|
|
4291
|
-
const Collapse = ({ open: controlledOpen, defaultOpen = false, onOpen, onClose, trigger, animation = 'fade', position = 'top', ariaId, bordered, children, className, triggerClassName, contentClassName, ...props }) => {
|
|
4322
|
+
const Collapse = ({ open: controlledOpen, defaultOpen = false, onOpen, onClose, onOpenChange, trigger, animation = 'fade', position = 'top', ariaId, bordered, children, className, triggerClassName, contentClassName, ...props }) => {
|
|
4292
4323
|
const { bulmaHelperClasses, rest } = useBulmaClasses(props);
|
|
4293
4324
|
const contentRef = useRef(null);
|
|
4294
|
-
|
|
4295
|
-
//
|
|
4325
|
+
// Three possible owners of the open state, in order: the caller when `open`
|
|
4326
|
+
// is set, an enclosing Collapses group, and this Collapse itself. A caller's
|
|
4327
|
+
// `open` wins over the group, which is how the group leaves such an item
|
|
4328
|
+
// alone.
|
|
4296
4329
|
const isControlled = controlledOpen !== undefined;
|
|
4330
|
+
const group = useContext(CollapsesItemContext);
|
|
4331
|
+
const groupItem = isControlled ? null : group;
|
|
4297
4332
|
const [internalOpen, setInternalOpen] = useState(defaultOpen);
|
|
4298
|
-
const isOpen =
|
|
4333
|
+
const isOpen = controlledOpen ?? groupItem?.open ?? internalOpen;
|
|
4334
|
+
// A group owns the state of the items it manages, so these props do
|
|
4335
|
+
// nothing there. That is easy to miss, so development says which ones and
|
|
4336
|
+
// what to use instead, once per combination (the way Avatar keys its
|
|
4337
|
+
// warning), and `warnOnce` keeps production silent.
|
|
4338
|
+
if (groupItem) {
|
|
4339
|
+
const ignored = [
|
|
4340
|
+
defaultOpen && 'defaultOpen',
|
|
4341
|
+
onOpen && 'onOpen',
|
|
4342
|
+
onClose && 'onClose',
|
|
4343
|
+
].filter((name) => Boolean(name));
|
|
4344
|
+
if (ignored.length > 0) {
|
|
4345
|
+
const callbacks = ignored.filter(name => name !== 'defaultOpen');
|
|
4346
|
+
warnOnce(`Collapse:ignored-in-Collapses:${ignored.join('+')}`, `[bestax-bulma] <Collapse ${ignored.join(' ')}> inside <Collapses>: ` +
|
|
4347
|
+
[
|
|
4348
|
+
ignored.includes('defaultOpen') &&
|
|
4349
|
+
`defaultOpen has no effect, because the group decides which ` +
|
|
4350
|
+
`items start open. Pass the item's index in the group's ` +
|
|
4351
|
+
`defaultValue instead.`,
|
|
4352
|
+
callbacks.length > 0 &&
|
|
4353
|
+
`${callbacks.join(' and ')} never fire${callbacks.length > 1 ? '' : 's'}, ` +
|
|
4354
|
+
`because the group holds the item's open state. Use the ` +
|
|
4355
|
+
`item's onOpenChange, or the group's onChange, instead.`,
|
|
4356
|
+
]
|
|
4357
|
+
.filter(Boolean)
|
|
4358
|
+
.join(' '));
|
|
4359
|
+
}
|
|
4360
|
+
}
|
|
4361
|
+
// Start from the resolved state rather than `defaultOpen`, so an item that
|
|
4362
|
+
// mounts open through `open` or a group is not first painted (or rendered
|
|
4363
|
+
// on the server) at height 0 under the slide animation.
|
|
4364
|
+
const [height, setHeight] = useState(isOpen ? 'auto' : 0);
|
|
4299
4365
|
// Generate unique ID for accessibility (useId is SSR-safe and stable across
|
|
4300
4366
|
// renders; works in React 18 and 19).
|
|
4301
4367
|
const generatedId = useId();
|
|
@@ -4340,19 +4406,25 @@ const Collapse = ({ open: controlledOpen, defaultOpen = false, onOpen, onClose,
|
|
|
4340
4406
|
// excluded from the deps.
|
|
4341
4407
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
4342
4408
|
}, [isOpen, animation]);
|
|
4343
|
-
//
|
|
4409
|
+
// The trigger reports in every mode, then changes only the state this
|
|
4410
|
+
// Collapse owns. `onOpen`/`onClose` belong to that last case alone.
|
|
4344
4411
|
const handleToggle = useCallback(() => {
|
|
4345
|
-
|
|
4346
|
-
|
|
4347
|
-
|
|
4348
|
-
|
|
4349
|
-
|
|
4350
|
-
|
|
4351
|
-
|
|
4352
|
-
|
|
4353
|
-
|
|
4412
|
+
const next = !isOpen;
|
|
4413
|
+
onOpenChange?.(next);
|
|
4414
|
+
if (isControlled)
|
|
4415
|
+
return;
|
|
4416
|
+
if (groupItem) {
|
|
4417
|
+
groupItem.setOpen(next);
|
|
4418
|
+
return;
|
|
4419
|
+
}
|
|
4420
|
+
setInternalOpen(next);
|
|
4421
|
+
if (next) {
|
|
4422
|
+
onOpen?.();
|
|
4423
|
+
}
|
|
4424
|
+
else {
|
|
4425
|
+
onClose?.();
|
|
4354
4426
|
}
|
|
4355
|
-
}, [isControlled,
|
|
4427
|
+
}, [isOpen, isControlled, groupItem, onOpenChange, onOpen, onClose]);
|
|
4356
4428
|
// Handle keyboard interaction
|
|
4357
4429
|
const handleKeyDown = useCallback((e) => {
|
|
4358
4430
|
if (e.key === 'Enter' || e.key === ' ') {
|
|
@@ -4393,10 +4465,100 @@ const Collapse = ({ open: controlledOpen, defaultOpen = false, onOpen, onClose,
|
|
|
4393
4465
|
};
|
|
4394
4466
|
}
|
|
4395
4467
|
const triggerElement = (jsx("div", { className: combinedTriggerClasses, onClick: handleToggle, onKeyDown: handleKeyDown, role: "button", tabIndex: 0, "aria-expanded": isOpen, "aria-controls": uniqueId, children: trigger }));
|
|
4396
|
-
const contentElement = (jsx("div", { style: contentWrapperStyle, children: jsx("div", { ref: contentRef, id: uniqueId, className: combinedContentClasses, "aria-hidden": !isOpen, children: children }) }));
|
|
4397
|
-
|
|
4468
|
+
const contentElement = (jsx("div", { style: contentWrapperStyle, children: jsx("div", { ref: contentRef, id: uniqueId, className: combinedContentClasses, "aria-hidden": !isOpen, ...inertProps(!isOpen), children: children }) }));
|
|
4469
|
+
// The group's item context stops here: a Collapse nested in this one's
|
|
4470
|
+
// content is not an item of this one's group.
|
|
4471
|
+
return (jsx(CollapsesItemContext.Provider, { value: null, children: jsx("div", { className: combinedClasses, ...rest, children: position === 'bottom' ? (jsxs(Fragment, { children: [contentElement, triggerElement] })) : (jsxs(Fragment, { children: [triggerElement, contentElement] })) }) }));
|
|
4398
4472
|
};
|
|
4399
4473
|
|
|
4474
|
+
/** Either mode's value as the list of open indexes. */
|
|
4475
|
+
function toIndexes(value) {
|
|
4476
|
+
if (Array.isArray(value))
|
|
4477
|
+
return value;
|
|
4478
|
+
return typeof value === 'number' ? [value] : [];
|
|
4479
|
+
}
|
|
4480
|
+
/**
|
|
4481
|
+
* Flattens Fragment children (recursively) so each item inside one gets its
|
|
4482
|
+
* own index rather than sharing the fragment's. Children.toArray keys restart
|
|
4483
|
+
* at ".0" inside each fragment, so those children are re-keyed with the
|
|
4484
|
+
* fragment's own key as a prefix, the way Avatars does it.
|
|
4485
|
+
*/
|
|
4486
|
+
function flattenChildren(children, keyPrefix = '') {
|
|
4487
|
+
return React.Children.toArray(children).flatMap(child => {
|
|
4488
|
+
if (!React.isValidElement(child))
|
|
4489
|
+
return [child];
|
|
4490
|
+
if (child.type === React.Fragment) {
|
|
4491
|
+
return flattenChildren(child.props.children, keyPrefix + child.key);
|
|
4492
|
+
}
|
|
4493
|
+
return [
|
|
4494
|
+
keyPrefix
|
|
4495
|
+
? React.cloneElement(child, { key: keyPrefix + child.key })
|
|
4496
|
+
: child,
|
|
4497
|
+
];
|
|
4498
|
+
});
|
|
4499
|
+
}
|
|
4500
|
+
/**
|
|
4501
|
+
* The `Collapses` component groups `Collapse` items into an accordion that keeps one item open at a time, or any number with `multiple`.
|
|
4502
|
+
*
|
|
4503
|
+
* @function
|
|
4504
|
+
* @param {CollapsesProps} props - Props for the Collapses component.
|
|
4505
|
+
* @returns {JSX.Element} The rendered group.
|
|
4506
|
+
*
|
|
4507
|
+
* @example
|
|
4508
|
+
* // Accordion: one item open at a time, the first to start with
|
|
4509
|
+
* <Collapses defaultValue={0}>
|
|
4510
|
+
* <Collapse bordered trigger={<strong>Shipping</strong>}>…</Collapse>
|
|
4511
|
+
* <Collapse bordered trigger={<strong>Returns</strong>}>…</Collapse>
|
|
4512
|
+
* </Collapses>
|
|
4513
|
+
*
|
|
4514
|
+
* @example
|
|
4515
|
+
* // Controlled, with items that open independently
|
|
4516
|
+
* const [open, setOpen] = useState<number[]>([]);
|
|
4517
|
+
* <Collapses multiple value={open} onChange={setOpen}>…</Collapses>
|
|
4518
|
+
*/
|
|
4519
|
+
const CollapsesComponent = ({ multiple = false, value, defaultValue, onChange, seamless = false, className, children, ...props }) => {
|
|
4520
|
+
const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });
|
|
4521
|
+
// Controlled vs uncontrolled, as in Tabs. State is held as a list of open
|
|
4522
|
+
// indexes in both modes; `multiple` only decides how a change is computed
|
|
4523
|
+
// and which shape `onChange` receives.
|
|
4524
|
+
const isControlled = value !== undefined;
|
|
4525
|
+
const [internalOpen, setInternalOpen] = useState(() => toIndexes(defaultValue));
|
|
4526
|
+
const openIndexes = isControlled ? toIndexes(value) : internalOpen;
|
|
4527
|
+
// Each mode types `onChange` for its own shape, and the value built below
|
|
4528
|
+
// always matches `multiple`, the union's discriminant.
|
|
4529
|
+
const reportChange = onChange;
|
|
4530
|
+
const setItemOpen = (index, open) => {
|
|
4531
|
+
const others = openIndexes.filter(i => i !== index);
|
|
4532
|
+
// Single mode keeps at most one item open, so opening one drops the rest.
|
|
4533
|
+
// Ascending order, whatever order the items were opened in, so the value
|
|
4534
|
+
// reads and compares the same way however the user got there.
|
|
4535
|
+
const next = (open ? (multiple ? [...others, index] : [index]) : others).sort((a, b) => a - b);
|
|
4536
|
+
if (!isControlled)
|
|
4537
|
+
setInternalOpen(next);
|
|
4538
|
+
reportChange?.(multiple ? next : (next[0] ?? null));
|
|
4539
|
+
};
|
|
4540
|
+
const groupClasses = usePrefixedClassNames('collapses', {
|
|
4541
|
+
'is-seamless': seamless,
|
|
4542
|
+
});
|
|
4543
|
+
const combinedClasses = classNames(groupClasses, bulmaHelperClasses, className);
|
|
4544
|
+
const items = [];
|
|
4545
|
+
let index = 0;
|
|
4546
|
+
for (const child of flattenChildren(children)) {
|
|
4547
|
+
if (!React.isValidElement(child)) {
|
|
4548
|
+
items.push(child);
|
|
4549
|
+
continue;
|
|
4550
|
+
}
|
|
4551
|
+
const itemIndex = index;
|
|
4552
|
+
index += 1;
|
|
4553
|
+
items.push(jsx(CollapsesItemContext.Provider, { value: {
|
|
4554
|
+
open: openIndexes.includes(itemIndex),
|
|
4555
|
+
setOpen: open => setItemOpen(itemIndex, open),
|
|
4556
|
+
}, children: child }, child.key));
|
|
4557
|
+
}
|
|
4558
|
+
return (jsx("div", { className: combinedClasses, ...rest, children: items }));
|
|
4559
|
+
};
|
|
4560
|
+
const Collapses = withSubComponents(CollapsesComponent, { Collapse }, 'Collapses');
|
|
4561
|
+
|
|
4400
4562
|
/**
|
|
4401
4563
|
* The `Tooltip` component displays helpful information when users hover over or focus on an element.
|
|
4402
4564
|
*
|
|
@@ -14128,6 +14290,33 @@ const Theme = ({ bulmaVars = {}, children, className, isRoot = false, colorMode,
|
|
|
14128
14290
|
return isRoot ? (jsx(Fragment, { children: children })) : (jsx("div", { className: combinedClassName || undefined, style: style, ...rest, children: children }));
|
|
14129
14291
|
};
|
|
14130
14292
|
|
|
14293
|
+
/**
|
|
14294
|
+
* Renders its children only in the browser, after hydration, and a `fallback` until then, so content that depends on browser-only state doesn't cause a hydration mismatch.
|
|
14295
|
+
*
|
|
14296
|
+
* The server render and the hydrating client render both show `fallback`,
|
|
14297
|
+
* which keeps them identical; the children replace it in the commit that
|
|
14298
|
+
* follows. In an app without server rendering the children show on the first
|
|
14299
|
+
* render.
|
|
14300
|
+
*
|
|
14301
|
+
* @function
|
|
14302
|
+
* @param {ClientOnlyProps} props - Props for the ClientOnly component.
|
|
14303
|
+
* @returns The children once hydrated, otherwise the fallback.
|
|
14304
|
+
*
|
|
14305
|
+
* @example
|
|
14306
|
+
* // The server's time zone is not the reader's.
|
|
14307
|
+
* <ClientOnly fallback={<Skeleton variant="lines" lines={1} />}>
|
|
14308
|
+
* {() => (
|
|
14309
|
+
* <p>Times are shown in {Intl.DateTimeFormat().resolvedOptions().timeZone}.</p>
|
|
14310
|
+
* )}
|
|
14311
|
+
* </ClientOnly>
|
|
14312
|
+
*/
|
|
14313
|
+
function ClientOnly({ children, fallback = null }) {
|
|
14314
|
+
const hydrated = useIsHydrated();
|
|
14315
|
+
if (!hydrated)
|
|
14316
|
+
return jsx(Fragment, { children: fallback });
|
|
14317
|
+
return jsx(Fragment, { children: typeof children === 'function' ? children() : children });
|
|
14318
|
+
}
|
|
14319
|
+
|
|
14131
14320
|
/**
|
|
14132
14321
|
* The `Container` component provides a responsive and flexible layout wrapper for your Bulma React UI.
|
|
14133
14322
|
*
|
|
@@ -14474,5 +14663,5 @@ const Section = ({ size, className, children, color, bgColor, textColor, style,
|
|
|
14474
14663
|
return (jsx("section", { className: sectionClasses, style: mergeBulmaStyles(bulmaHelperStyles, style), ...rest, children: children }));
|
|
14475
14664
|
};
|
|
14476
14665
|
|
|
14477
|
-
export { Autocomplete, Avatar, Avatars, Badge, Block, Box, Breadcrumb, Button, Buttons, Card, Carousel, CarouselItem, Cell, Checkbox, Checkboxes, Code, Collapse, Column, Columns, ConfigProvider, Container, Content, Control, DateInput, DateInputBase, DateTimeInput, DateTimeInputBase, Delete, Dialog, DialogContainer, Divider, Dropdown, DropdownDivider, DropdownItem, Emphasis, Field, FieldBody, FieldLabel, Figure, File, Footer, Grid, Hero, HeroBody, HeroFoot, HeroHead, Icon, IconText, Image, Input, InputBase, Level, LevelItem, LevelLeft, LevelRight, Link, LinkButton, ListItem, Loader, Loading, Media, MediaContent, MediaLeft, MediaRight, Menu, MenuItem, MenuLabel, MenuList, Message, Modal, Navbar, NavbarBrand, NavbarBurger, NavbarDivider, NavbarDropdown, NavbarDropdownMenu, NavbarEnd, NavbarItem, NavbarLink, NavbarMenu, NavbarStart, Notification, NotificationContainer, NumberInput, Numberinput, OrderedList, Pagination, PaginationEllipsis, PaginationLink, PaginationList, PaginationNext, PaginationPrevious, Panel, PanelBlock, PanelButtonBlock, PanelCheckboxBlock, PanelHeading, PanelIcon, PanelInputBlock, PanelTabs, Paragraph, Pre, Progress, Radio, Radios, Rate, Reveal, Section, Select, SelectBase, Sidebar, Skeleton, Slider, Span, Step, Steps, Strong, SubTitle, Switch, Tab, TabContentItem, TabItem, TabList, Table, Tabs, TabsContent, Tag, TagInput, Taginput, Tags, Tbody, Td, TextArea, TextAreaBase, Tfoot, Th, Thead, Theme, TimeInput, TimeInputBase, Title, Toast, ToastContainer, Tooltip, Tr, UnorderedList, checkboxColors, checkboxSizes, classNames, createPrefixedClassNames, dialog, isBrowser$1 as isBrowser, mergeBulmaStyles, notification, prefixedClassNames, radioColors, radioSizes, switchColors, switchSizes, toast, useBulmaClasses, useClassPrefix, useColorClasses, useColorStyles, useConfig, useFlexboxClasses, useIconLibrary, useInsideControl, useInsideField, useOtherClasses, usePrefixedClass, usePrefixedClassNames, useSpacingClasses, useTypographyClasses, useVisibilityClasses, validAlignContents, validAlignItems, validAlignSelfs, validAlignments$1 as validAlignments, validAspectRatios, validAxisOverflows, validColorShades, validColors, validCursors, validDisplays, validFlexDirections, validFlexGrowShrink, validFlexWraps, validFloats, validFontFamilies, validInteractions, validJustifyContents, validOverflows, validPositions, validRadii, validResponsives, validSchemeColors, validShadows, validSizes$1 as validSizes, validTableColors, validTextSizes, validTextTransforms, validTextWeights, validViewports, validVisibilities };
|
|
14666
|
+
export { Autocomplete, Avatar, Avatars, Badge, Block, Box, Breadcrumb, Button, Buttons, Card, Carousel, CarouselItem, Cell, Checkbox, Checkboxes, ClientOnly, Code, Collapse, Collapses, Column, Columns, ConfigProvider, Container, Content, Control, DateInput, DateInputBase, DateTimeInput, DateTimeInputBase, Delete, Dialog, DialogContainer, Divider, Dropdown, DropdownDivider, DropdownItem, Emphasis, Field, FieldBody, FieldLabel, Figure, File, Footer, Grid, Hero, HeroBody, HeroFoot, HeroHead, Icon, IconText, Image, Input, InputBase, Level, LevelItem, LevelLeft, LevelRight, Link, LinkButton, ListItem, Loader, Loading, Media, MediaContent, MediaLeft, MediaRight, Menu, MenuItem, MenuLabel, MenuList, Message, Modal, Navbar, NavbarBrand, NavbarBurger, NavbarDivider, NavbarDropdown, NavbarDropdownMenu, NavbarEnd, NavbarItem, NavbarLink, NavbarMenu, NavbarStart, Notification, NotificationContainer, NumberInput, Numberinput, OrderedList, Pagination, PaginationEllipsis, PaginationLink, PaginationList, PaginationNext, PaginationPrevious, Panel, PanelBlock, PanelButtonBlock, PanelCheckboxBlock, PanelHeading, PanelIcon, PanelInputBlock, PanelTabs, Paragraph, Pre, Progress, Radio, Radios, Rate, Reveal, Section, Select, SelectBase, Sidebar, Skeleton, Slider, Span, Step, Steps, Strong, SubTitle, Switch, Tab, TabContentItem, TabItem, TabList, Table, Tabs, TabsContent, Tag, TagInput, Taginput, Tags, Tbody, Td, TextArea, TextAreaBase, Tfoot, Th, Thead, Theme, TimeInput, TimeInputBase, Title, Toast, ToastContainer, Tooltip, Tr, UnorderedList, checkboxColors, checkboxSizes, classNames, createPrefixedClassNames, dialog, isBrowser$1 as isBrowser, mergeBulmaStyles, notification, prefixedClassNames, radioColors, radioSizes, switchColors, switchSizes, toast, useBulmaClasses, useClassPrefix, useColorClasses, useColorStyles, useConfig, useFlexboxClasses, useIconLibrary, useInsideControl, useInsideField, useIsHydrated, useOtherClasses, usePrefixedClass, usePrefixedClassNames, useSpacingClasses, useTypographyClasses, useVisibilityClasses, validAlignContents, validAlignItems, validAlignSelfs, validAlignments$1 as validAlignments, validAspectRatios, validAxisOverflows, validColorShades, validColors, validCursors, validDisplays, validFlexDirections, validFlexGrowShrink, validFlexWraps, validFloats, validFontFamilies, validInteractions, validJustifyContents, validOverflows, validPositions, validRadii, validResponsives, validSchemeColors, validShadows, validSizes$1 as validSizes, validTableColors, validTextSizes, validTextTransforms, validTextWeights, validViewports, validVisibilities };
|
|
14478
14667
|
//# sourceMappingURL=index.esm.js.map
|