@bitforgehq/ui 0.4.0 → 0.5.0-next.3
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/CHANGELOG.md +303 -0
- package/README.md +12 -12
- package/ai/MANIFEST.index.json +65 -2
- package/ai/MANIFEST.json +2221 -737
- package/ai/REFERENCE.index.json +161 -0
- package/ai/REFERENCE.json +1336 -27
- package/ai/UI_GUIDE.md +61 -20
- package/ai/components/app-frame.md +1 -1
- package/ai/components/chat-composer.md +357 -0
- package/ai/components/chat-message.md +251 -0
- package/ai/components/chat-thread.md +521 -0
- package/ai/components/checkbox.md +7 -0
- package/ai/components/combobox.md +12 -0
- package/ai/components/date-input.md +9 -0
- package/ai/components/datetime-input.md +2 -0
- package/ai/components/field.md +10 -0
- package/ai/components/file-input.md +498 -0
- package/ai/components/header.md +1 -1
- package/ai/components/image-input.md +368 -0
- package/ai/components/image-viewer.md +309 -0
- package/ai/components/media-card.md +478 -0
- package/ai/components/menu-button.md +2 -0
- package/ai/components/menu.md +10 -0
- package/ai/components/multi-combobox.md +7 -0
- package/ai/components/nav-group.md +10 -3
- package/ai/components/nav-item.md +11 -2
- package/ai/components/number-input.md +2 -7
- package/ai/components/popover.md +13 -0
- package/ai/components/radio-group.md +6 -0
- package/ai/components/segmented.md +14 -2
- package/ai/components/select.md +100 -42
- package/ai/components/sidebar-toggle.md +16 -9
- package/ai/components/sidebar.md +41 -13
- package/ai/components/tab-group.md +18 -2
- package/ai/components/table.md +17 -2
- package/ai/components/theme-menu-button.md +1 -0
- package/ai/components/time-input.md +2 -0
- package/ai/components/toolbar.md +7 -18
- package/ai/reference/bf-chat-composer-harness.md +64 -0
- package/ai/reference/bf-chat-message-role.md +27 -0
- package/ai/reference/bf-chat-message-status.md +28 -0
- package/ai/reference/bf-fade-in-directive.md +18 -0
- package/ai/reference/bf-file-input-harness.md +67 -0
- package/ai/reference/bf-file-input-variant.md +27 -0
- package/ai/reference/bf-image-input-harness.md +67 -0
- package/ai/reference/bf-image-input-shape.md +27 -0
- package/ai/reference/bf-image-viewer-actions-context.md +29 -0
- package/ai/reference/bf-image-viewer-harness.md +87 -0
- package/ai/reference/bf-image-viewer-image.md +25 -0
- package/ai/reference/bf-image-viewer-options.md +33 -0
- package/ai/reference/bf-image-viewer-origin.md +23 -0
- package/ai/reference/bf-image-viewer-ref.md +55 -0
- package/ai/reference/bf-image-viewer-service.md +32 -0
- package/ai/reference/bf-labels.md +105 -75
- package/ai/reference/bf-media-card-aspect.md +28 -0
- package/ai/reference/bf-media-card-harness.md +66 -0
- package/ai/reference/bf-motion-list-directive.md +22 -0
- package/ai/reference/bf-prose-directive.md +16 -0
- package/ai/reference/bf-rejected-file-reason.md +28 -0
- package/ai/reference/bf-rejected-file.md +28 -0
- package/ai/reference/bf-select-harness.md +14 -5
- package/ai/reference/bf-select-option.md +2 -0
- package/ai/reference/bf-size.md +3 -0
- package/ai/reference/bf_table_sort_select.md +23 -0
- package/ai/reference/provide-bf-labels.md +10 -3
- package/ai/reference/provide-bf-select.md +20 -0
- package/bin/bf-ui.js +1 -0
- package/fesm2022/bitforgehq-ui-overlay.mjs +2649 -606
- package/fesm2022/bitforgehq-ui-overlay.mjs.map +1 -1
- package/fesm2022/bitforgehq-ui-testing.mjs +356 -10
- package/fesm2022/bitforgehq-ui-testing.mjs.map +1 -1
- package/fesm2022/bitforgehq-ui.mjs +7531 -3989
- package/fesm2022/bitforgehq-ui.mjs.map +1 -1
- package/llms-full.txt +4151 -130
- package/llms.txt +31 -1
- package/package.json +1 -1
- package/theme.css +60 -0
- package/types/bitforgehq-ui-overlay.d.ts +684 -7
- package/types/bitforgehq-ui-testing.d.ts +434 -6
- package/types/bitforgehq-ui.d.ts +1473 -182
package/llms.txt
CHANGED
|
@@ -35,6 +35,7 @@
|
|
|
35
35
|
### Forms
|
|
36
36
|
|
|
37
37
|
- [bf-calendar](https://bitforge-ui.web.app/ai/components/calendar.md): Inline month calendar for picking one date, with month and year jumps ([docs](https://bitforge-ui.web.app/components/calendar))
|
|
38
|
+
- [bf-chat-composer](https://bitforge-ui.web.app/ai/components/chat-composer.md): Chat input that grows with the text and sends on Enter, or stops a reply ([docs](https://bitforge-ui.web.app/components/chat-composer))
|
|
38
39
|
- [bf-checkbox](https://bitforge-ui.web.app/ai/components/checkbox.md): Rounded checkbox with an optional label that binds to Signal Forms ([docs](https://bitforge-ui.web.app/components/checkbox))
|
|
39
40
|
- [bf-chip](https://bitforge-ui.web.app/ai/components/chip.md): Toggleable filter chip with a check mark when selected, in tonal or ink style ([docs](https://bitforge-ui.web.app/components/chip))
|
|
40
41
|
- [bf-chip-group](https://bitforge-ui.web.app/ai/components/chip-group.md): Named row of chips that picks one like radios, or groups independent toggles ([docs](https://bitforge-ui.web.app/components/chip-group))
|
|
@@ -42,12 +43,14 @@
|
|
|
42
43
|
- [bf-date-input](https://bitforge-ui.web.app/ai/components/date-input.md): Typed date field with a calendar popover, valued as an ISO date string ([docs](https://bitforge-ui.web.app/components/date-input))
|
|
43
44
|
- [bf-datetime-input](https://bitforge-ui.web.app/ai/components/datetime-input.md): Typed date and time field with a calendar and time list in one popover ([docs](https://bitforge-ui.web.app/components/datetime-input))
|
|
44
45
|
- [bf-field](https://bitforge-ui.web.app/ai/components/field.md): Label, help text and error text wrapper that wires ids for assistive tech ([docs](https://bitforge-ui.web.app/components/field))
|
|
46
|
+
- [bf-file-input](https://bitforge-ui.web.app/ai/components/file-input.md): File picker field that lists picked or dropped files and checks type, size and count ([docs](https://bitforge-ui.web.app/components/file-input))
|
|
47
|
+
- [bf-image-input](https://bitforge-ui.web.app/ai/components/image-input.md): Single-image picker with a round or square preview tile and replace or remove ([docs](https://bitforge-ui.web.app/components/image-input))
|
|
45
48
|
- [bf-input](https://bitforge-ui.web.app/ai/components/input.md): Single-line text field with label, help and error text, icon slots and Signal Forms binding ([docs](https://bitforge-ui.web.app/components/input))
|
|
46
49
|
- [bf-multi-combobox](https://bitforge-ui.web.app/ai/components/multi-combobox.md): Text field that filters options as you type and picks several as tags ([docs](https://bitforge-ui.web.app/components/multi-combobox))
|
|
47
50
|
- [bf-number-input](https://bitforge-ui.web.app/ai/components/number-input.md): Number field that binds number or null, with native min, max and step ([docs](https://bitforge-ui.web.app/components/number-input))
|
|
48
51
|
- [bf-radio-group](https://bitforge-ui.web.app/ai/components/radio-group.md): Group of radio buttons for choosing one option, with optional per-option descriptions ([docs](https://bitforge-ui.web.app/components/radio-group))
|
|
49
52
|
- [bf-segmented](https://bitforge-ui.web.app/ai/components/segmented.md): Segmented control for switching between two to four views, keyboard-navigable like radios ([docs](https://bitforge-ui.web.app/components/segmented))
|
|
50
|
-
- [bf-select](https://bitforge-ui.web.app/ai/components/select.md):
|
|
53
|
+
- [bf-select](https://bitforge-ui.web.app/ai/components/select.md): Single-choice dropdown with a styled list, native under touch, with Signal Forms binding ([docs](https://bitforge-ui.web.app/components/select))
|
|
51
54
|
- [bf-textarea](https://bitforge-ui.web.app/ai/components/textarea.md): Multi-line text field with label, help and error text, and Signal Forms binding ([docs](https://bitforge-ui.web.app/components/textarea))
|
|
52
55
|
- [bf-theme-switch](https://bitforge-ui.web.app/ai/components/theme-switch.md): Segmented System, Light and Dark switch bound two-way to the app colour scheme ([docs](https://bitforge-ui.web.app/components/theme-switch))
|
|
53
56
|
- [bf-time-input](https://bitforge-ui.web.app/ai/components/time-input.md): Typed time-of-day field with a popover list of times, valued as an ISO string ([docs](https://bitforge-ui.web.app/components/time-input))
|
|
@@ -60,12 +63,15 @@
|
|
|
60
63
|
- [bf-bar-chart](https://bitforge-ui.web.app/ai/components/bar-chart.md): Bar chart of series over categories, grouped or stacked, vertical or horizontal ([docs](https://bitforge-ui.web.app/components/bar-chart))
|
|
61
64
|
- [bf-card](https://bitforge-ui.web.app/ai/components/card.md): Content surface with an optional header slot, in four visual styles from raised to flat ([docs](https://bitforge-ui.web.app/components/card))
|
|
62
65
|
- [bf-chart-card](https://bitforge-ui.web.app/ai/components/chart-card.md): Card around one chart with a title, period control and loading, empty and error states ([docs](https://bitforge-ui.web.app/components/chart-card))
|
|
66
|
+
- [bf-chat-message](https://bitforge-ui.web.app/ai/components/chat-message.md): One chat message, a user bubble or a full-width assistant reply that can stream ([docs](https://bitforge-ui.web.app/components/chat-message))
|
|
67
|
+
- [bf-chat-thread](https://bitforge-ui.web.app/ai/components/chat-thread.md): Scrolling chat message log that follows new text and offers a jump to latest ([docs](https://bitforge-ui.web.app/components/chat-thread))
|
|
63
68
|
- [div[bfDescriptionItem]](https://bitforge-ui.web.app/ai/components/description-item.md): One label and value pair of a description list, label as term, content as value ([docs](https://bitforge-ui.web.app/components/description-item))
|
|
64
69
|
- [bf-description-list](https://bitforge-ui.web.app/ai/components/description-list.md): Native description list of label-value pairs, as divided rows or a tile grid ([docs](https://bitforge-ui.web.app/components/description-list))
|
|
65
70
|
- [bf-donut-chart](https://bitforge-ui.web.app/ai/components/donut-chart.md): Donut chart of the parts of a whole, with a legend, tooltip and centre slot ([docs](https://bitforge-ui.web.app/components/donut-chart))
|
|
66
71
|
- [bf-line-chart](https://bitforge-ui.web.app/ai/components/line-chart.md): Line chart of series over categories, with tooltip, legend and data table ([docs](https://bitforge-ui.web.app/components/line-chart))
|
|
67
72
|
- [bf-list](https://bitforge-ui.web.app/ai/components/list.md): Container for list rows, inset by default with rounded corners on a warm background ([docs](https://bitforge-ui.web.app/components/list))
|
|
68
73
|
- [bf-list-item](https://bitforge-ui.web.app/ai/components/list-item.md): List row with leading slot, title, subtitle, trailing slot and an optional chevron ([docs](https://bitforge-ui.web.app/components/list-item))
|
|
74
|
+
- [bf-media-card](https://bitforge-ui.web.app/ai/components/media-card.md): Card with an image that loads, fades in or fails, plus a body and actions ([docs](https://bitforge-ui.web.app/components/media-card))
|
|
69
75
|
- [bf-progress](https://bitforge-ui.web.app/ai/components/progress.md): Progress bar in two sizes and four tones for completion, quotas and unknown waits ([docs](https://bitforge-ui.web.app/components/progress))
|
|
70
76
|
- [bf-sparkline](https://bitforge-ui.web.app/ai/components/sparkline.md): Tiny trend line with no axes or legend, for stats and table cells ([docs](https://bitforge-ui.web.app/components/sparkline))
|
|
71
77
|
- [bf-stat](https://bitforge-ui.web.app/ai/components/stat.md): One labelled figure with an optional icon tile and a supporting line ([docs](https://bitforge-ui.web.app/components/stat))
|
|
@@ -112,6 +118,7 @@
|
|
|
112
118
|
- [bf-alert-dialog](https://bitforge-ui.web.app/ai/components/alert-dialog.md): Centred confirmation dialog with a title, message and a row of role-styled buttons ([docs](https://bitforge-ui.web.app/components/alert-dialog))
|
|
113
119
|
- [bf-desktop-toast](https://bitforge-ui.web.app/ai/components/desktop-toast.md): Desktop notification card in a bottom corner stack of up to three ([docs](https://bitforge-ui.web.app/components/desktop-toast))
|
|
114
120
|
- [bf-dialog](https://bitforge-ui.web.app/ai/components/dialog.md): Desktop modal dialog with a title, scrolling body, footer actions and focus trap ([docs](https://bitforge-ui.web.app/components/dialog))
|
|
121
|
+
- [bf-image-viewer](https://bitforge-ui.web.app/ai/components/image-viewer.md): Full-screen image viewer that zooms from a thumbnail and steps through a set ([docs](https://bitforge-ui.web.app/components/image-viewer))
|
|
115
122
|
- [bf-menu](https://bitforge-ui.web.app/ai/components/menu.md): Keyboard-operable menu panel with items, checkbox and radio items, groups and submenus ([docs](https://bitforge-ui.web.app/components/menu))
|
|
116
123
|
- [bf-menu-button](https://bitforge-ui.web.app/ai/components/menu-button.md): Styled button that opens a menu, with outline, text, tonal and icon-only looks ([docs](https://bitforge-ui.web.app/components/menu-button))
|
|
117
124
|
- [bf-modal](https://bitforge-ui.web.app/ai/components/modal.md): Modal overlay shown as an inset card over the scaled-down page, or full screen ([docs](https://bitforge-ui.web.app/components/modal))
|
|
@@ -147,6 +154,7 @@
|
|
|
147
154
|
- [BF_TAB_BAR](https://bitforge-ui.web.app/ai/reference/bf_tab_bar.md): Injection token through which each tab reaches its enclosing tab bar ([docs](https://bitforge-ui.web.app/api/bf_tab_bar))
|
|
148
155
|
- [BF_TAB_BAR_CONTROLLER](https://bitforge-ui.web.app/ai/reference/bf_tab_bar_controller.md): Injection token through which a parent drives the selection and hiding of its tab bar ([docs](https://bitforge-ui.web.app/api/bf_tab_bar_controller))
|
|
149
156
|
- [BF_TAB_LINKS](https://bitforge-ui.web.app/ai/reference/bf_tab_links.md): Injection token that turns a projected tab bar into a navigation of links ([docs](https://bitforge-ui.web.app/api/bf_tab_links))
|
|
157
|
+
- [BF_TABLE_SORT_SELECT](https://bitforge-ui.web.app/ai/reference/bf_table_sort_select.md): The component a stacked table renders as its Sort by select ([docs](https://bitforge-ui.web.app/api/bf_table_sort_select))
|
|
150
158
|
- [BfActionDirective](https://bitforge-ui.web.app/ai/reference/bf-action-directive.md): Makes one link or button the click target of a whole card or list row ([docs](https://bitforge-ui.web.app/api/bf-action-directive))
|
|
151
159
|
- [BfAlertVariant](https://bitforge-ui.web.app/ai/reference/bf-alert-variant.md): The four tones of an alert, from neutral information to a danger message ([docs](https://bitforge-ui.web.app/api/bf-alert-variant))
|
|
152
160
|
- [BfAppFrameBreakpoint](https://bitforge-ui.web.app/ai/reference/bf-app-frame-breakpoint.md): The breakpoint where an app frame switches from its header bar to the sidebar ([docs](https://bitforge-ui.web.app/api/bf-app-frame-breakpoint))
|
|
@@ -165,6 +173,8 @@
|
|
|
165
173
|
- [BfCalendarWeekday](https://bitforge-ui.web.app/ai/reference/bf-calendar-weekday.md): A weekday number from 0 for Sunday to 6 for Saturday, as Date counts ([docs](https://bitforge-ui.web.app/api/bf-calendar-weekday))
|
|
166
174
|
- [BfCardPadding](https://bitforge-ui.web.app/ai/reference/bf-card-padding.md): The two inner paddings of a card, regular and roomy ([docs](https://bitforge-ui.web.app/api/bf-card-padding))
|
|
167
175
|
- [BfCardVariant](https://bitforge-ui.web.app/ai/reference/bf-card-variant.md): The four card surfaces, from a raised panel to a flat outline ([docs](https://bitforge-ui.web.app/api/bf-card-variant))
|
|
176
|
+
- [BfChatMessageRole](https://bitforge-ui.web.app/ai/reference/bf-chat-message-role.md): Who wrote a chat message, the user or the assistant ([docs](https://bitforge-ui.web.app/api/bf-chat-message-role))
|
|
177
|
+
- [BfChatMessageStatus](https://bitforge-ui.web.app/ai/reference/bf-chat-message-status.md): How a chat message ended: done, stopped by the user, or failed ([docs](https://bitforge-ui.web.app/api/bf-chat-message-status))
|
|
168
178
|
- [BfChipGroupMode](https://bitforge-ui.web.app/ai/reference/bf-chip-group-mode.md): Whether a chip group picks exactly one chip or lets each chip toggle alone ([docs](https://bitforge-ui.web.app/api/bf-chip-group-mode))
|
|
169
179
|
- [BfChipVariant](https://bitforge-ui.web.app/ai/reference/bf-chip-variant.md): The two chip colours, a soft tonal tint or a dark ink fill ([docs](https://bitforge-ui.web.app/api/bf-chip-variant))
|
|
170
180
|
- [BfColorScheme](https://bitforge-ui.web.app/ai/reference/bf-color-scheme.md): The colour scheme choice, following the system or forcing light or dark ([docs](https://bitforge-ui.web.app/api/bf-color-scheme))
|
|
@@ -176,10 +186,13 @@
|
|
|
176
186
|
- [BfEmptyStateHeading](https://bitforge-ui.web.app/ai/reference/bf-empty-state-heading.md): The heading level of an empty state title, one for a whole page ([docs](https://bitforge-ui.web.app/api/bf-empty-state-heading))
|
|
177
187
|
- [BfEmptyStateHeadingLevel](https://bitforge-ui.web.app/ai/reference/bf-empty-state-heading-level.md): The heading level of an empty state title, two for a screen or three ([docs](https://bitforge-ui.web.app/api/bf-empty-state-heading-level))
|
|
178
188
|
- [BfEnterKeyHint](https://bitforge-ui.web.app/ai/reference/bf-enter-key-hint.md): The labels a phone keyboard can put on its Enter key ([docs](https://bitforge-ui.web.app/api/bf-enter-key-hint))
|
|
189
|
+
- [BfFadeInDirective](https://bitforge-ui.web.app/ai/reference/bf-fade-in-directive.md): Fades an image in once it has loaded instead of popping in ([docs](https://bitforge-ui.web.app/api/bf-fade-in-directive))
|
|
179
190
|
- [bfFieldControlClass](https://bitforge-ui.web.app/ai/reference/bf-field-control-class.md): The class list that makes a custom control look like a library text field ([docs](https://bitforge-ui.web.app/api/bf-field-control-class))
|
|
180
191
|
- [BfFieldControlState](https://bitforge-ui.web.app/ai/reference/bf-field-control-state.md): The size and state a custom field control is styled for by bfFieldControlClass ([docs](https://bitforge-ui.web.app/api/bf-field-control-state))
|
|
181
192
|
- [BfFieldSize](https://bitforge-ui.web.app/ai/reference/bf-field-size.md): Former name of the shared size scale for text fields, kept until 1.0.0 ([docs](https://bitforge-ui.web.app/api/bf-field-size))
|
|
193
|
+
- [BfFileInputVariant](https://bitforge-ui.web.app/ai/reference/bf-file-input-variant.md): The two looks of a file picker, a compact field or a drop zone ([docs](https://bitforge-ui.web.app/api/bf-file-input-variant))
|
|
182
194
|
- [BfIconButtonVariant](https://bitforge-ui.web.app/ai/reference/bf-icon-button-variant.md): The four visual styles of an icon button, from tonal to plain text ([docs](https://bitforge-ui.web.app/api/bf-icon-button-variant))
|
|
195
|
+
- [BfImageInputShape](https://bitforge-ui.web.app/ai/reference/bf-image-input-shape.md): The two tile shapes of an image picker, a circle or a rounded square ([docs](https://bitforge-ui.web.app/api/bf-image-input-shape))
|
|
183
196
|
- [BfInputAutocapitalize](https://bitforge-ui.web.app/ai/reference/bf-input-autocapitalize.md): A text field's capitalisation setting, a mode or empty to leave it off ([docs](https://bitforge-ui.web.app/api/bf-input-autocapitalize))
|
|
184
197
|
- [BfInputEnterKeyHint](https://bitforge-ui.web.app/ai/reference/bf-input-enter-key-hint.md): A field's Enter key label setting, a label or empty to leave it off ([docs](https://bitforge-ui.web.app/api/bf-input-enter-key-hint))
|
|
185
198
|
- [BfInputInputMode](https://bitforge-ui.web.app/ai/reference/bf-input-input-mode.md): A text field's virtual keyboard setting, a keyboard or empty to leave it off ([docs](https://bitforge-ui.web.app/api/bf-input-input-mode))
|
|
@@ -187,11 +200,16 @@
|
|
|
187
200
|
- [BfInputType](https://bitforge-ui.web.app/ai/reference/bf-input-type.md): The native input types a text field supports, all bound as strings ([docs](https://bitforge-ui.web.app/api/bf-input-type))
|
|
188
201
|
- [BfLabels](https://bitforge-ui.web.app/ai/reference/bf-labels.md): Every built-in user-facing string of the library, one key per string ([docs](https://bitforge-ui.web.app/api/bf-labels))
|
|
189
202
|
- [BfLabelsOverrides](https://bitforge-ui.web.app/ai/reference/bf-labels-overrides.md): The strings provideBfLabels replaces, each one falling back to the parent ([docs](https://bitforge-ui.web.app/api/bf-labels-overrides))
|
|
203
|
+
- [BfMediaCardAspect](https://bitforge-ui.web.app/ai/reference/bf-media-card-aspect.md): The four aspect ratios of a media card's image area, wide to portrait ([docs](https://bitforge-ui.web.app/api/bf-media-card-aspect))
|
|
204
|
+
- [BfMotionListDirective](https://bitforge-ui.web.app/ai/reference/bf-motion-list-directive.md): Glides the items of a list or grid to their new place when it changes ([docs](https://bitforge-ui.web.app/api/bf-motion-list-directive))
|
|
190
205
|
- [BfPageHeaderHeadingLevel](https://bitforge-ui.web.app/ai/reference/bf-page-header-heading-level.md): The heading level of a page header title, one for a page or two ([docs](https://bitforge-ui.web.app/api/bf-page-header-heading-level))
|
|
191
206
|
- [BfProgressSize](https://bitforge-ui.web.app/ai/reference/bf-progress-size.md): The two track heights of a progress bar, thin and regular ([docs](https://bitforge-ui.web.app/api/bf-progress-size))
|
|
192
207
|
- [BfProgressTone](https://bitforge-ui.web.app/ai/reference/bf-progress-tone.md): The four fill colours of a progress bar, from primary to danger ([docs](https://bitforge-ui.web.app/api/bf-progress-tone))
|
|
208
|
+
- [BfProseDirective](https://bitforge-ui.web.app/ai/reference/bf-prose-directive.md): Styles rendered markdown with the library tokens: headings, lists, code and quotes ([docs](https://bitforge-ui.web.app/api/bf-prose-directive))
|
|
193
209
|
- [BfRadioGroupOrientation](https://bitforge-ui.web.app/ai/reference/bf-radio-group-orientation.md): Whether a radio group stacks its options or sets them in a row ([docs](https://bitforge-ui.web.app/api/bf-radio-group-orientation))
|
|
194
210
|
- [BfRadioOption](https://bitforge-ui.web.app/ai/reference/bf-radio-option.md): One choice of a radio group with its value, label and optional description ([docs](https://bitforge-ui.web.app/api/bf-radio-option))
|
|
211
|
+
- [BfRejectedFile](https://bitforge-ui.web.app/ai/reference/bf-rejected-file.md): A picked or dropped file that broke a rule, with the rule and its message ([docs](https://bitforge-ui.web.app/api/bf-rejected-file))
|
|
212
|
+
- [BfRejectedFileReason](https://bitforge-ui.web.app/ai/reference/bf-rejected-file-reason.md): The rule a refused file broke, its type, its size or the file count ([docs](https://bitforge-ui.web.app/api/bf-rejected-file-reason))
|
|
195
213
|
- [BfSegmentedSize](https://bitforge-ui.web.app/ai/reference/bf-segmented-size.md): Former name of the shared size scale for segmented controls, kept until 1.0.0 ([docs](https://bitforge-ui.web.app/api/bf-segmented-size))
|
|
196
214
|
- [BfSegmentOption](https://bitforge-ui.web.app/ai/reference/bf-segment-option.md): One segment of a segmented control with its value, its label and a disabled flag ([docs](https://bitforge-ui.web.app/api/bf-segment-option))
|
|
197
215
|
- [BfSelectOption](https://bitforge-ui.web.app/ai/reference/bf-select-option.md): One choice of a select with its value, its label and a disabled flag ([docs](https://bitforge-ui.web.app/api/bf-select-option))
|
|
@@ -251,6 +269,12 @@
|
|
|
251
269
|
- [BfDialogService](https://bitforge-ui.web.app/ai/reference/bf-dialog-service.md): Opens modal dialogs and confirm prompts, centred over the page with focus trapped ([docs](https://bitforge-ui.web.app/api/bf-dialog-service))
|
|
252
270
|
- [BfDialogSize](https://bitforge-ui.web.app/ai/reference/bf-dialog-size.md): The dialog width scale from a 24 rem confirm to an edge-to-edge fullscreen dialog ([docs](https://bitforge-ui.web.app/api/bf-dialog-size))
|
|
253
271
|
- [BfDialogTemplateContext](https://bitforge-ui.web.app/ai/reference/bf-dialog-template-context.md): The context a template opened as a dialog receives: its ref and its data ([docs](https://bitforge-ui.web.app/api/bf-dialog-template-context))
|
|
272
|
+
- [BfImageViewerActionsContext](https://bitforge-ui.web.app/ai/reference/bf-image-viewer-actions-context.md): What the viewer's actions template receives: the shown image, its index and the ref ([docs](https://bitforge-ui.web.app/api/bf-image-viewer-actions-context))
|
|
273
|
+
- [BfImageViewerImage](https://bitforge-ui.web.app/ai/reference/bf-image-viewer-image.md): One image the viewer shows: its URL, its name as alternative text and a caption ([docs](https://bitforge-ui.web.app/api/bf-image-viewer-image))
|
|
274
|
+
- [BfImageViewerOptions](https://bitforge-ui.web.app/ai/reference/bf-image-viewer-options.md): Options of an image viewer: its images, the first one, its thumbnail and actions ([docs](https://bitforge-ui.web.app/api/bf-image-viewer-options))
|
|
275
|
+
- [BfImageViewerOrigin](https://bitforge-ui.web.app/ai/reference/bf-image-viewer-origin.md): The thumbnail an image viewer zooms from and back into, or a lookup per image ([docs](https://bitforge-ui.web.app/api/bf-image-viewer-origin))
|
|
276
|
+
- [BfImageViewerRef](https://bitforge-ui.web.app/ai/reference/bf-image-viewer-ref.md): Handle on an open image viewer that steps through its images and closes it ([docs](https://bitforge-ui.web.app/api/bf-image-viewer-ref))
|
|
277
|
+
- [BfImageViewerService](https://bitforge-ui.web.app/ai/reference/bf-image-viewer-service.md): Opens a full-screen image viewer that zooms from a thumbnail and steps through a set ([docs](https://bitforge-ui.web.app/api/bf-image-viewer-service))
|
|
254
278
|
- [BfMenuButtonVariant](https://bitforge-ui.web.app/ai/reference/bf-menu-button-variant.md): The three visual styles of a menu button, matching the button styles ([docs](https://bitforge-ui.web.app/api/bf-menu-button-variant))
|
|
255
279
|
- [BfMenuDividerDirective](https://bitforge-ui.web.app/ai/reference/bf-menu-divider-directive.md): A line between groups of menu items that keyboard focus never lands on ([docs](https://bitforge-ui.web.app/api/bf-menu-divider-directive))
|
|
256
280
|
- [BfMenuGroupDirective](https://bitforge-ui.web.app/ai/reference/bf-menu-group-directive.md): Groups related menu items; radio items in one group exclude each other ([docs](https://bitforge-ui.web.app/api/bf-menu-group-directive))
|
|
@@ -296,6 +320,7 @@
|
|
|
296
320
|
- [OVERLAY_REDUCED_DURATION](https://bitforge-ui.web.app/ai/reference/overlay_reduced_duration.md): The duration of the fade that replaces overlay motion under reduced motion ([docs](https://bitforge-ui.web.app/api/overlay_reduced_duration))
|
|
297
321
|
- [prefersReducedMotion](https://bitforge-ui.web.app/ai/reference/prefers-reduced-motion.md): Tells whether the user asked the system to minimise motion ([docs](https://bitforge-ui.web.app/api/prefers-reduced-motion))
|
|
298
322
|
- [provideBfDesktopToast](https://bitforge-ui.web.app/ai/reference/provide-bf-desktop-toast.md): Sets where desktop toasts appear and how many show at once, app-wide ([docs](https://bitforge-ui.web.app/api/provide-bf-desktop-toast))
|
|
323
|
+
- [provideBfSelect](https://bitforge-ui.web.app/ai/reference/provide-bf-select.md): Makes a stacked table's Sort by select the styled bf-select, app-wide ([docs](https://bitforge-ui.web.app/api/provide-bf-select))
|
|
299
324
|
- [scaleIn](https://bitforge-ui.web.app/ai/reference/scale-in.md): Scales an element up while fading it in, the enter animation of centred dialogs ([docs](https://bitforge-ui.web.app/api/scale-in))
|
|
300
325
|
- [slideDown](https://bitforge-ui.web.app/ai/reference/slide-down.md): Slides an element down out of place, the exit animation of a bottom sheet ([docs](https://bitforge-ui.web.app/api/slide-down))
|
|
301
326
|
- [slideInFromEnd](https://bitforge-ui.web.app/ai/reference/slide-in-from-end.md): Slides an element in from the inline end, the enter animation of a side panel ([docs](https://bitforge-ui.web.app/api/slide-in-from-end))
|
|
@@ -412,13 +437,18 @@
|
|
|
412
437
|
|
|
413
438
|
- [BfCalendarHarness](https://bitforge-ui.web.app/ai/reference/bf-calendar-harness.md): Test harness for the calendar: reads the month and picks a date by ISO string ([docs](https://bitforge-ui.web.app/api/bf-calendar-harness))
|
|
414
439
|
- [BfChartHarness](https://bitforge-ui.web.app/ai/reference/bf-chart-harness.md): Test harness for the charts: reads the series, toggles one and reads the data table ([docs](https://bitforge-ui.web.app/api/bf-chart-harness))
|
|
440
|
+
- [BfChatComposerHarness](https://bitforge-ui.web.app/ai/reference/bf-chat-composer-harness.md): Test harness for the chat composer: types, sends, stops and reads its state ([docs](https://bitforge-ui.web.app/api/bf-chat-composer-harness))
|
|
415
441
|
- [BfComboboxHarness](https://bitforge-ui.web.app/ai/reference/bf-combobox-harness.md): Test harness for the comboboxes: types, reads and picks options and tags ([docs](https://bitforge-ui.web.app/api/bf-combobox-harness))
|
|
416
442
|
- [BfDateInputHarness](https://bitforge-ui.web.app/ai/reference/bf-date-input-harness.md): Test harness for the date input: types a date or picks one in its calendar ([docs](https://bitforge-ui.web.app/api/bf-date-input-harness))
|
|
417
443
|
- [BfDateTimeInputHarness](https://bitforge-ui.web.app/ai/reference/bf-date-time-input-harness.md): Test harness for the date and time input: types or picks a date and time ([docs](https://bitforge-ui.web.app/api/bf-date-time-input-harness))
|
|
418
444
|
- [BfDesktopToastHarness](https://bitforge-ui.web.app/ai/reference/bf-desktop-toast-harness.md): Test harness for a desktop toast: its message, its action and Escape ([docs](https://bitforge-ui.web.app/api/bf-desktop-toast-harness))
|
|
419
445
|
- [BfDialogHarness](https://bitforge-ui.web.app/ai/reference/bf-dialog-harness.md): Test harness for a dialog: its title, text and role, its buttons and Escape ([docs](https://bitforge-ui.web.app/api/bf-dialog-harness))
|
|
446
|
+
- [BfFileInputHarness](https://bitforge-ui.web.app/ai/reference/bf-file-input-harness.md): Test harness for the file input: drops files and reads the list and rejections ([docs](https://bitforge-ui.web.app/api/bf-file-input-harness))
|
|
420
447
|
- [BfHarnessFilters](https://bitforge-ui.web.app/ai/reference/bf-harness-filters.md): Filters a library harness query by selector, ancestor and the widget label ([docs](https://bitforge-ui.web.app/api/bf-harness-filters))
|
|
448
|
+
- [BfImageInputHarness](https://bitforge-ui.web.app/ai/reference/bf-image-input-harness.md): Test harness for the image input: drops an image on it and reads the preview ([docs](https://bitforge-ui.web.app/api/bf-image-input-harness))
|
|
449
|
+
- [BfImageViewerHarness](https://bitforge-ui.web.app/ai/reference/bf-image-viewer-harness.md): Test harness for an image viewer: its image, index, caption, steps and close ([docs](https://bitforge-ui.web.app/api/bf-image-viewer-harness))
|
|
421
450
|
- [BfJsdomShimOptions](https://bitforge-ui.web.app/ai/reference/bf-jsdom-shim-options.md): Options of the jsdom shims: the matchMedia stub and its reduced-motion answer ([docs](https://bitforge-ui.web.app/api/bf-jsdom-shim-options))
|
|
451
|
+
- [BfMediaCardHarness](https://bitforge-ui.web.app/ai/reference/bf-media-card-harness.md): Test harness for a media card: its image state, its messages and its selection ([docs](https://bitforge-ui.web.app/api/bf-media-card-harness))
|
|
422
452
|
- [BfMenuButtonHarness](https://bitforge-ui.web.app/ai/reference/bf-menu-button-harness.md): Test harness for a menu button: opens it and hands out the menu it opened ([docs](https://bitforge-ui.web.app/api/bf-menu-button-harness))
|
|
423
453
|
- [BfMenuHarness](https://bitforge-ui.web.app/ai/reference/bf-menu-harness.md): Test harness for a menu: lists its items and clicks one, through submenus ([docs](https://bitforge-ui.web.app/api/bf-menu-harness))
|
|
424
454
|
- [BfMenuItemHarness](https://bitforge-ui.web.app/ai/reference/bf-menu-item-harness.md): Test harness for a menu row: its text, disabled, checked and submenu state ([docs](https://bitforge-ui.web.app/api/bf-menu-item-harness))
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bitforgehq/ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0-next.3",
|
|
4
4
|
"description": "Bitforge UI: Angular 22 widgets (Meadow Sage palette with an indigo default primary to override, Tailwind v4, signals-first) and, from v0.2, a Capacitor app shell.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
package/theme.css
CHANGED
|
@@ -178,6 +178,14 @@
|
|
|
178
178
|
--ease-ios: cubic-bezier(0.32, 0.72, 0, 1);
|
|
179
179
|
--ease-md: cubic-bezier(0.2, 0, 0, 1);
|
|
180
180
|
--ease-settle: cubic-bezier(0.2, 0.8, 0.3, 1);
|
|
181
|
+
/* Durations as utilities (duration-fast, duration-base, duration-slow), the same timings the
|
|
182
|
+
widgets use, so an app's own motion matches the library: fast 150 ms (colours, small
|
|
183
|
+
state changes, the reduced-motion fade), base 200 ms (size and position: the sidebar,
|
|
184
|
+
selection indicators, list items), slow 260 ms (overlays enter and leave). They read the
|
|
185
|
+
:root --bf-duration-* properties below, so redefining those retimes both. */
|
|
186
|
+
--transition-duration-fast: var(--bf-duration-fast);
|
|
187
|
+
--transition-duration-base: var(--bf-duration-layout);
|
|
188
|
+
--transition-duration-slow: var(--bf-duration-overlay);
|
|
181
189
|
|
|
182
190
|
/* bf-progress indeterminate: a 40 % stripe runs across the track from the inline start (static
|
|
183
191
|
under reduced motion); the -rtl pair runs it the other way under dir="rtl". */
|
|
@@ -221,6 +229,57 @@
|
|
|
221
229
|
}
|
|
222
230
|
}
|
|
223
231
|
|
|
232
|
+
/* App lists and grids, with Angular's animate.enter / animate.leave: an item fades and rises in
|
|
233
|
+
(`animate.enter="motion-safe:animate-item-enter"`) and fades out while it shrinks a little
|
|
234
|
+
(`animate.leave="motion-safe:animate-item-leave"`); `bfMotionList` on the container glides
|
|
235
|
+
the others into place. motion-safe: leaves both out under reduced motion. */
|
|
236
|
+
--animate-item-enter: bf-item-enter var(--bf-duration-layout) var(--ease-settle) both;
|
|
237
|
+
--animate-item-leave: bf-item-leave var(--bf-duration-fast) var(--ease-md) both;
|
|
238
|
+
@keyframes bf-item-enter {
|
|
239
|
+
from {
|
|
240
|
+
opacity: 0;
|
|
241
|
+
transform: translateY(8px) scale(0.98);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
@keyframes bf-item-leave {
|
|
245
|
+
to {
|
|
246
|
+
opacity: 0;
|
|
247
|
+
transform: scale(0.96);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
/* A field's error message fades in when it appears (and when a held message is revealed after
|
|
252
|
+
the press ends: `not-[.sr-only]:animate-message-in`). An opacity fade only, so it stays under
|
|
253
|
+
reduced motion, like the overlays' reduced fade. */
|
|
254
|
+
--animate-message-in: bf-message-in 150ms var(--ease-md) both;
|
|
255
|
+
/* bf-tab-panel: the panel a user switches to fades in over the old one's place (behind
|
|
256
|
+
motion-safe:, so not under reduced motion); never the first panel on load. */
|
|
257
|
+
--animate-panel-in: bf-message-in 200ms var(--ease-md) both;
|
|
258
|
+
@keyframes bf-message-in {
|
|
259
|
+
from {
|
|
260
|
+
opacity: 0;
|
|
261
|
+
}
|
|
262
|
+
to {
|
|
263
|
+
opacity: 1;
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
/* bf-chat-message: a message added after the thread's first render rises 4 px and fades in
|
|
268
|
+
(motion-safe: only), and a streaming reply's caret pulses (static under reduced motion). */
|
|
269
|
+
--animate-chat-message-in: bf-chat-message-in var(--bf-duration-layout) var(--ease-settle) both;
|
|
270
|
+
--animate-chat-caret: bf-chat-caret 1s ease-in-out infinite alternate;
|
|
271
|
+
@keyframes bf-chat-message-in {
|
|
272
|
+
from {
|
|
273
|
+
opacity: 0;
|
|
274
|
+
transform: translateY(4px);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
@keyframes bf-chat-caret {
|
|
278
|
+
to {
|
|
279
|
+
opacity: 0.2;
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
|
|
224
283
|
/* @bitforgehq/ui/charts enter motion, on the first render and on every data change (the marks
|
|
225
284
|
are re-created): a line draws along its path (pathLength 1, so the dash is the whole line),
|
|
226
285
|
bars grow from the baseline (scale on the fill box, origin at the baseline), areas and
|
|
@@ -274,6 +333,7 @@
|
|
|
274
333
|
:root {
|
|
275
334
|
color-scheme: light; /* native scrollbars and form controls match the light palette */
|
|
276
335
|
--bf-duration-fast: 150ms; /* colour transitions, reduced-motion fade */
|
|
336
|
+
--bf-duration-layout: 200ms; /* size and position: sidebar width, selection indicators */
|
|
277
337
|
--bf-duration-overlay: 260ms; /* overlays, modal depth */
|
|
278
338
|
--bf-duration-push: 500ms; /* iOS push/pop */
|
|
279
339
|
--bf-z-sticky: 10; /* translucent header */
|