@accelint/design-toolkit 7.0.1 → 8.1.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/README.md +1 -1
- package/catalog-info.yaml +12 -6
- package/dist/components/accordion/context.d.ts +0 -2
- package/dist/components/accordion/group.d.ts +0 -2
- package/dist/components/accordion/group.js +1 -1
- package/dist/components/accordion/group.js.map +1 -1
- package/dist/components/accordion/header.d.ts +0 -2
- package/dist/components/accordion/header.js +1 -1
- package/dist/components/accordion/header.js.map +1 -1
- package/dist/components/accordion/index.d.ts +0 -2
- package/dist/components/accordion/index.js +1 -1
- package/dist/components/accordion/index.js.map +1 -1
- package/dist/components/accordion/panel.d.ts +0 -2
- package/dist/components/accordion/panel.js +1 -1
- package/dist/components/accordion/panel.js.map +1 -1
- package/dist/components/accordion/styles.module.css +65 -0
- package/dist/components/accordion/trigger.d.ts +0 -2
- package/dist/components/accordion/trigger.js +1 -1
- package/dist/components/accordion/trigger.js.map +1 -1
- package/dist/components/accordion/types.d.ts +5 -5
- package/dist/components/action-bar/index.d.ts +1 -1
- package/dist/components/action-bar/index.js +1 -1
- package/dist/components/action-bar/index.js.map +1 -1
- package/dist/components/action-bar/styles.module.css +27 -0
- package/dist/components/action-bar/types.d.ts +3 -1
- package/dist/components/avatar/context.d.ts +0 -3
- package/dist/components/avatar/index.d.ts +0 -3
- package/dist/components/avatar/index.js +1 -1
- package/dist/components/avatar/index.js.map +1 -1
- package/dist/components/avatar/styles.module.css +45 -0
- package/dist/components/avatar/types.d.ts +1 -4
- package/dist/components/badge/context.d.ts +0 -2
- package/dist/components/badge/index.d.ts +0 -2
- package/dist/components/badge/index.js +1 -1
- package/dist/components/badge/index.js.map +1 -1
- package/dist/components/badge/styles.module.css +67 -0
- package/dist/components/badge/types.d.ts +3 -4
- package/dist/components/breadcrumbs/index.js +1 -1
- package/dist/components/breadcrumbs/index.js.map +1 -1
- package/dist/components/breadcrumbs/item.js +1 -1
- package/dist/components/breadcrumbs/item.js.map +1 -1
- package/dist/components/breadcrumbs/styles.module.css +41 -0
- package/dist/components/button/context.d.ts +0 -3
- package/dist/components/button/index.d.ts +0 -3
- package/dist/components/button/index.js +1 -1
- package/dist/components/button/index.js.map +1 -1
- package/dist/components/button/link.d.ts +0 -3
- package/dist/components/button/link.js +1 -1
- package/dist/components/button/link.js.map +1 -1
- package/dist/components/button/styles.module.css +917 -0
- package/dist/components/button/toggle.d.ts +0 -3
- package/dist/components/button/toggle.js +1 -1
- package/dist/components/button/toggle.js.map +1 -1
- package/dist/components/button/types.d.ts +6 -6
- package/dist/components/checkbox/group.js +1 -1
- package/dist/components/checkbox/group.js.map +1 -1
- package/dist/components/checkbox/index.js +1 -1
- package/dist/components/checkbox/index.js.map +1 -1
- package/dist/components/checkbox/styles.module.css +111 -0
- package/dist/components/chip/context.d.ts +3 -6
- package/dist/components/chip/context.js +1 -1
- package/dist/components/chip/context.js.map +1 -1
- package/dist/components/chip/deletable.d.ts +0 -3
- package/dist/components/chip/deletable.js +1 -1
- package/dist/components/chip/deletable.js.map +1 -1
- package/dist/components/chip/index.d.ts +0 -3
- package/dist/components/chip/index.js +1 -1
- package/dist/components/chip/index.js.map +1 -1
- package/dist/components/chip/list.d.ts +0 -3
- package/dist/components/chip/list.js +1 -1
- package/dist/components/chip/list.js.map +1 -1
- package/dist/components/chip/selectable.d.ts +0 -3
- package/dist/components/chip/selectable.js +1 -1
- package/dist/components/chip/selectable.js.map +1 -1
- package/dist/components/chip/styles.module.css +129 -0
- package/dist/components/chip/types.d.ts +7 -8
- package/dist/components/classification-badge/context.d.ts +1 -2
- package/dist/components/classification-badge/index.d.ts +1 -2
- package/dist/components/classification-badge/index.js +1 -1
- package/dist/components/classification-badge/index.js.map +1 -1
- package/dist/components/classification-badge/styles.module.css +63 -0
- package/dist/components/classification-badge/types.d.ts +3 -5
- package/dist/components/classification-banner/context.d.ts +0 -2
- package/dist/components/classification-banner/index.d.ts +0 -2
- package/dist/components/classification-banner/index.js +1 -1
- package/dist/components/classification-banner/index.js.map +1 -1
- package/dist/components/classification-banner/styles.module.css +55 -0
- package/dist/components/classification-banner/types.d.ts +4 -5
- package/dist/components/color-picker/index.js +1 -1
- package/dist/components/color-picker/index.js.map +1 -1
- package/dist/components/color-picker/styles.module.css +43 -0
- package/dist/components/combobox-field/context.d.ts +0 -3
- package/dist/components/combobox-field/index.d.ts +0 -3
- package/dist/components/combobox-field/index.js +1 -1
- package/dist/components/combobox-field/index.js.map +1 -1
- package/dist/components/combobox-field/styles.module.css +101 -0
- package/dist/components/combobox-field/types.d.ts +0 -3
- package/dist/components/coordinate-field/context.d.ts +77 -0
- package/dist/components/coordinate-field/context.js +2 -0
- package/dist/components/coordinate-field/context.js.map +1 -0
- package/dist/components/coordinate-field/coordinate-utils.d.ts +282 -0
- package/dist/components/coordinate-field/coordinate-utils.js +2 -0
- package/dist/components/coordinate-field/coordinate-utils.js.map +1 -0
- package/dist/components/coordinate-field/index.d.ts +66 -0
- package/dist/components/coordinate-field/index.js +4 -0
- package/dist/components/coordinate-field/index.js.map +1 -0
- package/dist/components/coordinate-field/segment-configs.d.ts +163 -0
- package/dist/components/coordinate-field/segment-configs.js +2 -0
- package/dist/components/coordinate-field/segment-configs.js.map +1 -0
- package/dist/components/coordinate-field/segment.d.ts +39 -0
- package/dist/components/coordinate-field/segment.js +4 -0
- package/dist/components/coordinate-field/segment.js.map +1 -0
- package/dist/components/coordinate-field/styles.module.css +129 -0
- package/dist/components/coordinate-field/types.d.ts +194 -0
- package/dist/components/coordinate-field/types.js +2 -0
- package/dist/components/coordinate-field/types.js.map +1 -0
- package/dist/components/coordinate-field/width-utils.d.ts +29 -0
- package/dist/components/coordinate-field/width-utils.js +2 -0
- package/dist/components/coordinate-field/width-utils.js.map +1 -0
- package/dist/components/date-field/index.d.ts +0 -2
- package/dist/components/date-field/index.js +1 -1
- package/dist/components/date-field/index.js.map +1 -1
- package/dist/components/date-field/styles.module.css +103 -0
- package/dist/components/date-field/types.d.ts +1 -3
- package/dist/components/details-list/context.d.ts +0 -2
- package/dist/components/details-list/index.d.ts +0 -2
- package/dist/components/details-list/index.js +1 -1
- package/dist/components/details-list/index.js.map +1 -1
- package/dist/components/details-list/label.d.ts +0 -2
- package/dist/components/details-list/styles.module.css +52 -0
- package/dist/components/details-list/types.d.ts +2 -3
- package/dist/components/details-list/value.d.ts +0 -2
- package/dist/components/dialog/content.js +1 -1
- package/dist/components/dialog/content.js.map +1 -1
- package/dist/components/dialog/footer.js +1 -1
- package/dist/components/dialog/footer.js.map +1 -1
- package/dist/components/dialog/index.js +1 -1
- package/dist/components/dialog/index.js.map +1 -1
- package/dist/components/dialog/styles.module.css +86 -0
- package/dist/components/dialog/title.js +1 -1
- package/dist/components/dialog/title.js.map +1 -1
- package/dist/components/dialog/trigger.d.ts +5 -1
- package/dist/components/dialog/trigger.js +1 -1
- package/dist/components/dialog/trigger.js.map +1 -1
- package/dist/components/divider/index.js +1 -1
- package/dist/components/divider/index.js.map +1 -1
- package/dist/components/divider/styles.module.css +44 -0
- package/dist/components/drawer/back.js +1 -1
- package/dist/components/drawer/back.js.map +1 -1
- package/dist/components/drawer/close.js +1 -1
- package/dist/components/drawer/close.js.map +1 -1
- package/dist/components/drawer/content.js +1 -3
- package/dist/components/drawer/content.js.map +1 -1
- package/dist/components/drawer/context.d.ts +0 -4
- package/dist/components/drawer/footer.js +1 -3
- package/dist/components/drawer/footer.js.map +1 -1
- package/dist/components/drawer/header-title.d.ts +0 -4
- package/dist/components/drawer/header-title.js +1 -3
- package/dist/components/drawer/header-title.js.map +1 -1
- package/dist/components/drawer/header.js +1 -1
- package/dist/components/drawer/header.js.map +1 -1
- package/dist/components/drawer/index.d.ts +0 -4
- package/dist/components/drawer/index.js +1 -1
- package/dist/components/drawer/index.js.map +1 -1
- package/dist/components/drawer/layout-main.js +1 -3
- package/dist/components/drawer/layout-main.js.map +1 -1
- package/dist/components/drawer/layout.d.ts +0 -4
- package/dist/components/drawer/layout.js +1 -3
- package/dist/components/drawer/layout.js.map +1 -1
- package/dist/components/drawer/menu-item.d.ts +0 -4
- package/dist/components/drawer/menu-item.js +1 -1
- package/dist/components/drawer/menu-item.js.map +1 -1
- package/dist/components/drawer/menu.d.ts +0 -4
- package/dist/components/drawer/menu.js +1 -3
- package/dist/components/drawer/menu.js.map +1 -1
- package/dist/components/drawer/panel.js +1 -3
- package/dist/components/drawer/panel.js.map +1 -1
- package/dist/components/drawer/styles.module.css +304 -0
- package/dist/components/drawer/trigger.d.ts +0 -4
- package/dist/components/drawer/trigger.js +1 -1
- package/dist/components/drawer/trigger.js.map +1 -1
- package/dist/components/drawer/types.d.ts +3 -5
- package/dist/components/drawer/view.js +1 -1
- package/dist/components/drawer/view.js.map +1 -1
- package/dist/components/flashcard/index.d.ts +57 -0
- package/dist/components/flashcard/index.js +4 -0
- package/dist/components/flashcard/index.js.map +1 -0
- package/dist/components/flashcard/styles.module.css +60 -0
- package/dist/components/flashcard/types.d.ts +13 -0
- package/dist/components/hero/index.js +1 -1
- package/dist/components/hero/index.js.map +1 -1
- package/dist/components/hero/styles.module.css +51 -0
- package/dist/components/hotkey/context.d.ts +0 -2
- package/dist/components/hotkey/index.d.ts +0 -2
- package/dist/components/hotkey/index.js +1 -1
- package/dist/components/hotkey/index.js.map +1 -1
- package/dist/components/hotkey/set.d.ts +6 -0
- package/dist/components/hotkey/set.js +4 -0
- package/dist/components/hotkey/set.js.map +1 -0
- package/dist/components/hotkey/styles.module.css +36 -0
- package/dist/components/hotkey/types.d.ts +5 -6
- package/dist/components/icon/index.js +1 -1
- package/dist/components/icon/index.js.map +1 -1
- package/dist/components/icon/styles.module.css +38 -0
- package/dist/components/input/context.d.ts +0 -4
- package/dist/components/input/index.d.ts +0 -4
- package/dist/components/input/index.js +1 -1
- package/dist/components/input/index.js.map +1 -1
- package/dist/components/input/styles.module.css +175 -0
- package/dist/components/input/types.d.ts +7 -6
- package/dist/components/kanban/card-body.d.ts +12 -0
- package/dist/components/kanban/card-body.js +4 -0
- package/dist/components/kanban/card-body.js.map +1 -0
- package/dist/components/kanban/card-header-actions.d.ts +12 -0
- package/dist/components/kanban/card-header-actions.js +4 -0
- package/dist/components/kanban/card-header-actions.js.map +1 -0
- package/dist/components/kanban/card-header-title.d.ts +12 -0
- package/dist/components/kanban/card-header-title.js +4 -0
- package/dist/components/kanban/card-header-title.js.map +1 -0
- package/dist/components/kanban/card-header.d.ts +12 -0
- package/dist/components/kanban/card-header.js +4 -0
- package/dist/components/kanban/card-header.js.map +1 -0
- package/dist/components/kanban/card.d.ts +12 -0
- package/dist/components/kanban/card.js +4 -0
- package/dist/components/kanban/card.js.map +1 -0
- package/dist/components/kanban/column-actions.d.ts +12 -0
- package/dist/components/kanban/column-actions.js +4 -0
- package/dist/components/kanban/column-actions.js.map +1 -0
- package/dist/components/kanban/column-container.d.ts +12 -0
- package/dist/components/kanban/column-container.js +4 -0
- package/dist/components/kanban/column-container.js.map +1 -0
- package/dist/components/kanban/column-content.d.ts +12 -0
- package/dist/components/kanban/column-content.js +4 -0
- package/dist/components/kanban/column-content.js.map +1 -0
- package/dist/components/kanban/column-header-actions.d.ts +12 -0
- package/dist/components/kanban/column-header-actions.js +4 -0
- package/dist/components/kanban/column-header-actions.js.map +1 -0
- package/dist/components/kanban/column-header-drag-handle.d.ts +5 -0
- package/dist/components/kanban/column-header-drag-handle.js +4 -0
- package/dist/components/kanban/column-header-drag-handle.js.map +1 -0
- package/dist/components/kanban/column-header-title.d.ts +12 -0
- package/dist/components/kanban/column-header-title.js +4 -0
- package/dist/components/kanban/column-header-title.js.map +1 -0
- package/dist/components/kanban/column-header.d.ts +12 -0
- package/dist/components/kanban/column-header.js +4 -0
- package/dist/components/kanban/column-header.js.map +1 -0
- package/dist/components/kanban/column.d.ts +12 -0
- package/dist/components/kanban/column.js +4 -0
- package/dist/components/kanban/column.js.map +1 -0
- package/dist/components/kanban/context.d.ts +101 -0
- package/dist/components/kanban/context.js +2 -0
- package/dist/components/kanban/context.js.map +1 -0
- package/dist/components/kanban/header-actions.d.ts +12 -0
- package/dist/components/kanban/header-actions.js +4 -0
- package/dist/components/kanban/header-actions.js.map +1 -0
- package/dist/components/kanban/header-search.d.ts +12 -0
- package/dist/components/kanban/header-search.js +4 -0
- package/dist/components/kanban/header-search.js.map +1 -0
- package/dist/components/kanban/header-title.d.ts +12 -0
- package/dist/components/kanban/header-title.js +4 -0
- package/dist/components/kanban/header-title.js.map +1 -0
- package/dist/components/kanban/header.d.ts +12 -0
- package/dist/components/kanban/header.js +4 -0
- package/dist/components/kanban/header.js.map +1 -0
- package/dist/components/kanban/index.d.ts +9 -0
- package/dist/components/kanban/index.js +2 -0
- package/dist/components/kanban/index.js.map +1 -0
- package/dist/components/kanban/kanban.d.ts +18 -0
- package/dist/components/kanban/kanban.js +4 -0
- package/dist/components/kanban/kanban.js.map +1 -0
- package/dist/components/kanban/mock-data.d.ts +14 -0
- package/dist/components/kanban/mock-data.js +2 -0
- package/dist/components/kanban/mock-data.js.map +1 -0
- package/dist/components/kanban/styles.module.css +117 -0
- package/dist/components/kanban/types.d.ts +50 -0
- package/dist/components/kanban/types.js +2 -0
- package/dist/components/kanban/types.js.map +1 -0
- package/dist/components/label/index.js +1 -1
- package/dist/components/label/index.js.map +1 -1
- package/dist/components/label/styles.module.css +23 -0
- package/dist/components/lines/index.d.ts +0 -2
- package/dist/components/lines/index.js +1 -1
- package/dist/components/lines/index.js.map +1 -1
- package/dist/components/lines/styles.module.css +95 -0
- package/dist/components/lines/types.d.ts +4 -5
- package/dist/components/link/index.js +1 -1
- package/dist/components/link/index.js.map +1 -1
- package/dist/components/link/styles.module.css +37 -0
- package/dist/components/menu/context.d.ts +0 -2
- package/dist/components/menu/index.d.ts +0 -2
- package/dist/components/menu/index.js +1 -1
- package/dist/components/menu/index.js.map +1 -1
- package/dist/components/menu/item-description.js +1 -1
- package/dist/components/menu/item-description.js.map +1 -1
- package/dist/components/menu/item-label.js +1 -1
- package/dist/components/menu/item-label.js.map +1 -1
- package/dist/components/menu/item.d.ts +0 -2
- package/dist/components/menu/item.js +1 -1
- package/dist/components/menu/item.js.map +1 -1
- package/dist/components/menu/section.d.ts +0 -2
- package/dist/components/menu/section.js +1 -1
- package/dist/components/menu/section.js.map +1 -1
- package/dist/components/menu/separator.js +1 -1
- package/dist/components/menu/separator.js.map +1 -1
- package/dist/components/menu/styles.module.css +415 -0
- package/dist/components/menu/trigger.d.ts +5 -1
- package/dist/components/menu/trigger.js +1 -1
- package/dist/components/menu/trigger.js.map +1 -1
- package/dist/components/menu/types.d.ts +2 -3
- package/dist/components/notice/index.d.ts +0 -3
- package/dist/components/notice/index.js +1 -1
- package/dist/components/notice/index.js.map +1 -1
- package/dist/components/notice/list.d.ts +0 -3
- package/dist/components/notice/list.js +1 -1
- package/dist/components/notice/list.js.map +1 -1
- package/dist/components/notice/notice-icon.d.ts +0 -3
- package/dist/components/notice/styles.module.css +133 -0
- package/dist/components/notice/types.d.ts +3 -6
- package/dist/components/options/index.js +1 -1
- package/dist/components/options/index.js.map +1 -1
- package/dist/components/options/item-content.d.ts +2 -5
- package/dist/components/options/item-content.js +1 -3
- package/dist/components/options/item-content.js.map +1 -1
- package/dist/components/options/item-description.d.ts +2 -5
- package/dist/components/options/item-description.js +1 -3
- package/dist/components/options/item-description.js.map +1 -1
- package/dist/components/options/item-label.d.ts +2 -5
- package/dist/components/options/item-label.js +1 -3
- package/dist/components/options/item-label.js.map +1 -1
- package/dist/components/options/item.js +1 -1
- package/dist/components/options/item.js.map +1 -1
- package/dist/components/options/section.js +1 -3
- package/dist/components/options/section.js.map +1 -1
- package/dist/components/options/styles.module.css +397 -0
- package/dist/components/options/types.d.ts +2 -3
- package/dist/components/pagination/context.d.ts +9 -0
- package/dist/components/pagination/context.js +4 -0
- package/dist/components/pagination/context.js.map +1 -0
- package/dist/components/pagination/index.d.ts +25 -0
- package/dist/components/pagination/index.js +4 -0
- package/dist/components/pagination/index.js.map +1 -0
- package/dist/components/pagination/next.d.ts +10 -0
- package/dist/components/pagination/next.js +4 -0
- package/dist/components/pagination/next.js.map +1 -0
- package/dist/components/pagination/pages.d.ts +10 -0
- package/dist/components/pagination/pages.js +4 -0
- package/dist/components/pagination/pages.js.map +1 -0
- package/dist/components/pagination/prev.d.ts +10 -0
- package/dist/components/pagination/prev.js +4 -0
- package/dist/components/pagination/prev.js.map +1 -0
- package/dist/components/pagination/styles.module.css +25 -0
- package/dist/components/pagination/types.d.ts +35 -0
- package/dist/components/pagination/types.js +2 -0
- package/dist/components/pagination/types.js.map +1 -0
- package/dist/components/pagination/utils.d.ts +16 -0
- package/dist/components/pagination/utils.js +2 -0
- package/dist/components/pagination/utils.js.map +1 -0
- package/dist/components/popover/content.d.ts +2 -4
- package/dist/components/popover/content.js +1 -1
- package/dist/components/popover/content.js.map +1 -1
- package/dist/components/popover/footer.d.ts +2 -5
- package/dist/components/popover/footer.js +1 -1
- package/dist/components/popover/footer.js.map +1 -1
- package/dist/components/popover/index.d.ts +15 -19
- package/dist/components/popover/index.js +1 -1
- package/dist/components/popover/index.js.map +1 -1
- package/dist/components/popover/styles.module.css +32 -0
- package/dist/components/popover/title.d.ts +2 -4
- package/dist/components/popover/title.js +1 -1
- package/dist/components/popover/title.js.map +1 -1
- package/dist/components/popover/trigger.d.ts +1 -1
- package/dist/components/popover/trigger.js +1 -1
- package/dist/components/popover/trigger.js.map +1 -1
- package/dist/components/popover/types.d.ts +11 -22
- package/dist/components/query-builder/index.js +1 -1
- package/dist/components/query-builder/index.js.map +1 -1
- package/dist/components/query-builder/rule-group.js +1 -1
- package/dist/components/query-builder/rule-group.js.map +1 -1
- package/dist/components/query-builder/rule.js +1 -1
- package/dist/components/query-builder/rule.js.map +1 -1
- package/dist/components/query-builder/styles.module.css +87 -0
- package/dist/components/query-builder/value-editor.js +1 -1
- package/dist/components/query-builder/value-editor.js.map +1 -1
- package/dist/components/radio/group.js +1 -1
- package/dist/components/radio/group.js.map +1 -1
- package/dist/components/radio/index.js +1 -1
- package/dist/components/radio/index.js.map +1 -1
- package/dist/components/radio/styles.module.css +118 -0
- package/dist/components/search-field/context.d.ts +0 -4
- package/dist/components/search-field/index.d.ts +0 -4
- package/dist/components/search-field/index.js +1 -1
- package/dist/components/search-field/index.js.map +1 -1
- package/dist/components/search-field/styles.module.css +104 -0
- package/dist/components/search-field/types.d.ts +2 -7
- package/dist/components/select-field/context.d.ts +0 -3
- package/dist/components/select-field/index.d.ts +0 -3
- package/dist/components/select-field/index.js +1 -1
- package/dist/components/select-field/index.js.map +1 -1
- package/dist/components/select-field/styles.module.css +78 -0
- package/dist/components/select-field/types.d.ts +0 -3
- package/dist/components/sidenav/avatar.js +1 -1
- package/dist/components/sidenav/avatar.js.map +1 -1
- package/dist/components/sidenav/content.js +1 -1
- package/dist/components/sidenav/content.js.map +1 -1
- package/dist/components/sidenav/footer.js +1 -3
- package/dist/components/sidenav/footer.js.map +1 -1
- package/dist/components/sidenav/header.js +1 -1
- package/dist/components/sidenav/header.js.map +1 -1
- package/dist/components/sidenav/index.js +1 -1
- package/dist/components/sidenav/index.js.map +1 -1
- package/dist/components/sidenav/item.js +1 -1
- package/dist/components/sidenav/item.js.map +1 -1
- package/dist/components/sidenav/link.js +1 -1
- package/dist/components/sidenav/link.js.map +1 -1
- package/dist/components/sidenav/menu-item.js +1 -3
- package/dist/components/sidenav/menu-item.js.map +1 -1
- package/dist/components/sidenav/menu.js +1 -1
- package/dist/components/sidenav/menu.js.map +1 -1
- package/dist/components/sidenav/styles.module.css +311 -0
- package/dist/components/sidenav/types.d.ts +1 -2
- package/dist/components/skeleton/index.d.ts +2 -4
- package/dist/components/skeleton/index.js +1 -1
- package/dist/components/skeleton/index.js.map +1 -1
- package/dist/components/skeleton/styles.module.css +33 -0
- package/dist/components/skeleton/types.d.ts +4 -5
- package/dist/components/slider/index.js +1 -1
- package/dist/components/slider/index.js.map +1 -1
- package/dist/components/slider/styles.module.css +220 -0
- package/dist/components/switch/index.js +1 -1
- package/dist/components/switch/index.js.map +1 -1
- package/dist/components/switch/styles.module.css +116 -0
- package/dist/components/table/body.d.ts +0 -3
- package/dist/components/table/body.js +1 -1
- package/dist/components/table/body.js.map +1 -1
- package/dist/components/table/cell.d.ts +0 -3
- package/dist/components/table/cell.js +1 -1
- package/dist/components/table/cell.js.map +1 -1
- package/dist/components/table/context.d.ts +0 -3
- package/dist/components/table/header-cell.d.ts +0 -3
- package/dist/components/table/header-cell.js +1 -1
- package/dist/components/table/header-cell.js.map +1 -1
- package/dist/components/table/header.d.ts +0 -3
- package/dist/components/table/header.js +1 -1
- package/dist/components/table/header.js.map +1 -1
- package/dist/components/table/index.d.ts +1 -4
- package/dist/components/table/index.js +1 -1
- package/dist/components/table/index.js.map +1 -1
- package/dist/components/table/row.d.ts +0 -3
- package/dist/components/table/row.js +1 -1
- package/dist/components/table/row.js.map +1 -1
- package/dist/components/table/styles.module.css +98 -0
- package/dist/components/table/types.d.ts +37 -16
- package/dist/components/tabs/index.js +1 -1
- package/dist/components/tabs/index.js.map +1 -1
- package/dist/components/tabs/list.js +1 -1
- package/dist/components/tabs/list.js.map +1 -1
- package/dist/components/tabs/panel.js +1 -1
- package/dist/components/tabs/panel.js.map +1 -1
- package/dist/components/tabs/styles.module.css +140 -0
- package/dist/components/tabs/tab.js +1 -1
- package/dist/components/tabs/tab.js.map +1 -1
- package/dist/components/text-area-field/index.js +1 -1
- package/dist/components/text-area-field/index.js.map +1 -1
- package/dist/components/text-area-field/styles.module.css +67 -0
- package/dist/components/text-field/context.d.ts +0 -4
- package/dist/components/text-field/index.d.ts +24 -4
- package/dist/components/text-field/index.js +1 -1
- package/dist/components/text-field/index.js.map +1 -1
- package/dist/components/text-field/styles.module.css +37 -0
- package/dist/components/text-field/types.d.ts +0 -4
- package/dist/components/time-field/index.d.ts +0 -3
- package/dist/components/time-field/index.js +1 -1
- package/dist/components/time-field/index.js.map +1 -1
- package/dist/components/time-field/styles.module.css +75 -0
- package/dist/components/time-field/types.d.ts +2 -5
- package/dist/components/tooltip/index.js +1 -1
- package/dist/components/tooltip/index.js.map +1 -1
- package/dist/components/tooltip/styles.module.css +20 -0
- package/dist/components/tree/context.d.ts +0 -2
- package/dist/components/tree/context.js +1 -1
- package/dist/components/tree/context.js.map +1 -1
- package/dist/components/tree/index.d.ts +0 -2
- package/dist/components/tree/index.js +1 -1
- package/dist/components/tree/index.js.map +1 -1
- package/dist/components/tree/item-actions.js +1 -1
- package/dist/components/tree/item-actions.js.map +1 -1
- package/dist/components/tree/item-content.d.ts +0 -2
- package/dist/components/tree/item-content.js +1 -1
- package/dist/components/tree/item-content.js.map +1 -1
- package/dist/components/tree/item-description.js +1 -1
- package/dist/components/tree/item-description.js.map +1 -1
- package/dist/components/tree/item-label.js +1 -1
- package/dist/components/tree/item-label.js.map +1 -1
- package/dist/components/tree/item-prefix-icon.js +1 -1
- package/dist/components/tree/item-prefix-icon.js.map +1 -1
- package/dist/components/tree/item.d.ts +0 -2
- package/dist/components/tree/item.js +1 -1
- package/dist/components/tree/item.js.map +1 -1
- package/dist/components/tree/lines.js +1 -1
- package/dist/components/tree/lines.js.map +1 -1
- package/dist/components/tree/styles.module.css +183 -0
- package/dist/components/tree/types.d.ts +6 -5
- package/dist/hooks/coordinate-field/index.d.ts +9 -0
- package/dist/hooks/coordinate-field/index.js +2 -0
- package/dist/hooks/coordinate-field/index.js.map +1 -0
- package/dist/hooks/coordinate-field/use-coordinate-copy.d.ts +19 -0
- package/dist/hooks/coordinate-field/use-coordinate-copy.js +2 -0
- package/dist/hooks/coordinate-field/use-coordinate-copy.js.map +1 -0
- package/dist/hooks/coordinate-field/use-coordinate-field-state.d.ts +28 -0
- package/dist/hooks/coordinate-field/use-coordinate-field-state.js +2 -0
- package/dist/hooks/coordinate-field/use-coordinate-field-state.js.map +1 -0
- package/dist/hooks/coordinate-field/use-coordinate-field.d.ts +49 -0
- package/dist/hooks/coordinate-field/use-coordinate-field.js +2 -0
- package/dist/hooks/coordinate-field/use-coordinate-field.js.map +1 -0
- package/dist/hooks/coordinate-field/use-coordinate-focus.d.ts +21 -0
- package/dist/hooks/coordinate-field/use-coordinate-focus.js +2 -0
- package/dist/hooks/coordinate-field/use-coordinate-focus.js.map +1 -0
- package/dist/hooks/coordinate-field/use-coordinate-paste.d.ts +21 -0
- package/dist/hooks/coordinate-field/use-coordinate-paste.js +2 -0
- package/dist/hooks/coordinate-field/use-coordinate-paste.js.map +1 -0
- package/dist/hooks/coordinate-field/use-timeout-cleanup.d.ts +6 -0
- package/dist/hooks/coordinate-field/use-timeout-cleanup.js +2 -0
- package/dist/hooks/coordinate-field/use-timeout-cleanup.js.map +1 -0
- package/dist/hooks/kanban/index.d.ts +93 -0
- package/dist/hooks/kanban/index.js +2 -0
- package/dist/hooks/kanban/index.js.map +1 -0
- package/dist/index.d.ts +60 -61
- package/dist/index.js +1 -1
- package/dist/index.module.css +19 -0
- package/dist/lib/utils.d.ts +1 -17
- package/dist/lib/utils.js +1 -1
- package/dist/lib/utils.js.map +1 -1
- package/dist/metafile-esm.json +1 -1
- package/dist/providers/theme-provider.d.ts +1 -1
- package/dist/providers/theme-provider.js +1 -1
- package/dist/providers/theme-provider.js.map +1 -1
- package/package.json +37 -49
- package/dist/components/accordion/styles.d.ts +0 -56
- package/dist/components/accordion/styles.js +0 -2
- package/dist/components/accordion/styles.js.map +0 -1
- package/dist/components/action-bar/styles.d.ts +0 -5
- package/dist/components/action-bar/styles.js +0 -2
- package/dist/components/action-bar/styles.js.map +0 -1
- package/dist/components/avatar/styles.d.ts +0 -48
- package/dist/components/avatar/styles.js +0 -2
- package/dist/components/avatar/styles.js.map +0 -1
- package/dist/components/badge/styles.d.ts +0 -32
- package/dist/components/badge/styles.js +0 -2
- package/dist/components/badge/styles.js.map +0 -1
- package/dist/components/breadcrumbs/styles.d.ts +0 -48
- package/dist/components/breadcrumbs/styles.js +0 -2
- package/dist/components/breadcrumbs/styles.js.map +0 -1
- package/dist/components/button/styles.d.ts +0 -129
- package/dist/components/button/styles.js +0 -2
- package/dist/components/button/styles.js.map +0 -1
- package/dist/components/checkbox/styles.d.ts +0 -54
- package/dist/components/checkbox/styles.js +0 -2
- package/dist/components/checkbox/styles.js.map +0 -1
- package/dist/components/chip/styles.d.ts +0 -247
- package/dist/components/chip/styles.js +0 -2
- package/dist/components/chip/styles.js.map +0 -1
- package/dist/components/classification-badge/styles.d.ts +0 -38
- package/dist/components/classification-badge/styles.js +0 -2
- package/dist/components/classification-badge/styles.js.map +0 -1
- package/dist/components/classification-banner/styles.d.ts +0 -38
- package/dist/components/classification-banner/styles.js +0 -2
- package/dist/components/classification-banner/styles.js.map +0 -1
- package/dist/components/color-picker/styles.d.ts +0 -42
- package/dist/components/color-picker/styles.js +0 -2
- package/dist/components/color-picker/styles.js.map +0 -1
- package/dist/components/combobox-field/styles.d.ts +0 -72
- package/dist/components/combobox-field/styles.js +0 -2
- package/dist/components/combobox-field/styles.js.map +0 -1
- package/dist/components/date-field/styles.d.ts +0 -59
- package/dist/components/date-field/styles.js +0 -2
- package/dist/components/date-field/styles.js.map +0 -1
- package/dist/components/details-list/styles.d.ts +0 -65
- package/dist/components/details-list/styles.js +0 -2
- package/dist/components/details-list/styles.js.map +0 -1
- package/dist/components/dialog/styles.d.ts +0 -60
- package/dist/components/dialog/styles.js +0 -2
- package/dist/components/dialog/styles.js.map +0 -1
- package/dist/components/divider/styles.d.ts +0 -5
- package/dist/components/divider/styles.js +0 -2
- package/dist/components/divider/styles.js.map +0 -1
- package/dist/components/drawer/styles.d.ts +0 -152
- package/dist/components/drawer/styles.js +0 -2
- package/dist/components/drawer/styles.js.map +0 -1
- package/dist/components/hero/styles.d.ts +0 -48
- package/dist/components/hero/styles.js +0 -2
- package/dist/components/hero/styles.js.map +0 -1
- package/dist/components/hotkey/hotkey-set.d.ts +0 -9
- package/dist/components/hotkey/hotkey-set.js +0 -4
- package/dist/components/hotkey/hotkey-set.js.map +0 -1
- package/dist/components/hotkey/styles.d.ts +0 -53
- package/dist/components/hotkey/styles.js +0 -2
- package/dist/components/hotkey/styles.js.map +0 -1
- package/dist/components/icon/styles.d.ts +0 -5
- package/dist/components/icon/styles.js +0 -2
- package/dist/components/icon/styles.js.map +0 -1
- package/dist/components/input/styles.d.ts +0 -142
- package/dist/components/input/styles.js +0 -2
- package/dist/components/input/styles.js.map +0 -1
- package/dist/components/label/styles.d.ts +0 -5
- package/dist/components/label/styles.js +0 -2
- package/dist/components/label/styles.js.map +0 -1
- package/dist/components/lines/styles.d.ts +0 -32
- package/dist/components/lines/styles.js +0 -2
- package/dist/components/lines/styles.js.map +0 -1
- package/dist/components/link/styles.d.ts +0 -5
- package/dist/components/link/styles.js +0 -2
- package/dist/components/link/styles.js.map +0 -1
- package/dist/components/menu/styles.d.ts +0 -71
- package/dist/components/menu/styles.js +0 -2
- package/dist/components/menu/styles.js.map +0 -1
- package/dist/components/notice/styles.d.ts +0 -60
- package/dist/components/notice/styles.js +0 -2
- package/dist/components/notice/styles.js.map +0 -1
- package/dist/components/options/styles.d.ts +0 -72
- package/dist/components/options/styles.js +0 -2
- package/dist/components/options/styles.js.map +0 -1
- package/dist/components/popover/body.d.ts +0 -8
- package/dist/components/popover/body.js +0 -4
- package/dist/components/popover/body.js.map +0 -1
- package/dist/components/popover/styles.d.ts +0 -48
- package/dist/components/popover/styles.js +0 -2
- package/dist/components/popover/styles.js.map +0 -1
- package/dist/components/query-builder/styles.d.ts +0 -152
- package/dist/components/query-builder/styles.js +0 -2
- package/dist/components/query-builder/styles.js.map +0 -1
- package/dist/components/radio/styles.d.ts +0 -54
- package/dist/components/radio/styles.js +0 -2
- package/dist/components/radio/styles.js.map +0 -1
- package/dist/components/search-field/styles.d.ts +0 -53
- package/dist/components/search-field/styles.js +0 -2
- package/dist/components/search-field/styles.js.map +0 -1
- package/dist/components/select-field/styles.d.ts +0 -66
- package/dist/components/select-field/styles.js +0 -2
- package/dist/components/select-field/styles.js.map +0 -1
- package/dist/components/sidenav/styles.d.ts +0 -156
- package/dist/components/sidenav/styles.js +0 -2
- package/dist/components/sidenav/styles.js.map +0 -1
- package/dist/components/skeleton/styles.d.ts +0 -23
- package/dist/components/skeleton/styles.js +0 -2
- package/dist/components/skeleton/styles.js.map +0 -1
- package/dist/components/slider/styles.d.ts +0 -84
- package/dist/components/slider/styles.js +0 -2
- package/dist/components/slider/styles.js.map +0 -1
- package/dist/components/switch/styles.d.ts +0 -44
- package/dist/components/switch/styles.js +0 -2
- package/dist/components/switch/styles.js.map +0 -1
- package/dist/components/table/styles.d.ts +0 -134
- package/dist/components/table/styles.js +0 -2
- package/dist/components/table/styles.js.map +0 -1
- package/dist/components/tabs/styles.d.ts +0 -48
- package/dist/components/tabs/styles.js +0 -2
- package/dist/components/tabs/styles.js.map +0 -1
- package/dist/components/text-area-field/styles.d.ts +0 -54
- package/dist/components/text-area-field/styles.js +0 -2
- package/dist/components/text-area-field/styles.js.map +0 -1
- package/dist/components/text-field/styles.d.ts +0 -54
- package/dist/components/text-field/styles.js +0 -2
- package/dist/components/text-field/styles.js.map +0 -1
- package/dist/components/time-field/styles.d.ts +0 -69
- package/dist/components/time-field/styles.js +0 -2
- package/dist/components/time-field/styles.js.map +0 -1
- package/dist/components/tooltip/styles.d.ts +0 -5
- package/dist/components/tooltip/styles.js +0 -2
- package/dist/components/tooltip/styles.js.map +0 -1
- package/dist/components/tree/styles.d.ts +0 -128
- package/dist/components/tree/styles.js +0 -2
- package/dist/components/tree/styles.js.map +0 -1
- package/dist/index.css +0 -196
- package/dist/styles.css +0 -9484
- package/dist/tokens/themes.css +0 -882
- package/dist/tokens/themes.d.ts +0 -1
- package/dist/tokens/tokens.css +0 -202
- package/dist/tokens/tokens.d.ts +0 -468
- package/dist/tokens/tokens.js +0 -2
- package/dist/tokens/tokens.js.map +0 -1
- package/dist/tokens/types.d.ts +0 -308
- package/dist/variants/variants.css +0 -86
- package/dist/variants/variants.d.ts +0 -2
- /package/dist/{tokens → components/flashcard}/types.js +0 -0
- /package/dist/{tokens → components/flashcard}/types.js.map +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import {jsx,Fragment}from'react/jsx-runtime';import'client-only';import {useCallback}from'react';import {useValueEditor}from'react-querybuilder';import {Checkbox}from'../checkbox/index.js';import {Radio}from'../radio/index.js';import {RadioGroup}from'../radio/group.js';import {Switch}from'../switch/index.js';import {TextAreaField}from'../text-area-field/index.js';import {TextField}from'../text-field/index.js';import {multiValueOperators}from'./constants.js';import {getValidationResult}from'./utils.js';import {ValueSelector}from'./value-selector.js';function
|
|
3
|
+
import {jsx,Fragment}from'react/jsx-runtime';import'client-only';import {useCallback}from'react';import {useValueEditor}from'react-querybuilder';import {Checkbox}from'../checkbox/index.js';import {Radio}from'../radio/index.js';import {RadioGroup}from'../radio/group.js';import {Switch}from'../switch/index.js';import {TextAreaField}from'../text-area-field/index.js';import {TextField}from'../text-field/index.js';import {multiValueOperators}from'./constants.js';import x from'./styles.module.css';import {getValidationResult}from'./utils.js';import {ValueSelector}from'./value-selector.js';function R({className:a,disabled:r,fieldData:{name:e,validator:i},handleOnChange:o,rule:t,value:l}){const{valid:n}=getValidationResult(t,i);return jsx(Checkbox,{classNames:{checkbox:a},isDisabled:r,isSelected:l,onChange:o,"aria-invalid":!n,"aria-label":e})}function N({className:a,disabled:r,fieldData:{name:e,validator:i},handleOnChange:o,rule:t,value:l,values:n}){const{valid:d}=getValidationResult(t,i);return jsx(RadioGroup,{classNames:{group:a},value:l,isDisabled:r,onChange:o,"aria-invalid":!d,"aria-label":e,"aria-labelledby":e,children:n?.map(s=>jsx(Radio,{value:s.value,children:s.label},s.name))})}const S=[];function w({className:a,disabled:r,fieldData:{name:e,validator:i},handleOnChange:o,rule:t,type:l,value:n,values:d=S,...s}){const{valid:m}=getValidationResult(t,i);return jsx(ValueSelector,{...s,className:a,disabled:r,multiple:l==="multiselect",options:d,title:e,validation:!m,value:n,handleOnChange:o,"aria-labelledby":e})}function I({className:a,disabled:r,fieldData:{name:e,validator:i},handleOnChange:o,rule:t,value:l}){const{valid:n}=getValidationResult(t,i);return jsx(Switch,{classNames:{switch:a},isDisabled:r,isSelected:!!l,onChange:o,"aria-invalid":!n,"aria-label":e,"aria-labelledby":e})}function T({disabled:a,fieldData:{name:r,placeholder:e,validator:i},handleOnChange:o,inputType:t,rule:l,value:n,className:d}){const{valid:s,reasons:m}=getValidationResult(l,i);return jsx(TextField,{inputProps:{placeholder:e,type:t??"text"},size:"small",value:n,classNames:{field:d,input:{container:x.textInput}},isDisabled:a,isInvalid:!s,onChange:o,"aria-invalid":!s,"aria-label":r,"aria-labelledby":r,errorMessage:m?.join("/n")})}function O({className:a,disabled:r,fieldData:{name:e,placeholder:i,validator:o},handleOnChange:t,rule:l,value:n}){const{valid:d,reasons:s}=getValidationResult(l,o);return jsx(TextAreaField,{classNames:{field:a},size:"small",errorMessage:s?.join("/n"),inputProps:{placeholder:i},value:n,isDisabled:r,isInvalid:!d,onChange:t,"aria-label":e,"aria-invalid":!d,"aria-labelledby":e})}const A={checkbox:R,radio:N,select:w,switch:I,text:T,textarea:O};function W(a){const{fieldData:{name:r,valueEditorType:e},operator:i,rule:o}=a,{valueAsArray:t,multiValueHandler:l}=useValueEditor({...a,skipHook:true}),n=useCallback(p=>({...o,value:t[p]}),[o,t]),d=useCallback(p=>l(p,0),[l]),s=useCallback(p=>l(p,1),[l]),m=(typeof e=="function"?e(i):e)??"text",f=A?.[m];return i==="null"||i==="notNull"||!f?null:multiValueOperators.includes(i)?jsx(Fragment,{children:["start","end"].map((p,v)=>jsx("div",{children:jsx(f,{...a,rule:n(v),value:t[v],handleOnChange:v?s:d})},`${r}-${p}`))}):jsx("div",{children:jsx(f,{...a})})}export{W as ValueEditor};//# sourceMappingURL=value-editor.js.map
|
|
4
4
|
//# sourceMappingURL=value-editor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/query-builder/value-editor.tsx"],"names":["rule","valid","validator","jsx","Checkbox","p","u","V","value","disabled","handleOnChange","name","values","option","defaultOptions","SelectValueEditor","rest","ValueSelector","type","k","getValidationResult","Switch","g","TextValueEditor","inputType","C","reasons","placeholder","P","RadioGroupValueEditor","SwitchValueEditor","TextareaValueEditor","ValueEditor","valueEditorType","operator","props","useCallback","index","valueAsArray","multiValueHandler","Editor","valueEditors","v","multiValueOperators","Fragment","D","handleRangeEndChange","handleRangeStartChange"],"mappings":"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","file":"value-editor.js","sourcesContent":["// __private-exports\n/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n'use client';\n\nimport 'client-only';\nimport { useCallback } from 'react';\nimport { useValueEditor, type ValueEditorProps } from 'react-querybuilder';\nimport { Checkbox } from '../checkbox';\nimport { Radio } from '../radio';\nimport { RadioGroup } from '../radio/group';\nimport { Switch } from '../switch';\nimport { TextAreaField } from '../text-area-field';\nimport { TextField } from '../text-field';\nimport { multiValueOperators } from './constants';\nimport { getValidationResult } from './utils';\nimport { ValueSelector } from './value-selector';\nimport type { InputProps } from '../input/types';\nimport type { QueryBuilderValueEditors } from './types';\n\nfunction CheckboxValueEditor({\n disabled,\n fieldData: { name, validator },\n handleOnChange,\n rule,\n value,\n}: ValueEditorProps) {\n const { valid } = getValidationResult(rule, validator);\n\n return (\n <Checkbox\n isDisabled={disabled}\n isSelected={value}\n onChange={handleOnChange}\n aria-invalid={!valid}\n aria-label={name}\n />\n );\n}\n\nfunction RadioGroupValueEditor({\n disabled,\n fieldData: { name, validator },\n handleOnChange,\n rule,\n value,\n values,\n}: ValueEditorProps) {\n const { valid } = getValidationResult(rule, validator);\n\n return (\n <RadioGroup\n value={value}\n isDisabled={disabled}\n onChange={handleOnChange}\n aria-invalid={!valid}\n aria-label={name}\n aria-labelledby={name}\n >\n {values?.map((option) => (\n <Radio key={option.name} value={option.value}>\n {option.label}\n </Radio>\n ))}\n </RadioGroup>\n );\n}\n\nconst defaultOptions: unknown[] = [];\n\nfunction SelectValueEditor({\n disabled,\n fieldData: { name, validator },\n handleOnChange,\n rule,\n type,\n value,\n values = defaultOptions,\n ...rest\n}: ValueEditorProps) {\n const { valid } = getValidationResult(rule, validator);\n\n return (\n <ValueSelector\n {...rest}\n disabled={disabled}\n multiple={type === 'multiselect'}\n options={values}\n title={name}\n validation={!valid}\n value={value}\n handleOnChange={handleOnChange}\n aria-labelledby={name}\n />\n );\n}\n\nfunction SwitchValueEditor({\n disabled,\n fieldData: { name, validator },\n handleOnChange,\n rule,\n value,\n}: ValueEditorProps) {\n const { valid } = getValidationResult(rule, validator);\n\n return (\n <Switch\n isDisabled={disabled}\n isSelected={Boolean(value)}\n onChange={handleOnChange}\n aria-invalid={!valid}\n aria-label={name}\n aria-labelledby={name}\n />\n );\n}\n\nfunction TextValueEditor({\n disabled,\n fieldData: { name, placeholder, validator },\n handleOnChange,\n inputType,\n rule,\n value,\n}: ValueEditorProps) {\n const { valid, reasons } = getValidationResult(rule, validator);\n\n return (\n <TextField\n inputProps={{\n placeholder,\n type: (inputType as InputProps['type']) ?? 'text',\n }}\n size='small'\n value={value}\n isDisabled={disabled}\n isInvalid={!valid}\n onChange={handleOnChange}\n aria-invalid={!valid}\n aria-label={name}\n aria-labelledby={name}\n errorMessage={reasons?.join('/n')}\n />\n );\n}\n\nfunction TextareaValueEditor({\n disabled,\n fieldData: { name, placeholder, validator },\n handleOnChange,\n rule,\n value,\n}: ValueEditorProps) {\n const { valid, reasons } = getValidationResult(rule, validator);\n\n return (\n <TextAreaField\n size='small'\n errorMessage={reasons?.join('/n')}\n inputProps={{ placeholder }}\n value={value}\n isDisabled={disabled}\n isInvalid={!valid}\n onChange={handleOnChange}\n aria-label={name}\n aria-invalid={!valid}\n aria-labelledby={name}\n />\n );\n}\n\nconst valueEditors: QueryBuilderValueEditors = {\n checkbox: CheckboxValueEditor,\n radio: RadioGroupValueEditor,\n select: SelectValueEditor,\n switch: SwitchValueEditor,\n text: TextValueEditor,\n textarea: TextareaValueEditor,\n};\n\nexport function ValueEditor(props: ValueEditorProps) {\n const {\n fieldData: { name, valueEditorType },\n operator,\n rule: ruleProp,\n } = props;\n\n const { valueAsArray, multiValueHandler } = useValueEditor({\n ...props,\n skipHook: true,\n });\n\n const rule = useCallback(\n (index: number) => ({\n ...ruleProp,\n value: valueAsArray[index],\n }),\n [ruleProp, valueAsArray],\n );\n\n const handleRangeStartChange = useCallback(\n (value: string) => multiValueHandler(value, 0),\n [multiValueHandler],\n );\n\n const handleRangeEndChange = useCallback(\n (value: string) => multiValueHandler(value, 1),\n [multiValueHandler],\n );\n\n const type =\n (typeof valueEditorType === 'function'\n ? valueEditorType(operator)\n : valueEditorType) ?? 'text';\n\n const Editor = valueEditors?.[type];\n\n if (operator === 'null' || operator === 'notNull' || !Editor) {\n return null;\n }\n\n if (multiValueOperators.includes(operator)) {\n return (\n <>\n {['start', 'end'].map((term, index) => (\n <div key={`${name}-${term}`}>\n <Editor\n {...props}\n rule={rule(index)}\n value={valueAsArray[index]}\n handleOnChange={\n index ? handleRangeEndChange : handleRangeStartChange\n }\n />\n </div>\n ))}\n </>\n );\n }\n\n return (\n <div>\n <Editor {...props} />\n </div>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/query-builder/value-editor.tsx"],"names":["rule","valid","validator","jsx","Checkbox","className","value","u","V","c","handleOnChange","y","name","values","option","SelectValueEditor","rest","ValueSelector","disabled","type","Switch","g","TextValueEditor","getValidationResult","TextField","C","styles","reasons","placeholder","RadioGroupValueEditor","SwitchValueEditor","TextareaValueEditor","ValueEditor","props","valueEditorType","operator","useCallback","index","multiValueHandler","E","handleRangeEndChange","b","Editor","valueEditors","multiValueOperators","Fragment","B","handleRangeStartChange"],"mappings":"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","file":"value-editor.js","sourcesContent":["// __private-exports\n/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n'use client';\n\nimport 'client-only';\nimport { useCallback } from 'react';\nimport { useValueEditor, type ValueEditorProps } from 'react-querybuilder';\nimport { Checkbox } from '../checkbox';\nimport { Radio } from '../radio';\nimport { RadioGroup } from '../radio/group';\nimport { Switch } from '../switch';\nimport { TextAreaField } from '../text-area-field';\nimport { TextField } from '../text-field';\nimport { multiValueOperators } from './constants';\nimport styles from './styles.module.css';\nimport { getValidationResult } from './utils';\nimport { ValueSelector } from './value-selector';\nimport type { InputProps } from '../input/types';\nimport type { QueryBuilderValueEditors } from './types';\n\nfunction CheckboxValueEditor({\n className,\n disabled,\n fieldData: { name, validator },\n handleOnChange,\n rule,\n value,\n}: ValueEditorProps) {\n const { valid } = getValidationResult(rule, validator);\n\n return (\n <Checkbox\n classNames={{ checkbox: className }}\n isDisabled={disabled}\n isSelected={value}\n onChange={handleOnChange}\n aria-invalid={!valid}\n aria-label={name}\n />\n );\n}\n\nfunction RadioGroupValueEditor({\n className,\n disabled,\n fieldData: { name, validator },\n handleOnChange,\n rule,\n value,\n values,\n}: ValueEditorProps) {\n const { valid } = getValidationResult(rule, validator);\n\n return (\n <RadioGroup\n classNames={{ group: className }}\n value={value}\n isDisabled={disabled}\n onChange={handleOnChange}\n aria-invalid={!valid}\n aria-label={name}\n aria-labelledby={name}\n >\n {values?.map((option) => (\n <Radio key={option.name} value={option.value}>\n {option.label}\n </Radio>\n ))}\n </RadioGroup>\n );\n}\n\nconst defaultOptions: unknown[] = [];\n\nfunction SelectValueEditor({\n className,\n disabled,\n fieldData: { name, validator },\n handleOnChange,\n rule,\n type,\n value,\n values = defaultOptions,\n ...rest\n}: ValueEditorProps) {\n const { valid } = getValidationResult(rule, validator);\n\n return (\n <ValueSelector\n {...rest}\n className={className}\n disabled={disabled}\n multiple={type === 'multiselect'}\n options={values}\n title={name}\n validation={!valid}\n value={value}\n handleOnChange={handleOnChange}\n aria-labelledby={name}\n />\n );\n}\n\nfunction SwitchValueEditor({\n className,\n disabled,\n fieldData: { name, validator },\n handleOnChange,\n rule,\n value,\n}: ValueEditorProps) {\n const { valid } = getValidationResult(rule, validator);\n\n return (\n <Switch\n classNames={{ switch: className }}\n isDisabled={disabled}\n isSelected={Boolean(value)}\n onChange={handleOnChange}\n aria-invalid={!valid}\n aria-label={name}\n aria-labelledby={name}\n />\n );\n}\n\nfunction TextValueEditor({\n disabled,\n fieldData: { name, placeholder, validator },\n handleOnChange,\n inputType,\n rule,\n value,\n className,\n}: ValueEditorProps) {\n const { valid, reasons } = getValidationResult(rule, validator);\n\n return (\n <TextField\n inputProps={{\n placeholder,\n type: (inputType as InputProps['type']) ?? 'text',\n }}\n size='small'\n value={value}\n classNames={{ field: className, input: { container: styles.textInput } }}\n isDisabled={disabled}\n isInvalid={!valid}\n onChange={handleOnChange}\n aria-invalid={!valid}\n aria-label={name}\n aria-labelledby={name}\n errorMessage={reasons?.join('/n')}\n />\n );\n}\n\nfunction TextareaValueEditor({\n className,\n disabled,\n fieldData: { name, placeholder, validator },\n handleOnChange,\n rule,\n value,\n}: ValueEditorProps) {\n const { valid, reasons } = getValidationResult(rule, validator);\n\n return (\n <TextAreaField\n classNames={{ field: className }}\n size='small'\n errorMessage={reasons?.join('/n')}\n inputProps={{ placeholder }}\n value={value}\n isDisabled={disabled}\n isInvalid={!valid}\n onChange={handleOnChange}\n aria-label={name}\n aria-invalid={!valid}\n aria-labelledby={name}\n />\n );\n}\n\nconst valueEditors: QueryBuilderValueEditors = {\n checkbox: CheckboxValueEditor,\n radio: RadioGroupValueEditor,\n select: SelectValueEditor,\n switch: SwitchValueEditor,\n text: TextValueEditor,\n textarea: TextareaValueEditor,\n};\n\nexport function ValueEditor(props: ValueEditorProps) {\n const {\n fieldData: { name, valueEditorType },\n operator,\n rule: ruleProp,\n } = props;\n\n const { valueAsArray, multiValueHandler } = useValueEditor({\n ...props,\n skipHook: true,\n });\n\n const rule = useCallback(\n (index: number) => ({\n ...ruleProp,\n value: valueAsArray[index],\n }),\n [ruleProp, valueAsArray],\n );\n\n const handleRangeStartChange = useCallback(\n (value: string) => multiValueHandler(value, 0),\n [multiValueHandler],\n );\n\n const handleRangeEndChange = useCallback(\n (value: string) => multiValueHandler(value, 1),\n [multiValueHandler],\n );\n\n const type =\n (typeof valueEditorType === 'function'\n ? valueEditorType(operator)\n : valueEditorType) ?? 'text';\n\n const Editor = valueEditors?.[type];\n\n if (operator === 'null' || operator === 'notNull' || !Editor) {\n return null;\n }\n\n if (multiValueOperators.includes(operator)) {\n return (\n <>\n {['start', 'end'].map((term, index) => (\n <div key={`${name}-${term}`}>\n <Editor\n {...props}\n rule={rule(index)}\n value={valueAsArray[index]}\n handleOnChange={\n index ? handleRangeEndChange : handleRangeStartChange\n }\n />\n </div>\n ))}\n </>\n );\n }\n\n return (\n <div>\n <Editor {...props} />\n </div>\n );\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import {jsx,jsxs,Fragment}from'react/jsx-runtime';import'client-only';import {useContextProps,RadioGroup,composeRenderProps}from'react-aria-components';import {Label}from'../label/index.js';import {RadioContext}from'./context.js';import
|
|
3
|
+
import {jsx,jsxs,Fragment}from'react/jsx-runtime';import'client-only';import {clsx}from'@accelint/design-foundation/lib/utils';import {useContextProps,RadioGroup,composeRenderProps}from'react-aria-components';import {Label}from'../label/index.js';import {RadioContext}from'./context.js';import l from'./styles.module.css';function L({ref:o,...r}){[r,o]=useContextProps(r,o??null,RadioContext);const{children:m,classNames:i,label:a,...u}=r;return jsx(RadioGroup,{...u,ref:o,className:composeRenderProps(i?.group,e=>clsx("group/radio-group",l.group,e)),children:composeRenderProps(m,(e,{isDisabled:d,isRequired:n})=>jsxs(Fragment,{children:[a&&jsx(Label,{className:clsx(l.label,i?.label),isDisabled:d,isRequired:n,children:a}),e]}))})}export{L as RadioGroup};//# sourceMappingURL=group.js.map
|
|
4
4
|
//# sourceMappingURL=group.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/radio/group.tsx"],"names":["
|
|
1
|
+
{"version":3,"sources":["../../../src/components/radio/group.tsx"],"names":["props","useContextProps","ref","RadioContext","c","f","children","classNames","jsx","AriaRadioGroup","rest","R","clsx","p","composeRenderProps","s","isDisabled","label","Label","styles","isRequired"],"mappings":"kUA+B6B,SAAkC,CAC7D,CAACA,CAAAA,GAAU,CAAIC,CAAAA,CAAgBD,GAAOE,CAAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAY,CAAA,CAE/DC,eAAA,CAAA,CAAA,CAAA,CAAM,EAAE,IAAA,CAAAC,YAAA,CAAA,CAAAC,KAAU,CAAA,QAAAC,CAAY,CAAA,CAAA,UAAe,CAAA,CAAIP,CAAAA,KAEjD,CAAA,CAAA,CACEQ,GAACC,CAAA,CACE,CAAA,CAAA,CAAGC,OACCR,GACL,CAAAS,UAAA,CAAA,CAAA,GAAA,CAAA,CAAA,GAA8BJ,CAAAA,CAAAA,CAAY,SACxCK,CAAAA,kBAAK,CAAA,CAAA,EAAA,KAAA,CAAA,CAAA,EAAAC,IAAA,CAAA,mBAGN,CAAA,CAAA,CAAA,KAAAC,CAAmBR,CAAAA,CAAU,CAACA,CAAAA,QAAY,CAAAS,kBAAA,CAAA,CAAA,CAAAC,EAAY,CAAA,CAAA,UAAW,CAAA,CAAA,CAAA,UAE7D,CAAA,CAAA,CAAA,GAAAC,IAAAA,CAAAA,QACCT,CAAAA,CAACU,QACC,CAAA,CAAA,CAAA,EAAWN,GAAAA,CAAKO,KAAAA,CAAO,CAAA,SAAmB,CAAAN,IAAA,CAAA,CAAK,CAAA,KAC/C,CAAA,CAAA,EAAA,KACA,CAAA,CAAA,UAAYO,CAEX,CAAA,CAAA,UACH,CAEDd,CAAAA,CAAAA,QAKX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA","file":"group.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n'use client';\n\nimport 'client-only';\nimport { clsx } from '@accelint/design-foundation/lib/utils';\nimport {\n RadioGroup as AriaRadioGroup,\n composeRenderProps,\n useContextProps,\n} from 'react-aria-components';\nimport { Label } from '../label';\nimport { RadioContext } from './context';\nimport styles from './styles.module.css';\nimport type { RadioGroupProps } from './types';\n\n/**\n * RadioGroup - Container component for Radio buttons\n *\n * Groups related Radio components and manages their selection state.\n * Only one Radio can be selected at a time within a RadioGroup.\n */\nexport function RadioGroup({ ref, ...props }: RadioGroupProps) {\n [props, ref] = useContextProps(props, ref ?? null, RadioContext);\n\n const { children, classNames, label, ...rest } = props;\n\n return (\n <AriaRadioGroup\n {...rest}\n ref={ref}\n className={composeRenderProps(classNames?.group, (className) =>\n clsx('group/radio-group', styles.group, className),\n )}\n >\n {composeRenderProps(children, (children, { isDisabled, isRequired }) => (\n <>\n {label && (\n <Label\n className={clsx(styles.label, classNames?.label)}\n isDisabled={isDisabled}\n isRequired={isRequired}\n >\n {label}\n </Label>\n )}\n {children}\n </>\n ))}\n </AriaRadioGroup>\n );\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import {jsx,jsxs,Fragment}from'react/jsx-runtime';import'client-only';import {Radio,composeRenderProps}from'react-aria-components';import
|
|
3
|
+
import {jsx,jsxs,Fragment}from'react/jsx-runtime';import'client-only';import {clsx}from'@accelint/design-foundation/lib/utils';import {Radio,composeRenderProps}from'react-aria-components';import i from'./styles.module.css';function u({classNames:o,children:t,...e}){return jsx(Radio,{...e,className:composeRenderProps(o?.radio,r=>clsx("group/radio",i.radio,r)),children:composeRenderProps(t,r=>jsxs(Fragment,{children:[jsx("span",{className:clsx(i.control,o?.control)}),jsx("span",{className:clsx(i.label,o?.label),children:r})]}))})}export{u as Radio};//# sourceMappingURL=index.js.map
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/radio/index.tsx"],"names":["
|
|
1
|
+
{"version":3,"sources":["../../../src/components/radio/index.tsx"],"names":["Radio","classNames","children","jsx","AriaRadio","rest","composeRenderProps","className","styles","jsxs","Fragment","clsx"],"mappings":"wOAkDgBA,CAAM,CAAE,WAAAC,CAAAA,CAAY,CAAA,QAAAC,EAAU,CAAA,GAAQ,CAAA,CAAe,CACnE,QACEC,GAACC,CAAAA,KAAA,CACE,CAAA,GAAGC,CACJ,UAAWC,CAAAA,kBAAmBL,CAAAA,CAAAA,EAAY,KAAQM,CAAAA,CAAAA,MAC3C,CAAA,aAAeC,CAAAA,CAAO,CAAA,KAAOD,CAAS,CAC7C,CAAA,CAEC,CAAA,QAAAD,CAAAA,kBAAmBJ,CAAAA,CAAWA,IAC7BO,IAAAC,CAAAA,QAAA,CACE,CAAA,QAAA,CAAAP,CAAAA,GAAC,QAAK,CAAA,SAAWQ,CAAAA,IAAKH,CAAAA,CAAO,CAAA,OAASP,IAAY,OAAO,CAAG,EAC5DE,CAAAA,GAAC,CAAA,MAAA,CAAK,UAAWQ,CAAAA,IAAKH,CAAAA,CAAO,CAAA,KAAOP,CAAAA,CAAAA,OAAiB,CAClD,CAAA,QAAAC,EACH,CAAA,CAAA,CACF,CACD,EACH,CAEJ,CAAA","file":"index.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n'use client';\n\nimport 'client-only';\nimport { clsx } from '@accelint/design-foundation/lib/utils';\nimport { Radio as AriaRadio, composeRenderProps } from 'react-aria-components';\nimport styles from './styles.module.css';\nimport type { RadioProps } from './types';\n\n/**\n * Radio - A form control for exclusive selection within a group of options\n *\n * Provides accessible radio button functionality where only one option can be\n * selected at a time within a group. Includes proper labeling, keyboard navigation,\n * and visual feedback for selection states.\n *\n * @example\n * // Basic radio group\n * <RadioGroup label=\"Choose size\">\n * <Radio value=\"small\">Small</Radio>\n * <Radio value=\"medium\">Medium</Radio>\n * <Radio value=\"large\">Large</Radio>\n * </RadioGroup>\n *\n * @example\n * // Radio group with default selection\n * <RadioGroup defaultValue=\"medium\" label=\"Size preference\">\n * <Radio value=\"small\">Small (S)</Radio>\n * <Radio value=\"medium\">Medium (M)</Radio>\n * <Radio value=\"large\">Large (L)</Radio>\n * </RadioGroup>\n *\n * @example\n * // Disabled radio options\n * <RadioGroup label=\"Shipping options\">\n * <Radio value=\"standard\">Standard shipping</Radio>\n * <Radio value=\"express\">Express shipping</Radio>\n * <Radio value=\"overnight\" isDisabled>Overnight (unavailable)</Radio>\n * </RadioGroup>\n */\nexport function Radio({ classNames, children, ...rest }: RadioProps) {\n return (\n <AriaRadio\n {...rest}\n className={composeRenderProps(classNames?.radio, (className) =>\n clsx('group/radio', styles.radio, className),\n )}\n >\n {composeRenderProps(children, (children) => (\n <>\n <span className={clsx(styles.control, classNames?.control)} />\n <span className={clsx(styles.label, classNames?.label)}>\n {children}\n </span>\n </>\n ))}\n </AriaRadio>\n );\n}\n"]}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.
|
|
3
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
5
|
+
* of the License at https://www.apache.org/licenses/LICENSE-2.0
|
|
6
|
+
*
|
|
7
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
8
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
9
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
|
+
* governing permissions and limitations under the License.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
@reference '../../index.module.css';
|
|
14
|
+
|
|
15
|
+
@layer components.l1 {
|
|
16
|
+
.group {
|
|
17
|
+
@apply gap-xs flex;
|
|
18
|
+
|
|
19
|
+
@variant orientation-horizontal {
|
|
20
|
+
@apply flex-wrap;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@variant orientation-vertical {
|
|
24
|
+
@apply flex-col;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.label {
|
|
28
|
+
@apply w-full;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.radio {
|
|
33
|
+
@apply gap-m flex cursor-pointer items-center;
|
|
34
|
+
|
|
35
|
+
@variant group-orientation-horizontal/radio-group {
|
|
36
|
+
@apply grow;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
@variant group-orientation-horizontal/radio-group {
|
|
40
|
+
@apply basis-1/3;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
@variant disabled {
|
|
44
|
+
@apply cursor-not-allowed;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.label {
|
|
48
|
+
@apply fg-primary-bold text-body-s;
|
|
49
|
+
|
|
50
|
+
@variant group-disabled/radio {
|
|
51
|
+
@apply fg-disabled;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.control {
|
|
57
|
+
@apply my-xxs size-l outline-interactive flex shrink-0 grow-0 items-center justify-center rounded-full outline-2;
|
|
58
|
+
|
|
59
|
+
&:before {
|
|
60
|
+
@apply size-s block rounded-full;
|
|
61
|
+
content: '';
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
@variant group-hover/radio {
|
|
65
|
+
@apply outline-interactive-hover;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
@variant group-focus-visible/radio {
|
|
69
|
+
@apply outline-interactive-hover;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
@variant group-pressed/radio {
|
|
73
|
+
@apply outline-interactive-pressed;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
@variant group-selected/radio {
|
|
77
|
+
@apply outline-accent-primary-bold outline-1;
|
|
78
|
+
|
|
79
|
+
&:before {
|
|
80
|
+
@apply bg-(--fg-accent-primary-bold);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
@variant group-hover/radio {
|
|
84
|
+
@apply outline-interactive-hover;
|
|
85
|
+
|
|
86
|
+
&:before {
|
|
87
|
+
@apply bg-(--fg-accent-primary-hover);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
@variant group-focus-visible/radio {
|
|
92
|
+
@apply outline-accent-primary-hover;
|
|
93
|
+
|
|
94
|
+
&:before {
|
|
95
|
+
@apply bg-(--fg-accent-primary-hover);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
@variant group-pressed/radio {
|
|
100
|
+
@apply outline-info-pressed outline-2;
|
|
101
|
+
|
|
102
|
+
&:before {
|
|
103
|
+
@apply bg-(--fg-accent-primary-pressed);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
@variant group-disabled/radio {
|
|
109
|
+
@apply outline-interactive-disabled;
|
|
110
|
+
|
|
111
|
+
@variant group-selected/radio {
|
|
112
|
+
&:before {
|
|
113
|
+
@apply bg-interactive-disabled;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
@@ -3,12 +3,8 @@ import * as react from 'react';
|
|
|
3
3
|
import { ContextValue } from 'react-aria-components';
|
|
4
4
|
import { ProviderProps } from '../../lib/types.js';
|
|
5
5
|
import { SearchFieldProps } from './types.js';
|
|
6
|
-
import 'tailwind-variants';
|
|
7
6
|
import '../button/types.js';
|
|
8
|
-
import '../button/styles.js';
|
|
9
|
-
import 'tailwind-merge';
|
|
10
7
|
import '../icon/types.js';
|
|
11
|
-
import './styles.js';
|
|
12
8
|
|
|
13
9
|
/**
|
|
14
10
|
* Context for SearchField component
|
|
@@ -2,13 +2,9 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
|
2
2
|
import { SearchFieldProps } from './types.js';
|
|
3
3
|
import 'react';
|
|
4
4
|
import 'react-aria-components';
|
|
5
|
-
import 'tailwind-variants';
|
|
6
5
|
import '../button/types.js';
|
|
7
6
|
import '../../lib/types.js';
|
|
8
|
-
import '../button/styles.js';
|
|
9
|
-
import 'tailwind-merge';
|
|
10
7
|
import '../icon/types.js';
|
|
11
|
-
import './styles.js';
|
|
12
8
|
|
|
13
9
|
/**
|
|
14
10
|
* SearchField - A customizable search input component built on React Aria Components
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import {jsx,jsxs}from'react/jsx-runtime';import {Search,Loop,CancelFill}from'@accelint/icons';import'client-only';import {useContextProps,SearchField,composeRenderProps,Input,Button}from'react-aria-components';import {Icon}from'../icon/index.js';import {IconProvider}from'../icon/context.js';import {SearchFieldContext}from'./context.js';import
|
|
3
|
+
import {jsx,jsxs}from'react/jsx-runtime';import {Search,Loop,CancelFill}from'@accelint/icons';import'client-only';import {clsx}from'@accelint/design-foundation/lib/utils';import {useContextProps,SearchField,composeRenderProps,Input,Button}from'react-aria-components';import {Icon}from'../icon/index.js';import {IconProvider}from'../icon/context.js';import {SearchFieldContext}from'./context.js';import o from'./styles.module.css';function b({ref:s,...l}){[l,s]=useContextProps(l,s??null,SearchFieldContext);const{classNames:r,inputProps:n,isLoading:m=false,variant:p="outline",...d}=l;return jsx(IconProvider,{size:"small",children:jsxs(SearchField,{...d,ref:s,className:composeRenderProps(r?.field,a=>clsx("group/search-field",o.field,o[p],a)),children:[jsx(Icon,{className:clsx(o.search,r?.search),children:jsx(Search,{})}),jsx(Input,{...n,className:composeRenderProps(r?.input,a=>clsx(o.input,a)),type:"search"}),m?jsx(Icon,{className:clsx(o.loading,r?.loading),children:jsx(Loop,{})}):jsx(Button,{className:composeRenderProps(r?.clear,a=>clsx(o.clear,a)),children:jsx(Icon,{children:jsx(CancelFill,{})})})]})})}export{b as SearchField};//# sourceMappingURL=index.js.map
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/search-field/index.tsx"],"names":["
|
|
1
|
+
{"version":3,"sources":["../../../src/components/search-field/index.tsx"],"names":["ref","useContextProps","props","SearchFieldContext","P","classNames","IconProvider","e","N","AriaSearchField","rest","y","F","composeRenderProps","c","i","jsx","Icon","styles","t","Search","inputProps","u","className","isLoading","clsx","f"],"mappings":"8aA0DmC,SACzBA,CAAG,EAAIC,GAAgBC,CAAOF,KAAO,CAAA,CAAA,CAAMG,CAAkB,EAErE,CAAA,CAAA,CAAA,CAAAC,eAAM,CACJ,4BAAAC,CAAAA,CACA,KAAA,CAAA,UACA,CAAA,CAAA,CAAA,UACA,CAAA,CAAA,CAAA,yBAEEH,CAAAA,CAEJ,CAAA,SACGI,CAAA,MAAkB,CAAA,CAAA,OACjBC,GAAA,CAAAC,YAAA,CAAA,CAAA,KAACC,OACKC,CACJ,QACA,CAAAC,IAAA,CAAAC,WAAA,CAAA,CAAA,GAAWC,CAAmBR,IAAY,CAAA,CAAA,CAAA,SACnC,CAAAS,kBAAA,CAAA,CAAA,EAAA,KAAA,CAAA,CAAA,EAAAC,IAAA,CAAA,oBAGP,CAAA,CAAA,CAAA,KAAA,CAAAC,CAAAA,CAACC,EAAA,CAAK,CAAA,CAAA,CAAA,CAAA,QAAgBC,CAAAA,CAAOX,GAAA,CAAAY,IAAA,CAAA,CAAA,SAAoB,CAAAJ,IAAM,CAAA,CACrD,SAAAC,EAACI,MACH,CAAA,CACAJ,QACMK,CAAAA,GACJ,CAAAC,MAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAAf,GAAWM,MAAmBR,CAAAA,CAAAA,GAAY,CAAA,CAAA,SAC5B,uBAAOkB,KAErB,CAAA,CAAA,EAAKR,IAAA,CAAA,CAAA,CAAA,KACP,EACCS,CAAAA,CACCR,CAAAA,IAAM,CAAA,QAAA,CAAWS,EAAKP,CAAAA,CAAOX,GAAA,CAAAY,IAAA,CAAA,CAAA,SAAqB,CAAAJ,IAAA,CAAA,CAAO,CAAA,WACvDC,OACF,CAAA,CAEAA,oBACaH,CAAAA,CAAmBR,CAAAA,CAAAA,GAAY,kBAC5B,CAAAS,kBAAA,CAAA,CAAA,EAAOS,KAGrB,CAAA,CAAA,EAAAR,IAAA,CAAA,CAAA,CAAAC,KACE,aAAC,IAAW,CAAAG,IACd,CAAA,CACF,QAKV,CAAAZ,GAAA,CAAAmB,UAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA","file":"index.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n'use client';\n\nimport { CancelFill, Loop, Search } from '@accelint/icons';\nimport 'client-only';\nimport { clsx } from '@accelint/design-foundation/lib/utils';\nimport {\n SearchField as AriaSearchField,\n Button,\n composeRenderProps,\n Input,\n useContextProps,\n} from 'react-aria-components';\nimport { Icon } from '../icon';\nimport { IconProvider } from '../icon/context';\nimport { SearchFieldContext } from './context';\nimport styles from './styles.module.css';\nimport type { SearchFieldProps } from './types';\n\n/**\n * SearchField - A customizable search input component built on React Aria Components\n *\n * Provides a search input with integrated search icon, loading state, and clear functionality.\n * Supports two visual variants (filled/outlined), and granular styling control.\n *\n * @example\n * // Basic search field\n * <SearchField placeholder=\"Search...\" />\n *\n * @example\n * // Filled variant with custom styling\n * <SearchField\n * variant=\"filled\"\n * placeholder=\"Search products\"\n * classNames={{\n * input: \"bg-info-bold\",\n * searchIcon: \"fg-accent-primary-bold\"\n * }}\n * />\n *\n * @example\n * // With event handlers\n * <SearchField\n * placeholder=\"Type to search\"\n * onSubmit={(value) => console.log('Search:', value)}\n * onChange={(value) => setQuery(value)}\n * />\n */\nexport function SearchField({ ref, ...props }: SearchFieldProps) {\n [props, ref] = useContextProps(props, ref ?? null, SearchFieldContext);\n\n const {\n classNames,\n inputProps,\n isLoading = false,\n variant = 'outline',\n ...rest\n } = props;\n\n return (\n <IconProvider size='small'>\n <AriaSearchField\n {...rest}\n ref={ref}\n className={composeRenderProps(classNames?.field, (className) =>\n clsx('group/search-field', styles.field, styles[variant], className),\n )}\n >\n <Icon className={clsx(styles.search, classNames?.search)}>\n <Search />\n </Icon>\n <Input\n {...inputProps}\n className={composeRenderProps(classNames?.input, (className) =>\n clsx(styles.input, className),\n )}\n type='search'\n />\n {isLoading ? (\n <Icon className={clsx(styles.loading, classNames?.loading)}>\n <Loop />\n </Icon>\n ) : (\n <Button\n className={composeRenderProps(classNames?.clear, (className) =>\n clsx(styles.clear, className),\n )}\n >\n <Icon>\n <CancelFill />\n </Icon>\n </Button>\n )}\n </AriaSearchField>\n </IconProvider>\n );\n}\n"]}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.
|
|
3
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
5
|
+
* of the License at https://www.apache.org/licenses/LICENSE-2.0
|
|
6
|
+
*
|
|
7
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
8
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
9
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
|
+
* governing permissions and limitations under the License.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
@reference '../../index.module.css';
|
|
14
|
+
|
|
15
|
+
@layer components.l1 {
|
|
16
|
+
.field {
|
|
17
|
+
@apply fg-primary-bold gap-s rounded-round p-s flex items-center outline;
|
|
18
|
+
|
|
19
|
+
&.filled {
|
|
20
|
+
@apply bg-surface-raised outline-static;
|
|
21
|
+
|
|
22
|
+
@variant hover {
|
|
23
|
+
@apply outline-interactive-hover;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
@variant focus-visible-within {
|
|
27
|
+
@apply outline-accent-primary-bold;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
@variant pressed {
|
|
31
|
+
@apply outline-interactive-pressed;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
@variant disabled {
|
|
35
|
+
@apply fg-disabled outline-interactive-disabled cursor-not-allowed;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
&.outline {
|
|
40
|
+
@apply outline-interactive;
|
|
41
|
+
|
|
42
|
+
@variant hover {
|
|
43
|
+
@apply outline-interactive-hover;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
@variant focus-visible-within {
|
|
47
|
+
@apply outline-accent-primary-bold;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
@variant pressed {
|
|
51
|
+
@apply outline-interactive-pressed;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
@variant disabled {
|
|
55
|
+
@apply fg-disabled outline-interactive-disabled cursor-not-allowed;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
@layer components.l2 {
|
|
62
|
+
.input {
|
|
63
|
+
@apply font-display text-body-s block w-full outline-none;
|
|
64
|
+
|
|
65
|
+
/* TODO: hide-cancel utility class is missing */
|
|
66
|
+
&::-webkit-search-cancel-button {
|
|
67
|
+
@apply hidden;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
@variant placeholder-shown {
|
|
71
|
+
@apply fg-primary-muted;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
@variant disabled {
|
|
75
|
+
@apply fg-disabled cursor-not-allowed;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.clear {
|
|
80
|
+
@apply fg-info-bold cursor-pointer;
|
|
81
|
+
|
|
82
|
+
@variant hover {
|
|
83
|
+
@apply fg-info-hover;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
@variant focus-visible {
|
|
87
|
+
@apply fg-info-hover;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
@variant group-empty/search-field {
|
|
91
|
+
@apply invisible;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
@variant group-disabled/search-field {
|
|
95
|
+
@apply invisible;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.loading {
|
|
100
|
+
@variant motion-safe {
|
|
101
|
+
@apply animate-spin;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
@@ -1,14 +1,9 @@
|
|
|
1
1
|
import { RefAttributes } from 'react';
|
|
2
2
|
import { SearchFieldProps as SearchFieldProps$1, InputProps } from 'react-aria-components';
|
|
3
|
-
import { VariantProps } from 'tailwind-variants';
|
|
4
3
|
import { ButtonProps } from '../button/types.js';
|
|
5
4
|
import { IconProps } from '../icon/types.js';
|
|
6
|
-
import { SearchFieldStyles } from './styles.js';
|
|
7
5
|
import '../../lib/types.js';
|
|
8
|
-
import '../button/styles.js';
|
|
9
|
-
import 'tailwind-merge';
|
|
10
6
|
|
|
11
|
-
type SearchFieldStyleVariants = VariantProps<typeof SearchFieldStyles>;
|
|
12
7
|
interface SearchFieldProps extends Omit<SearchFieldProps$1, 'className' | 'pattern' | 'type'>, RefAttributes<HTMLDivElement> {
|
|
13
8
|
classNames?: {
|
|
14
9
|
field?: SearchFieldProps$1['className'];
|
|
@@ -18,9 +13,9 @@ interface SearchFieldProps extends Omit<SearchFieldProps$1, 'className' | 'patte
|
|
|
18
13
|
search?: IconProps['className'];
|
|
19
14
|
};
|
|
20
15
|
inputProps?: Omit<InputProps, 'type'>;
|
|
21
|
-
variant?: 'filled' | '
|
|
16
|
+
variant?: 'filled' | 'outline';
|
|
22
17
|
/** Displays a loading spinner. */
|
|
23
18
|
isLoading?: boolean;
|
|
24
19
|
}
|
|
25
20
|
|
|
26
|
-
export type { SearchFieldProps
|
|
21
|
+
export type { SearchFieldProps };
|
|
@@ -4,9 +4,6 @@ import { ProviderProps } from '../../lib/types.js';
|
|
|
4
4
|
import { ContextValue } from 'react-aria-components';
|
|
5
5
|
import { SelectFieldProps } from './types.js';
|
|
6
6
|
import '../button/types.js';
|
|
7
|
-
import 'tailwind-variants';
|
|
8
|
-
import '../button/styles.js';
|
|
9
|
-
import 'tailwind-merge';
|
|
10
7
|
import '../label/types.js';
|
|
11
8
|
|
|
12
9
|
declare const SelectFieldContext: react.Context<ContextValue<SelectFieldProps, HTMLDivElement>>;
|
|
@@ -3,10 +3,7 @@ import { SelectFieldProps } from './types.js';
|
|
|
3
3
|
import 'react';
|
|
4
4
|
import 'react-aria-components';
|
|
5
5
|
import '../button/types.js';
|
|
6
|
-
import 'tailwind-variants';
|
|
7
6
|
import '../../lib/types.js';
|
|
8
|
-
import '../button/styles.js';
|
|
9
|
-
import 'tailwind-merge';
|
|
10
7
|
import '../label/types.js';
|
|
11
8
|
|
|
12
9
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import {jsx,jsxs,Fragment}from'react/jsx-runtime';import
|
|
3
|
+
import {jsx,jsxs,Fragment}from'react/jsx-runtime';import'client-only';import {clsx}from'@accelint/design-foundation/lib/utils';import x from'@accelint/icons/chevron-down';import {useContextProps,Select,composeRenderProps,SelectValue,Text,FieldError,Popover,Virtualizer,ListLayout}from'react-aria-components';import {Button}from'../button/index.js';import {Icon}from'../icon/index.js';import {Label}from'../label/index.js';import {Options}from'../options/index.js';import {SelectFieldContext}from'./context.js';import s from'./styles.module.css';function _({ref:i,...a}){[a,i]=useContextProps(a,i??null,SelectFieldContext);const{size:n="medium",children:v,classNames:r,description:c,errorMessage:P,label:m,layoutOptions:g,isInvalid:N,...S}=a,d=P?.trim()??null,b=N??!!d,u=n==="small",y=!u&&!!m;return jsx(Select,{...S,ref:i,className:composeRenderProps(r?.field,p=>clsx("group/select-field",s.field,p)),isInvalid:b,"data-size":n,children:composeRenderProps(v,(p,{isRequired:F,isDisabled:I,isInvalid:h})=>jsxs(Fragment,{children:[y&&jsx(Label,{className:clsx(s.label,r?.label),isRequired:F,isDisabled:I,children:m}),jsxs(Button,{className:composeRenderProps(r?.trigger,t=>clsx(s.trigger,t)),size:n,variant:"outline",children:[jsx(SelectValue,{className:clsx(s.value,r?.value)}),jsx(Icon,{children:jsx(x,{className:"transform group-open/select-field:rotate-180"})})]}),!!c&&!(u||h)&&jsx(Text,{slot:"description",className:clsx(s.description,r?.description),children:c}),jsx(FieldError,{className:composeRenderProps(r?.error,t=>clsx(s.error,t)),children:d}),jsx(Popover,{className:composeRenderProps(r?.popover,t=>clsx(s.popover,t)),children:jsx(Virtualizer,{layout:ListLayout,layoutOptions:g,children:jsx(Options,{children:p})})})]}))})}export{_ as SelectField};//# sourceMappingURL=index.js.map
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/select-field/index.tsx"],"names":["
|
|
1
|
+
{"version":3,"sources":["../../../src/components/select-field/index.tsx"],"names":["size","V","children","T","classNames","descriptionProp","props","errorMessage","isInvalidProp","showLabel","isSmall","labelProp","jsx","rest","ref","composeRenderProps","className","e","z","isInvalid","isRequired","isDisabled","l","jsxs","Fragment","clsx","f","A","o","styles","FieldError","L","Popover","O","Virtualizer","w","E","R"],"mappings":"iiBAgFuE,SAGnE,CAAA,CAAA,CAAAA,GAAO,CAAA,CAAA,CAAA,GAAA,CAAA,CACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAC,eAAAC,CAAAA,CACA,CAAA,CAAA,EAAA,IAAA,CAAAC,kBAAA,CAAAC,CAAAA,aACaC,QACb,CAAA,QACA,CAAA,CAAA,CAAA,UACA,CAAA,CAAA,CAAA,WACA,CAAA,CAAA,CAAA,YAEEC,CAAAA,CAEEC,MAAiC,CAAA,CAAA,CAAA,aAErBC,CADD,CAAC,CAACD,SAEM,CAAA,CAAA,CAAA,GAAA,CACnBE,CAAAA,CAAY,CAACC,CAAAA,CAAAA,CAAW,CAAC,EAACC,IAEhC,EAAA,EACEC,IAAC,CACE,GAAGC,EACJ,CAAA,CAAA,CAAA,CAAKC,CAAAA,CACL,CAAA,GAAA,OAAWC,CAAmBX,CAAAA,CAAAA,CAAY,CAAA,EAAA,CAAA,CAAA,CAAQY,CAAAA,OAC3CC,GAAA,CAAAC,MAAA,CAAA,CAAA,GAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,SAA6B,CAAOF,kBAAS,CACpD,CAAA,EACA,KAAA,CAAA,CAAA,EAAWG,IAAAA,CACX,oBAEC,CAAA,CAAA,CAAAJ,KAEEb,CAAAA,CAAU,CAAE,CAAA,CAAA,SAAAkB,CAAAA,CAAY,YAAAC,CAAY,CAAA,CAAA,QAAAF,CAAUG,kBAAA,CAAA,CAAA,CAC7CC,CAAAA,CAAAC,CAAAA,CAAA,UACG,CAAAf,YAEG,CAAA,CAAA,CAAA,SAAuB,CAAA,CAAA,CAAA,GAAOL,IAAY,mBAC1C,CAAA,CAAA,CAAA,EAAAa,GAAYG,CAAAA,KACZ,CAAA,CAAA,SAAYC,KAEX,CAAA,CAAA,CAAA,KAAA,CAAAV,CAAAA,EACH,KAED,CACC,CAAA,UAAWI,CAAmBX,CAAAA,CAAAA,UAAsBY,CAAAA,CAClDS,CAAAA,WAAqBT,CAAS,CAChCU,IAAA,CACAC,MAAA,CAAA,CAAA,SACA,CAAAL,kBAAA,CAAQ,CAAA,EAAA,OAER,CAAA,CAAA,EAAAM,IAAA,CAAA,CAAA,CAAA,OAAa,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAWH,CAAAA,CAAKI,OAAO,CAAOzB,UAAoB,oCAEhD,CAAAwB,IAAA,CAAA,CAAA,CAAA,oGAKR,CACL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAWH,EAAKI,EAAO,iBAAazB,IAAY,CAAA,aAE/C,CAAA,SACH,CAEFQ,IAAAA,CAACkB,CAAAA,CAAA,WACYf,CAAAA,CAAmBX,EAAAA,WAC5BqB,CAAKI,CAAAA,QAAuB,CAC9B,CAAA,CAEC,CAAA,CAAAZ,GAAA,CAAAc,UAAA,CAAA,CAAA,SAEFC,CAAAV,kBACC,CAAA,CAAA,EAAA,KAAA,CAAWP,GAAmBX,IAAAA,CAAY,CAAA,CAAA,KAAA,CAAUY,CAAAA,CAAAA,CAClDS,CAAAA,QAAY,CAAA,CAAA,CAAST,CAAS,CAChCC,IAEAgB,OAAA,CAAA,CAAA,SAACC,CAAAZ,kBAAY,CAAA,CAAA,EAAA,OAAoB,CAAA,CAAA,EAAAM,IAAA,CAAA,CAAA,CAAA,oBACrB,CAAAX,GAAA,CAAAkB,WAAA,CAAA,CAAA,MAAS,CACrBC,UAAA,CACF,aAMZ,CAAA,CAAA,CAAA,QAAA,CAAAnB,GAAA,CAAAoB,OAAA,CAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA","file":"index.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n'use client';\n\nimport 'client-only';\nimport { clsx } from '@accelint/design-foundation/lib/utils';\nimport ChevronDown from '@accelint/icons/chevron-down';\nimport {\n Select as AriaSelect,\n composeRenderProps,\n FieldError,\n ListLayout,\n Popover,\n SelectValue,\n Text,\n useContextProps,\n Virtualizer,\n} from 'react-aria-components';\nimport { Button } from '../button';\nimport { Icon } from '../icon';\nimport { Label } from '../label';\nimport { Options } from '../options';\nimport { SelectFieldContext } from './context';\nimport styles from './styles.module.css';\nimport type { SelectFieldProps } from './types';\n\n/**\n * SelectField - A dropdown selection component with comprehensive form field features\n *\n * Provides an accessible and feature-rich select dropdown with built-in validation,\n * multiple sizing options, virtualization support for large datasets, and seamless\n * integration with form libraries. Includes label, description, and error messaging\n * capabilities with customizable styling through className props.\n *\n * @example\n * // Basic select field\n * <SelectField label='Country' placeholder='Select a country'>\n * <OptionsItem textValue='us'>United States</OptionsItem>\n * <OptionsItem textValue='ca'>Canada</OptionsItem>\n * <OptionsItem textValue='uk'>United Kingdom</OptionsItem>\n * </SelectField>\n *\n * @example\n * // Select field with validation and description\n * <SelectField\n * label=\"Priority Level\"\n * description=\"Choose the urgency level for this task\"\n * errorMessage={errors.priority}\n * isRequired\n * isInvalid={!!errors.priority}\n * >\n * <OptionsItem textValue=\"low\">Low</OptionsItem>\n * <OptionsItem textValue=\"medium\">Medium</OptionsItem>\n * <OptionsItem textValue=\"high\">High</OptionsItem>\n * </SelectField>\n *\n * @example\n * // Small size select field with custom styling\n * <SelectField\n * size=\"small\"\n * placeholder=\"Quick select\"\n * classNames={{\n * field: \"custom-field-styles\",\n * trigger: \"custom-trigger-styles\"\n * }}\n * >\n * <OptionsItem textValue=\"option1\">Option 1</OptionsItem>\n * <OptionsItem textValue=\"option2\">Option 2</OptionsItem>\n * </SelectField>\n */\nexport function SelectField({ ref, ...props }: SelectFieldProps) {\n [props, ref] = useContextProps(props, ref ?? null, SelectFieldContext);\n\n const {\n size = 'medium',\n children,\n classNames,\n description: descriptionProp,\n errorMessage: errorMessageProp,\n label: labelProp,\n layoutOptions,\n isInvalid: isInvalidProp,\n ...rest\n } = props;\n\n const errorMessage = errorMessageProp?.trim() ?? null;\n const hasError = !!errorMessage;\n const isInvalid = isInvalidProp ?? hasError;\n const isSmall = size === 'small';\n const showLabel = !isSmall && !!labelProp;\n\n return (\n <AriaSelect\n {...rest}\n ref={ref}\n className={composeRenderProps(classNames?.field, (className) =>\n clsx('group/select-field', styles.field, className),\n )}\n isInvalid={isInvalid}\n data-size={size}\n >\n {composeRenderProps(\n children,\n (children, { isRequired, isDisabled, isInvalid }) => (\n <>\n {showLabel && (\n <Label\n className={clsx(styles.label, classNames?.label)}\n isRequired={isRequired}\n isDisabled={isDisabled}\n >\n {labelProp}\n </Label>\n )}\n <Button\n className={composeRenderProps(classNames?.trigger, (className) =>\n clsx(styles.trigger, className),\n )}\n size={size}\n variant='outline'\n >\n <SelectValue className={clsx(styles.value, classNames?.value)} />\n <Icon>\n <ChevronDown className='transform group-open/select-field:rotate-180' />\n </Icon>\n </Button>\n {!!descriptionProp && !(isSmall || isInvalid) && (\n <Text\n slot='description'\n className={clsx(styles.description, classNames?.description)}\n >\n {descriptionProp}\n </Text>\n )}\n <FieldError\n className={composeRenderProps(classNames?.error, (className) =>\n clsx(styles.error, className),\n )}\n >\n {errorMessage}\n </FieldError>\n <Popover\n className={composeRenderProps(classNames?.popover, (className) =>\n clsx(styles.popover, className),\n )}\n >\n <Virtualizer layout={ListLayout} layoutOptions={layoutOptions}>\n <Options>{children}</Options>\n </Virtualizer>\n </Popover>\n </>\n ),\n )}\n </AriaSelect>\n );\n}\n"]}
|